package service import ( "encoding/json" "fmt" "net/http" "strings" "git.kundeng.us/phoenix/textsender-models/tx0/message/event" "git.kundeng.us/phoenix/textsender-models/tx0/token" "git.kundeng.us/phoenix/catapult/internal/app" ) type MessageEventResponse struct { Application *app.App Token *token.Login } type recordMessageEventResponse struct { Message string `json:"message"` Data []*event.MessageEventResponse `json:"data"` } func (m *MessageEventResponse) RecordEventResponse(mer *event.MessageEventResponse) ([]*event.MessageEventResponse, error) { fullUrl := fmt.Sprintf("%s/api/v1/schedule/message/event/response/record", m.Application.ApiUrl) jsonData, err := json.Marshal(mer) if err != nil { return nil, err } req, err := http.NewRequest("POST", fullUrl, strings.NewReader(string(jsonData))) if err != nil { return nil, err } token := m.Token.AccessToken req.Header.Set("Authorization", "Bearer "+token) client := &http.Client{} resp, err := client.Do(req) if err != nil { return nil, err } defer resp.Body.Close() var r recordMessageEventResponse err = json.NewDecoder(resp.Body).Decode(&r) if err != nil { return nil, err } else { if len(r.Data) == 0 { return nil, nil } else { return r.Data, nil } } }