WIP: Ajouter fonction de renom de document

This commit is contained in:
Victor Lacasse-Beaudoin 2024-01-23 16:50:03 -05:00
parent 9fae3b0471
commit 33c23d89e4
4 changed files with 147 additions and 0 deletions

View file

@ -163,3 +163,57 @@ func (request V1DocumentDELETE) Request(v *voki.Voki) (response apiresponse.V1Do
return response, v.UnmarshalIfComplete(http.MethodDelete, fmt.Sprintf("/v1/bucket/%s/%s", request.Params.Bucket, request.Params.Document), nil, true, &response)
}
var _ request.Requester[apiresponse.V1DocumentKeyPUT] = V1DocumentKeyPUT{}
type V1DocumentKeyPUT struct {
Data struct {
NewKey string `json:"newKey"`
}
Params struct {
Bucket string `json:"bucket"`
Document string `json:"document"`
}
}
func NewV1DocumentKeyPUT(bucket, document, newKey string) (request V1DocumentKeyPUT, err error) {
if bucket == "" {
err = fmt.Errorf("NewV1DocumentKeyPUT requires non-nil bucket name")
return
}
request.Params.Bucket = bucket
if document == "" {
err = fmt.Errorf("NewV1DocumentKeyPUT requires non-nil src document name")
return
}
request.Params.Document = document
if newKey == "" {
err = fmt.Errorf("NewV1DocumentKeyPUT requires non-nil dst document name")
}
request.Data.NewKey = newKey
return
}
func (request V1DocumentKeyPUT) Complete() bool {
return request.Params.Bucket != "" && request.Params.Document != "" && request.Data.NewKey != ""
}
func (request V1DocumentKeyPUT) Request(v *voki.Voki) (response apiresponse.V1DocumentKeyPUT, err error) {
if !request.Complete() {
err = fmt.Errorf("Incomplete V1DocumentKeyPUT request")
return
}
var buf bytes.Buffer
if err = json.NewEncoder(&buf).Encode(request.Data); err != nil {
return
}
return response, v.UnmarshalIfComplete(http.MethodPut, fmt.Sprintf("/v1/bucket/%s/%s", request.Params.Bucket, request.Params.Document), &buf, true, &response)
}