|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package api
-
- import (
- "fmt"
- "io"
- "net/http"
- "strings"
-
- "gitlink.org.cn/cloudream/common/sdks"
- "gitlink.org.cn/cloudream/common/utils/http2"
- "gitlink.org.cn/cloudream/common/utils/serder"
- )
-
- type SysEventService struct {
- *Client
- }
-
- func (c *Client) SysEvent() *SysEventService {
- return &SysEventService{
- Client: c,
- }
- }
-
- const SysEventWatchPath = "/sysEvent/watch"
-
- type SysEventWatch struct{}
-
- func (r *SysEventWatch) MakeParam() *sdks.RequestParam {
- return sdks.MakeJSONParam(http.MethodPost, SysEventWatchPath, r)
- }
-
- type SysEventWatchResp struct {
- Stream io.ReadCloser
- }
-
- func (r *SysEventWatchResp) ParseResponse(resp *http.Response) error {
- contType := resp.Header.Get("Content-Type")
- if strings.Contains(contType, http2.ContentTypeJSON) {
- var err error
- var r sdks.CodeDataResponse[any]
-
- if err = serder.JSONToObjectStreamExRaw(resp.Body, &r); err != nil {
- return fmt.Errorf("parsing response: %w", err)
- }
-
- return &sdks.CodeMessageError{Code: r.Code, Message: r.Message}
- }
-
- r.Stream = resp.Body
- return nil
- }
-
- func (c *SysEventService) Watch(req SysEventWatch) (*SysEventWatchResp, error) {
- return JSONAPI(&c.cfg, c.httpCli, &req, &SysEventWatchResp{})
- }
|