package cdsapi import ( "net/http" "gitlink.org.cn/cloudream/common/sdks" cdssdk "gitlink.org.cn/cloudream/common/sdks/storage" ) type BucketService struct { *Client } func (c *Client) Bucket() *BucketService { return &BucketService{c} } const BucketGetByNamePath = "/bucket/getByName" type BucketGetByName struct { UserID cdssdk.UserID `url:"userID" form:"userID" binding:"required"` 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 cdssdk.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, http.DefaultClient, &req, &BucketGetByNameResp{}) } const BucketCreatePath = "/bucket/create" type BucketCreate struct { UserID cdssdk.UserID `json:"userID" binding:"required"` Name string `json:"name" binding:"required"` } func (r *BucketCreate) MakeParam() *sdks.RequestParam { return sdks.MakeJSONParam(http.MethodPost, BucketCreatePath, r) } type BucketCreateResp struct { Bucket cdssdk.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, http.DefaultClient, &req, &BucketCreateResp{}) } const BucketDeletePath = "/bucket/delete" type BucketDelete struct { UserID cdssdk.UserID `json:"userID" binding:"required"` BucketID cdssdk.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, http.DefaultClient, &req) } const BucketListUserBucketsPath = "/bucket/listUserBuckets" type BucketListUserBucketsReq struct { UserID cdssdk.UserID `form:"userID" url:"userID" binding:"required"` } func (r *BucketListUserBucketsReq) MakeParam() *sdks.RequestParam { return sdks.MakeQueryParam(http.MethodGet, BucketListUserBucketsPath, r) } type BucketListUserBucketsResp struct { Buckets []cdssdk.Bucket `json:"buckets"` } func (r *BucketListUserBucketsResp) ParseResponse(resp *http.Response) error { return sdks.ParseCodeDataJSONResponse(resp, r) } func (c *BucketService) ListUserBuckets(req BucketListUserBucketsReq) (*BucketListUserBucketsResp, error) { return JSONAPI(c.cfg, http.DefaultClient, &req, &BucketListUserBucketsResp{}) }