feat: start paving bucket operations
This commit is contained in:
parent
d70b0643e8
commit
02a65f2c47
3 changed files with 89 additions and 6 deletions
58
apirequest/bucket.go
Normal file
58
apirequest/bucket.go
Normal file
|
@ -0,0 +1,58 @@
|
|||
package apirequest
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
"codeberg.org/vlbeaudoin/voki"
|
||||
"codeberg.org/vlbeaudoin/voki/request"
|
||||
"git.agecem.com/agecem/agecem-org/apiresponse"
|
||||
)
|
||||
|
||||
var _ request.Requester[apiresponse.V1BucketsGET] = V1BucketsGET{}
|
||||
|
||||
type V1BucketsGET struct{}
|
||||
|
||||
func NewV1BucketsGET() (request V1BucketsGET, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (request V1BucketsGET) Complete() bool { return true }
|
||||
|
||||
func (request V1BucketsGET) Request(v *voki.Voki) (response apiresponse.V1BucketsGET, err error) {
|
||||
if !request.Complete() {
|
||||
err = fmt.Errorf("Incomplete V1BucketsGET request")
|
||||
return
|
||||
}
|
||||
|
||||
return response, v.UnmarshalIfComplete(http.MethodGet, "/v1/bucket", nil, true, &response)
|
||||
}
|
||||
|
||||
var _ request.Requester[apiresponse.V1BucketGET] = V1BucketGET{}
|
||||
|
||||
type V1BucketGET struct {
|
||||
Params struct {
|
||||
Bucket string `json:"bucket"`
|
||||
}
|
||||
}
|
||||
|
||||
func NewV1BucketGET(bucket string) (request V1BucketGET, err error) {
|
||||
if bucket == "" {
|
||||
err = fmt.Errorf("NewV1BucketGET requires non-nil bucket name")
|
||||
}
|
||||
|
||||
request.Params.Bucket = bucket
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (request V1BucketGET) Complete() bool { return request.Params.Bucket != "" }
|
||||
|
||||
func (request V1BucketGET) Request(v *voki.Voki) (response apiresponse.V1BucketGET, err error) {
|
||||
if !request.Complete() {
|
||||
err = fmt.Errorf("Incomplete V1BucketGET request")
|
||||
return
|
||||
}
|
||||
|
||||
return response, v.UnmarshalIfComplete(http.MethodGet, fmt.Sprintf("/v1/bucket/%s", request.Params.Bucket), nil, true, &response)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue