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.

client.go 1.1 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package sch
  2. import (
  3. "fmt"
  4. "gitlink.org.cn/cloudream/common/sdks"
  5. )
  6. type response[T any] struct {
  7. Code int `json:"code"`
  8. Message string `json:"message"`
  9. Data T `json:"data"`
  10. }
  11. type response2[T any] struct {
  12. Code int `json:"code"`
  13. Message string `json:"msg"`
  14. Data T `json:"data"`
  15. }
  16. const (
  17. ResponseCodeOK int = 200
  18. )
  19. func (r *response[T]) ToError() *sdks.CodeMessageError {
  20. return &sdks.CodeMessageError{
  21. Code: fmt.Sprintf("%d", r.Code),
  22. Message: r.Message,
  23. }
  24. }
  25. func (r *response2[T]) ToError() *sdks.CodeMessageError {
  26. return &sdks.CodeMessageError{
  27. Code: fmt.Sprintf("%d", r.Code),
  28. Message: r.Message,
  29. }
  30. }
  31. type Client struct {
  32. baseURL string
  33. }
  34. func NewClient(cfg *Config) *Client {
  35. return &Client{
  36. baseURL: cfg.URL,
  37. }
  38. }
  39. type Pool interface {
  40. Acquire() (*Client, error)
  41. Release(cli *Client)
  42. }
  43. type pool struct {
  44. cfg *Config
  45. }
  46. func NewPool(cfg *Config) Pool {
  47. return &pool{
  48. cfg: cfg,
  49. }
  50. }
  51. func (p *pool) Acquire() (*Client, error) {
  52. cli := NewClient(p.cfg)
  53. return cli, nil
  54. }
  55. func (p *pool) Release(cli *Client) {
  56. }