sticky.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package plane_v2_api
  2. import (
  3. "fmt"
  4. plane "fwh-toolbox-server/repositories/api/plane_v2"
  5. )
  6. // ListStickies 列出工作空间便签
  7. func ListStickies(c *plane.PlaneClient, slug string) ([]byte, error) {
  8. url := fmt.Sprintf("/api/workspaces/%s/stickies/", slug)
  9. resp, err := c.Get(url)
  10. if err != nil {
  11. return nil, err
  12. }
  13. if !plane.IsSuccess(resp.StatusCode) {
  14. return nil, fmt.Errorf("ListStickies 失败: %s", resp.Status)
  15. }
  16. return resp.Body, nil
  17. }
  18. // CreateSticky 创建便签
  19. func CreateSticky(c *plane.PlaneClient, slug string, data map[string]interface{}) ([]byte, error) {
  20. url := fmt.Sprintf("/api/workspaces/%s/stickies/", slug)
  21. resp, err := c.Post(url, data)
  22. if err != nil {
  23. return nil, err
  24. }
  25. if !plane.IsSuccess(resp.StatusCode) {
  26. return nil, fmt.Errorf("CreateSticky 失败: %s, body=%s", resp.Status, string(resp.Body))
  27. }
  28. return resp.Body, nil
  29. }
  30. // GetSticky 获取便签详情
  31. func GetSticky(c *plane.PlaneClient, slug, stickyID string) ([]byte, error) {
  32. url := fmt.Sprintf("/api/workspaces/%s/stickies/%s/", slug, stickyID)
  33. resp, err := c.Get(url)
  34. if err != nil {
  35. return nil, err
  36. }
  37. if !plane.IsSuccess(resp.StatusCode) {
  38. return nil, fmt.Errorf("GetSticky 失败: %s", resp.Status)
  39. }
  40. return resp.Body, nil
  41. }
  42. // UpdateSticky 更新便签
  43. func UpdateSticky(c *plane.PlaneClient, slug, stickyID string, data map[string]interface{}) ([]byte, error) {
  44. url := fmt.Sprintf("/api/workspaces/%s/stickies/%s/", slug, stickyID)
  45. resp, err := c.Patch(url, data)
  46. if err != nil {
  47. return nil, err
  48. }
  49. if !plane.IsSuccess(resp.StatusCode) {
  50. return nil, fmt.Errorf("UpdateSticky 失败: %s, body=%s", resp.Status, string(resp.Body))
  51. }
  52. return resp.Body, nil
  53. }
  54. // DeleteSticky 删除便签
  55. func DeleteSticky(c *plane.PlaneClient, slug, stickyID string) error {
  56. url := fmt.Sprintf("/api/workspaces/%s/stickies/%s/", slug, stickyID)
  57. resp, err := c.Delete(url)
  58. if err != nil {
  59. return err
  60. }
  61. if resp.StatusCode != 204 {
  62. return fmt.Errorf("DeleteSticky 失败: %s", resp.Status)
  63. }
  64. return nil
  65. }