This repository has been archived by the owner on Jul 2, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tournament_stub.go
82 lines (66 loc) · 2.1 KB
/
tournament_stub.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package ionia
import "net/http"
// TournamentStubService represents the Tournament-Stub-V3 API methods.
// https://developer.riotgames.com/api-methods/#tournament-stub-v3
type TournamentStubService service
// Codes creates a mock tournament code for the given tournament.
func (t *TournamentStubService) Codes(tc *TournamentCode, opts ...TournamentCodesOption) ([]string, *http.Response, error) {
options := &TournamentCodesOptions{}
for _, o := range opts {
o(options)
}
u := "lol/tournament-stub/v3/codes"
u, err := addOptions(u, options)
if err != nil {
return nil, nil, err
}
req, err := t.client.NewRequest(http.MethodPost, u, tc)
if err != nil {
return nil, nil, err
}
var c []string
resp, err := t.client.Do(req, &c)
if err != nil {
return nil, resp, err
}
return c, resp, nil
}
// LobbyEventsByCode retrieves a list of lobby events for the given tournament code.
func (t *TournamentStubService) LobbyEventsByCode(tournamentCode string) (*LobbyEventDTOWrapper, *http.Response, error) {
req, err := t.client.NewRequest(http.MethodGet, "lol/tournament-stub/v3/lobby-events/by-code/"+tournamentCode, nil)
if err != nil {
return nil, nil, err
}
l := &LobbyEventDTOWrapper{}
resp, err := t.client.Do(req, l)
if err != nil {
return nil, resp, err
}
return l, resp, nil
}
// Provider creates a mock tournament provider and returns its ID.
func (t *TournamentStubService) Provider(pr *ProviderRegistration) (*int, *http.Response, error) {
req, err := t.client.NewRequest(http.MethodPost, "lol/tournament-stub/v3/providers", pr)
if err != nil {
return nil, nil, err
}
var id *int
resp, err := t.client.Do(req, id)
if err != nil {
return nil, resp, err
}
return id, resp, nil
}
// Tournament creates a mock tournament and returns its ID.
func (t *TournamentStubService) Tournament(tr *TournamentRegistration) (*int, *http.Response, error) {
req, err := t.client.NewRequest(http.MethodPost, "lol/tournament-stub/v3/tournaments", tr)
if err != nil {
return nil, nil, err
}
var id *int
resp, err := t.client.Do(req, id)
if err != nil {
return nil, resp, err
}
return id, resp, nil
}