package service import ( "encoding/json" "fmt" "net/http" "git.kundeng.us/phoenix/textsender-models/tx0/message/scheduling" "git.kundeng.us/phoenix/textsender-models/tx0/token" "git.kundeng.us/phoenix/catapult/internal/app" ) type Queue struct { Application *app.App Token *token.Login } type queueResponse struct { Message string `json:"message"` Data []*scheduling.ScheduledMessage `json:"data"` } func (q *Queue) GetQueue() (*scheduling.ScheduledMessage, *bool, error) { req, err := http.NewRequest("GET", fmt.Sprintf("%s/api/v1/schedule/message/fetch", q.Application.ApiUrl), nil) if err != nil { return nil, nil, err } token := q.Token.AccessToken req.Header.Set("Authorization", "Bearer "+token) client := &http.Client{} resp, err := client.Do(req) if err != nil { return nil, nil, err } defer resp.Body.Close() var r queueResponse err = json.NewDecoder(resp.Body).Decode(&r) if err != nil { return nil, nil, err } else { var exists bool if len(r.Data) == 0 { exists = false return nil, &exists, nil } else { exists = true return r.Data[0], &exists, nil } } }