feat: pave V1DocumentDELETE

This commit is contained in:
Victor Lacasse-Beaudoin 2023-11-20 16:56:44 -05:00
parent c7282edcc2
commit 86f1284e12
4 changed files with 83 additions and 16 deletions

View file

@ -56,3 +56,43 @@ func (request V1DocumentPOST) Request(v *voki.Voki) (response apiresponse.V1Docu
return response, v.UnmarshalIfComplete(http.MethodPost, fmt.Sprintf("/v1/bucket/%s", request.Data.Bucket), &buf, true, &response)
}
var _ request.Requester[apiresponse.V1DocumentDELETE] = V1DocumentDELETE{}
type V1DocumentDELETE struct {
Params struct {
Bucket string
Document string
}
}
func NewV1DocumentDELETE(bucket, document string) (request V1DocumentDELETE, err error) {
if bucket == "" {
err = fmt.Errorf("NewV1DocumentDELETE requires non-nil bucket name")
return
}
request.Params.Bucket = bucket
if document == "" {
err = fmt.Errorf("NewV1DocumentDELETE requires non-nil document name")
return
}
request.Params.Document = document
return
}
func (request V1DocumentDELETE) Complete() bool {
return request.Params.Bucket != "" && request.Params.Document != ""
}
func (request V1DocumentDELETE) Request(v *voki.Voki) (response apiresponse.V1DocumentDELETE, err error) {
if !request.Complete() {
err = fmt.Errorf("Incomplete V1DocumentDELETE request")
return
}
return response, v.UnmarshalIfComplete(http.MethodDelete, fmt.Sprintf("/v1/bucket/%s/%s", request.Params.Bucket, request.Params.Document), nil, true, &response)
}