JCS-pub/client/sdk/api/v1/bucket.go

102 lines
2.5 KiB
Go

package api
import (
"net/http"
"gitlink.org.cn/cloudream/common/sdks"
clitypes "gitlink.org.cn/cloudream/jcs-pub/client/types"
)
type BucketService struct {
*Client
}
func (c *Client) Bucket() *BucketService {
return &BucketService{c}
}
const BucketGetByNamePath = "/bucket/getByName"
type BucketGetByName struct {
Name string `url:"name" form:"name" binding:"required"`
}
func (r *BucketGetByName) MakeParam() *sdks.RequestParam {
return sdks.MakeQueryParam(http.MethodGet, BucketGetByNamePath, r)
}
type BucketGetByNameResp struct {
Bucket clitypes.Bucket `json:"bucket"`
}
func (r *BucketGetByNameResp) ParseResponse(resp *http.Response) error {
return sdks.ParseCodeDataJSONResponse(resp, r)
}
func (c *BucketService) GetByName(req BucketGetByName) (*BucketGetByNameResp, error) {
return JSONAPI(&c.cfg, c.httpCli, &req, &BucketGetByNameResp{})
}
const BucketCreatePath = "/bucket/create"
type BucketCreate struct {
Name string `json:"name" binding:"required"`
}
func (r *BucketCreate) MakeParam() *sdks.RequestParam {
return sdks.MakeJSONParam(http.MethodPost, BucketCreatePath, r)
}
type BucketCreateResp struct {
Bucket clitypes.Bucket `json:"bucket"`
}
func (r *BucketCreateResp) ParseResponse(resp *http.Response) error {
return sdks.ParseCodeDataJSONResponse(resp, r)
}
func (c *BucketService) Create(req BucketCreate) (*BucketCreateResp, error) {
return JSONAPI(&c.cfg, c.httpCli, &req, &BucketCreateResp{})
}
const BucketDeletePath = "/bucket/delete"
type BucketDelete struct {
BucketID clitypes.BucketID `json:"bucketID" binding:"required"`
}
func (r *BucketDelete) MakeParam() *sdks.RequestParam {
return sdks.MakeJSONParam(http.MethodPost, BucketDeletePath, r)
}
type BucketDeleteResp struct{}
func (r *BucketDeleteResp) ParseResponse(resp *http.Response) error {
return sdks.ParseCodeDataJSONResponse(resp, r)
}
func (c *BucketService) Delete(req BucketDelete) error {
return JSONAPINoData(&c.cfg, c.httpCli, &req)
}
const BucketListAllPath = "/bucket/listAll"
type BucketListAll struct {
}
func (r *BucketListAll) MakeParam() *sdks.RequestParam {
return sdks.MakeQueryParam(http.MethodGet, BucketListAllPath, r)
}
type BucketListAllResp struct {
Buckets []clitypes.Bucket `json:"buckets"`
}
func (r *BucketListAllResp) ParseResponse(resp *http.Response) error {
return sdks.ParseCodeDataJSONResponse(resp, r)
}
func (c *BucketService) ListAll(req BucketListAll) (*BucketListAllResp, error) {
return JSONAPI(&c.cfg, c.httpCli, &req, &BucketListAllResp{})
}