|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- package cdsapi
-
- import (
- "net/url"
-
- "gitlink.org.cn/cloudream/common/consts/errorcode"
- cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
- "gitlink.org.cn/cloudream/common/utils/http2"
- )
-
- type BucketService struct {
- *Client
- }
-
- func (c *Client) Bucket() *BucketService {
- return &BucketService{c}
- }
-
- const BucketGetByNamePath = "/bucket/getByName"
-
- type BucketGetByName struct {
- UserID cdssdk.UserID `json:"userID" form:"userID" binding:"required"`
- Name string `json:"name" form:"name" binding:"required"`
- }
- type BucketGetByNameResp struct {
- Bucket cdssdk.Bucket `json:"bucket"`
- }
-
- func (c *BucketService) GetByName(req BucketGetByName) (*BucketGetByNameResp, error) {
- url, err := url.JoinPath(c.baseURL, BucketGetByNamePath)
- if err != nil {
- return nil, err
- }
-
- resp, err := http2.GetForm(url, http2.RequestParam{
- Query: req,
- })
- if err != nil {
- return nil, err
- }
-
- codeResp, err := ParseJSONResponse[response[BucketGetByNameResp]](resp)
- if err != nil {
- return nil, err
- }
-
- if codeResp.Code == errorcode.OK {
- return &codeResp.Data, nil
- }
-
- return nil, codeResp.ToError()
- }
-
- const BucketCreatePath = "/bucket/create"
-
- type BucketCreate struct {
- UserID cdssdk.UserID `json:"userID" binding:"required"`
- Name string `json:"name" binding:"required"`
- }
-
- type BucketCreateResp struct {
- Bucket cdssdk.Bucket `json:"bucket"`
- }
-
- func (c *BucketService) Create(req BucketCreate) (*BucketCreateResp, error) {
- url, err := url.JoinPath(c.baseURL, BucketCreatePath)
- if err != nil {
- return nil, err
- }
-
- resp, err := http2.PostJSON(url, http2.RequestParam{
- Body: req,
- })
- if err != nil {
- return nil, err
- }
-
- codeResp, err := ParseJSONResponse[response[BucketCreateResp]](resp)
- if err != nil {
- return nil, err
- }
-
- if codeResp.Code == errorcode.OK {
- return &codeResp.Data, nil
- }
-
- return nil, codeResp.ToError()
- }
-
- const BucketDeletePath = "/bucket/delete"
-
- type BucketDelete struct {
- UserID cdssdk.UserID `json:"userID" binding:"required"`
- BucketID cdssdk.BucketID `json:"bucketID" binding:"required"`
- }
-
- type BucketDeleteResp struct{}
-
- func (c *BucketService) Delete(req BucketDelete) error {
- url, err := url.JoinPath(c.baseURL, BucketDeletePath)
- if err != nil {
- return err
- }
-
- resp, err := http2.PostJSON(url, http2.RequestParam{
- Body: req,
- })
- if err != nil {
- return err
- }
-
- codeResp, err := ParseJSONResponse[response[BucketDeleteResp]](resp)
- if err != nil {
- return err
- }
-
- if codeResp.Code == errorcode.OK {
- return nil
- }
-
- return codeResp.ToError()
- }
-
- const BucketListUserBucketsPath = "/bucket/listUserBuckets"
-
- type BucketListUserBucketsReq struct {
- UserID cdssdk.UserID `form:"userID" json:"userID" binding:"required"`
- }
-
- type BucketListUserBucketsResp struct {
- Buckets []cdssdk.Bucket `json:"buckets"`
- }
-
- func (c *BucketService) ListUserBuckets(req BucketListUserBucketsReq) (*BucketListUserBucketsResp, error) {
- url, err := url.JoinPath(c.baseURL, BucketListUserBucketsPath)
- if err != nil {
- return nil, err
- }
-
- resp, err := http2.GetForm(url, http2.RequestParam{
- Query: req,
- })
- if err != nil {
- return nil, err
- }
-
- codeResp, err := ParseJSONResponse[response[BucketListUserBucketsResp]](resp)
- if err != nil {
- return nil, err
- }
-
- if codeResp.Code == errorcode.OK {
- return &codeResp.Data, nil
- }
-
- return nil, codeResp.ToError()
- }
|