You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

user.go 1.4 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package cdsapi
  2. import (
  3. "net/url"
  4. "gitlink.org.cn/cloudream/common/consts/errorcode"
  5. cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
  6. "gitlink.org.cn/cloudream/common/utils/http2"
  7. )
  8. const UserCreatePath = "/v1/user/create"
  9. type UserCreate struct {
  10. Name string `json:"name" binding:"required"`
  11. }
  12. type UserCreateResp struct {
  13. User cdssdk.User `json:"user"`
  14. }
  15. func (c *Client) UserCreate(req *UserCreate) (*UserCreateResp, error) {
  16. url, err := url.JoinPath(c.baseURL, UserCreatePath)
  17. if err != nil {
  18. return nil, err
  19. }
  20. resp, err := http2.PostJSON(url, http2.RequestParam{
  21. Body: req,
  22. })
  23. if err != nil {
  24. return nil, err
  25. }
  26. codeResp, err := ParseJSONResponse[response[UserCreateResp]](resp)
  27. if err != nil {
  28. return nil, err
  29. }
  30. if codeResp.Code == errorcode.OK {
  31. return &codeResp.Data, nil
  32. }
  33. return nil, codeResp.ToError()
  34. }
  35. const UserDeletePath = "/v1/user/delete"
  36. type UserDelete struct {
  37. UserID cdssdk.UserID `json:"userID" binding:"required"`
  38. }
  39. type UserDeleteResp struct{}
  40. func (c *Client) UserDelete(req *UserDelete) error {
  41. url, err := url.JoinPath(c.baseURL, UserDeletePath)
  42. if err != nil {
  43. return err
  44. }
  45. resp, err := http2.PostJSON(url, http2.RequestParam{
  46. Body: req,
  47. })
  48. if err != nil {
  49. return err
  50. }
  51. codeResp, err := ParseJSONResponse[response[UserDeleteResp]](resp)
  52. if err != nil {
  53. return err
  54. }
  55. if codeResp.Code == errorcode.OK {
  56. return nil
  57. }
  58. return codeResp.ToError()
  59. }