JCS-pub/client/sdk/api/userspace.go

79 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"
)
const UserSpaceLoadPackagePath = "/userspace/loadPackage"
type UserSpaceLoadPackageReq struct {
PackageID clitypes.PackageID `json:"packageID" binding:"required"`
UserSpaceID clitypes.UserSpaceID `json:"userSpaceID" binding:"required"`
RootPath string `json:"rootPath"`
}
func (r *UserSpaceLoadPackageReq) MakeParam() *sdks.RequestParam {
return sdks.MakeJSONParam(http.MethodPost, UserSpaceLoadPackagePath, r)
}
type UserSpaceLoadPackageResp struct{}
func (r *UserSpaceLoadPackageResp) ParseResponse(resp *http.Response) error {
return sdks.ParseCodeDataJSONResponse(resp, r)
}
func (c *Client) UserSpaceLoadPackage(req UserSpaceLoadPackageReq) (*UserSpaceLoadPackageResp, error) {
return JSONAPI(c.cfg, http.DefaultClient, &req, &UserSpaceLoadPackageResp{})
}
const UserSpaceCreatePackagePath = "/userspace/createPackage"
type UserSpaceCreatePackageReq struct {
UserSpaceID clitypes.UserSpaceID `json:"userSpaceID" binding:"required"`
Path string `json:"path" binding:"required"`
BucketID clitypes.BucketID `json:"bucketID" binding:"required"`
Name string `json:"name" binding:"required"`
SpaceAffinity clitypes.UserSpaceID `json:"spaceAffinity"`
}
func (r *UserSpaceCreatePackageReq) MakeParam() *sdks.RequestParam {
return sdks.MakeJSONParam(http.MethodPost, UserSpaceCreatePackagePath, r)
}
type UserSpaceCreatePackageResp struct {
Package clitypes.Package `json:"package"`
}
func (r *UserSpaceCreatePackageResp) ParseResponse(resp *http.Response) error {
return sdks.ParseCodeDataJSONResponse(resp, r)
}
func (c *Client) UserSpaceCreatePackage(req UserSpaceCreatePackageReq) (*UserSpaceCreatePackageResp, error) {
return JSONAPI(c.cfg, http.DefaultClient, &req, &UserSpaceCreatePackageResp{})
}
const UserSpaceGetPath = "/userspace/get"
type UserSpaceGet struct {
UserSpaceID clitypes.UserSpaceID `form:"userSpaceID" url:"userSpaceID" binding:"required"`
}
func (r *UserSpaceGet) MakeParam() *sdks.RequestParam {
return sdks.MakeQueryParam(http.MethodGet, UserSpaceGetPath, r)
}
type UserSpaceGetResp struct {
clitypes.UserSpace
}
func (r *UserSpaceGetResp) ParseResponse(resp *http.Response) error {
return sdks.ParseCodeDataJSONResponse(resp, r)
}
func (c *Client) UserSpaceGet(req UserSpaceGet) (*UserSpaceGetResp, error) {
return JSONAPI(c.cfg, http.DefaultClient, &req, &UserSpaceGetResp{})
}