challenge-sync-airbus: 2025 API ready
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
526d693ffd
commit
7df675346c
6 changed files with 62 additions and 60 deletions
|
|
@ -14,10 +14,18 @@ import (
|
|||
type AirbusAPI struct {
|
||||
BaseURL string
|
||||
Token string
|
||||
SessionID int64
|
||||
SessionUUID string
|
||||
InsecureSkipVerify bool
|
||||
}
|
||||
|
||||
type AirbusAPIResponse struct {
|
||||
Data interface{}
|
||||
CurrentPage int `json:"current_page"`
|
||||
PerPage int `json:"per_page"`
|
||||
LastPage int `json:"last_page"`
|
||||
Total int `json:"total"`
|
||||
}
|
||||
|
||||
func (a *AirbusAPI) request(method, endpoint string, data io.Reader, out interface{}) error {
|
||||
var req *http.Request
|
||||
var err error
|
||||
|
|
@ -51,7 +59,7 @@ func (a *AirbusAPI) request(method, endpoint string, data io.Reader, out interfa
|
|||
if out != nil {
|
||||
jdec := json.NewDecoder(resp.Body)
|
||||
|
||||
if err := jdec.Decode(out); err != nil {
|
||||
if err := jdec.Decode(&AirbusAPIResponse{Data: out}); err != nil {
|
||||
return fmt.Errorf("an error occurs when trying to decode response: %w", err)
|
||||
}
|
||||
}
|
||||
|
|
@ -87,7 +95,7 @@ type AirbusUser struct {
|
|||
}
|
||||
|
||||
func (a *AirbusAPI) GetUsers() (users AirbusUserData, err error) {
|
||||
err = a.request("GET", fmt.Sprintf("/sessions/%d/users", a.SessionID), nil, &users)
|
||||
err = a.request("GET", fmt.Sprintf("/sessions/%s/users", a.SessionUUID), nil, &users)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -137,7 +145,7 @@ type AirbusChallenge struct {
|
|||
}
|
||||
|
||||
func (a *AirbusAPI) GetChallenges() (challenges AirbusChallengeData, err error) {
|
||||
err = a.request("GET", fmt.Sprintf("/v1/sessions/%d/challenges", a.SessionID), nil, &challenges)
|
||||
err = a.request("GET", fmt.Sprintf("/v1/sessions/%s/challenges", a.SessionUUID), nil, &challenges)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -157,24 +165,22 @@ func (a *AirbusAPI) GetChallengeFromName(name string) (*AirbusChallenge, error)
|
|||
}
|
||||
|
||||
func (a *AirbusAPI) ValidateChallengeFromUser(team *AirbusTeam, challengeId AirbusChallengeId) (err error) {
|
||||
log.Printf("ValidateChallenge: %d, %s, %d", a.SessionID, challengeId.String(), team.Members[0].ID)
|
||||
log.Printf("ValidateChallenge: %s, %s, %s", a.SessionUUID, challengeId.String(), team.Members[0].UUID)
|
||||
if dryRun {
|
||||
return
|
||||
}
|
||||
|
||||
err = a.request("GET", fmt.Sprintf("/v1/sessions/%d/%s/%d/validate", a.SessionID, challengeId.String(), team.Members[0].ID), nil, nil)
|
||||
err = a.request("GET", fmt.Sprintf("/v1/sessions/%s/%s/%s/validate", a.SessionUUID, challengeId.String(), team.Members[0].UUID), nil, nil)
|
||||
return
|
||||
}
|
||||
|
||||
type AirbusUserAwards struct {
|
||||
UserId int64 `json:"gaming_user_id"`
|
||||
Message string `json:"name"`
|
||||
Value int64 `json:"value"`
|
||||
}
|
||||
|
||||
func (a *AirbusAPI) AwardUser(team *AirbusTeam, value int64, message string) (err error) {
|
||||
awards := AirbusUserAwards{
|
||||
UserId: team.Members[0].ID,
|
||||
Message: message,
|
||||
Value: value,
|
||||
}
|
||||
|
|
@ -190,7 +196,7 @@ func (a *AirbusAPI) AwardUser(team *AirbusTeam, value int64, message string) (er
|
|||
return
|
||||
}
|
||||
|
||||
err = a.request("POST", fmt.Sprintf("/v1/sessions/%d/awards", a.SessionID), bytes.NewReader(marshalled), nil)
|
||||
err = a.request("POST", fmt.Sprintf("/v1/sessions/%s/%s/awards", a.SessionUUID, team.Members[0].UUID), bytes.NewReader(marshalled), nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue