package auth import ( "bytes" "encoding/json" "fmt" "net/http" "git.kundeng.us/phoenix/textsender-models/tx0/token" "git.kundeng.us/phoenix/catapult/internal/app" ) type Auth struct { Application *app.App } type service struct { Username string `json:"username"` Passphrase string `json:"passphrase"` } type response struct { Message string `json:"message"` Data []*token.Login `json:"data"` } func (a *Auth) GetToken() (*token.Login, error) { serv := service{ Username: a.Application.ServiceUsername, Passphrase: a.Application.ServicePassphrase, } jsonData, err := json.Marshal(serv) if err != nil { return nil, err } resp, err := http.Post( fmt.Sprintf("%s/api/v1/service/login", a.Application.AuthUrl), "application/json", bytes.NewBuffer(jsonData), ) if err != nil { return nil, err } defer resp.Body.Close() var r response err = json.NewDecoder(resp.Body).Decode(&r) if err != nil { return nil, err } return r.Data[0], nil }