zombie_battleground-api 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +4 -0
- data/Gemfile.lock +29 -11
- data/README.md +4 -0
- data/Rakefile +62 -5
- data/lib/zombie_battleground/api.rb +108 -8
- data/lib/zombie_battleground/api/client.rb +157 -23
- data/lib/zombie_battleground/api/errors.rb +28 -0
- data/lib/zombie_battleground/api/models/card.rb +272 -32
- data/lib/zombie_battleground/api/models/deck.rb +234 -46
- data/lib/zombie_battleground/api/models/match.rb +211 -33
- data/lib/zombie_battleground/api/models/simple_card.rb +47 -11
- data/lib/zombie_battleground/api/requests/get_card_request.rb +45 -10
- data/lib/zombie_battleground/api/requests/get_cards_request.rb +203 -27
- data/lib/zombie_battleground/api/requests/get_deck_request.rb +43 -13
- data/lib/zombie_battleground/api/requests/get_decks_request.rb +141 -23
- data/lib/zombie_battleground/api/requests/get_match_request.rb +43 -13
- data/lib/zombie_battleground/api/requests/get_matches_request.rb +125 -21
- data/lib/zombie_battleground/api/requests/request_helper.rb +24 -10
- data/lib/zombie_battleground/api/responses/get_card_response.rb +50 -16
- data/lib/zombie_battleground/api/responses/get_cards_response.rb +103 -33
- data/lib/zombie_battleground/api/responses/get_deck_response.rb +49 -17
- data/lib/zombie_battleground/api/responses/get_decks_response.rb +103 -33
- data/lib/zombie_battleground/api/responses/get_match_response.rb +49 -17
- data/lib/zombie_battleground/api/responses/get_matches_response.rb +103 -33
- data/lib/zombie_battleground/api/responses/response_helper.rb +32 -16
- data/lib/zombie_battleground/api/validation_helper.rb +497 -0
- data/lib/zombie_battleground/api/version.rb +5 -1
- data/zombie_battleground-api.gemspec +6 -0
- metadata +71 -1
@@ -7,23 +7,53 @@ require 'zombie_battleground/api/requests/request_helper'
|
|
7
7
|
|
8
8
|
module ZombieBattleground
|
9
9
|
class Api
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
10
|
+
class Requests
|
11
|
+
##
|
12
|
+
# Request validator for GetDeck
|
13
|
+
class GetDeckRequest
|
14
|
+
include ActiveModel::Validations
|
15
|
+
include ZombieBattleground::Api::ValidationHelper
|
16
|
+
include ZombieBattleground::Api::Requests::RequestHelper
|
16
17
|
|
17
|
-
|
18
|
+
##
|
19
|
+
# @!attribute [r] id
|
20
|
+
# Deck's id
|
21
|
+
#
|
22
|
+
# @return [Integer]
|
23
|
+
#
|
24
|
+
# @example
|
25
|
+
# request.id #=> 1812
|
26
|
+
#
|
27
|
+
# @api public
|
28
|
+
attr_accessor :id
|
18
29
|
|
19
|
-
|
30
|
+
validate :id_is_a_non_negative_integer
|
20
31
|
|
21
|
-
|
22
|
-
|
23
|
-
|
32
|
+
##
|
33
|
+
# The URI for the endpoint
|
34
|
+
#
|
35
|
+
# @return [String]
|
36
|
+
#
|
37
|
+
# @example
|
38
|
+
# request.uri # => "deck/1812"
|
39
|
+
#
|
40
|
+
# @api public
|
41
|
+
def uri
|
42
|
+
"deck/#{id}"
|
43
|
+
end
|
24
44
|
|
25
|
-
|
26
|
-
|
45
|
+
##
|
46
|
+
# Deck does not take params, return an empty Hash
|
47
|
+
#
|
48
|
+
# @return [Hash]
|
49
|
+
#
|
50
|
+
# @example
|
51
|
+
# request.params # => {}
|
52
|
+
#
|
53
|
+
# @api public
|
54
|
+
def params
|
55
|
+
{}
|
56
|
+
end
|
27
57
|
end
|
28
58
|
end
|
29
59
|
end
|
@@ -7,29 +7,147 @@ require 'zombie_battleground/api/requests/request_helper'
|
|
7
7
|
|
8
8
|
module ZombieBattleground
|
9
9
|
class Api
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
10
|
+
class Requests
|
11
|
+
##
|
12
|
+
# Request validator for GetDecks
|
13
|
+
class GetDecksRequest
|
14
|
+
include ActiveModel::Validations
|
15
|
+
include ZombieBattleground::Api::ValidationHelper
|
16
|
+
include ZombieBattleground::Api::Requests::RequestHelper
|
17
|
+
|
18
|
+
# @!attribute [r] id
|
19
|
+
# Optionally set the Deck's id for filtered querying
|
20
|
+
#
|
21
|
+
# @return [Integer]
|
22
|
+
#
|
23
|
+
# @example
|
24
|
+
# request.id #=> 1
|
25
|
+
#
|
26
|
+
# @api public
|
27
|
+
attr_accessor :id
|
28
|
+
|
29
|
+
# @!attribute [r] user_id
|
30
|
+
# Optionally set the Deck's user_id for filtered querying
|
31
|
+
#
|
32
|
+
# @return [String]
|
33
|
+
#
|
34
|
+
# @example
|
35
|
+
# request.user_id #=> "ZombieSlayer_5699"
|
36
|
+
#
|
37
|
+
# @api public
|
38
|
+
attr_accessor :user_id
|
39
|
+
|
40
|
+
# @!attribute [r] deck_id
|
41
|
+
# Optionally set the Deck's deck_id for filtered querying
|
42
|
+
#
|
43
|
+
# @return [Integer]
|
44
|
+
#
|
45
|
+
# @example
|
46
|
+
# request.deck_id #=> 1
|
47
|
+
#
|
48
|
+
# @api public
|
49
|
+
attr_accessor :deck_id
|
50
|
+
|
51
|
+
# @!attribute [r] name
|
52
|
+
# Optionally set the Deck's name for filtered querying
|
53
|
+
#
|
54
|
+
# @return [String]
|
55
|
+
#
|
56
|
+
# @example
|
57
|
+
# request.name #=> "Buzzkill"
|
58
|
+
#
|
59
|
+
# @api public
|
60
|
+
attr_accessor :name
|
61
|
+
|
62
|
+
# @!attribute [r] hero_id
|
63
|
+
# Optionally set the Deck's hero_id for filtered querying
|
64
|
+
#
|
65
|
+
# @return [Integer]
|
66
|
+
#
|
67
|
+
# @example
|
68
|
+
# request.hero_id #=> 1
|
69
|
+
#
|
70
|
+
# @api public
|
71
|
+
attr_accessor :hero_id
|
72
|
+
|
73
|
+
# @!attribute [r] primary_skill_id
|
74
|
+
# Optionally set the Deck's primary_skill_id for filtered querying
|
75
|
+
#
|
76
|
+
# @return [Integer]
|
77
|
+
#
|
78
|
+
# @example
|
79
|
+
# request.primary_skill_id #=> 1
|
80
|
+
#
|
81
|
+
# @api public
|
82
|
+
attr_accessor :primary_skill_id
|
83
|
+
|
84
|
+
# @!attribute [r] secondary_skill_id
|
85
|
+
# Optionally set the Deck's secondary_skill_id for filtered querying
|
86
|
+
#
|
87
|
+
# @return [Integer]
|
88
|
+
#
|
89
|
+
# @example
|
90
|
+
# request.secondary_skill_id #=> 1
|
91
|
+
#
|
92
|
+
# @api public
|
93
|
+
attr_accessor :secondary_skill_id
|
94
|
+
|
95
|
+
# @!attribute [r] version
|
96
|
+
# Optionally set the Deck's version for filtered querying
|
97
|
+
#
|
98
|
+
# @return [String]
|
99
|
+
#
|
100
|
+
# @example
|
101
|
+
# request.version #=> "v3"
|
102
|
+
#
|
103
|
+
# @api public
|
104
|
+
attr_accessor :version
|
105
|
+
|
106
|
+
# @!attribute [r] page
|
107
|
+
# Optionally set the page number for filtered querying
|
108
|
+
#
|
109
|
+
# @return [Integer]
|
110
|
+
#
|
111
|
+
# @example
|
112
|
+
# request.page #=> 1
|
113
|
+
#
|
114
|
+
# @api public
|
115
|
+
attr_accessor :page
|
116
|
+
|
117
|
+
# @!attribute [r] limit
|
118
|
+
# Optionally set the limit for max Matches returned
|
119
|
+
#
|
120
|
+
# @return [Integer]
|
121
|
+
#
|
122
|
+
# @example
|
123
|
+
# request.limit #=> 100
|
124
|
+
#
|
125
|
+
# @api public
|
126
|
+
attr_accessor :limit
|
127
|
+
|
128
|
+
validate :id_is_a_non_negative_integer
|
129
|
+
validate :user_id_is_a_string
|
130
|
+
validate :deck_id_is_a_non_negative_integer
|
131
|
+
validate :name_is_a_string
|
132
|
+
validate :hero_id_is_a_non_negative_integer
|
133
|
+
validate :primary_skill_id_is_a_non_negative_integer
|
134
|
+
validate :secondary_skill_id_is_a_non_negative_integer
|
135
|
+
validate :version_is_a_string
|
136
|
+
validate :page_is_a_non_negative_integer
|
137
|
+
validate :limit_is_a_non_negative_integer
|
138
|
+
|
139
|
+
##
|
140
|
+
# The URI for the endpoint
|
141
|
+
#
|
142
|
+
# @return [String]
|
143
|
+
#
|
144
|
+
# @example
|
145
|
+
# request.uri # => "decks"
|
146
|
+
#
|
147
|
+
# @api public
|
148
|
+
def uri
|
149
|
+
'decks'
|
150
|
+
end
|
33
151
|
end
|
34
152
|
end
|
35
153
|
end
|
@@ -7,23 +7,53 @@ require 'zombie_battleground/api/requests/request_helper'
|
|
7
7
|
|
8
8
|
module ZombieBattleground
|
9
9
|
class Api
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
10
|
+
class Requests
|
11
|
+
##
|
12
|
+
# Request validator for GetMatch
|
13
|
+
class GetMatchRequest
|
14
|
+
include ActiveModel::Validations
|
15
|
+
include ZombieBattleground::Api::ValidationHelper
|
16
|
+
include ZombieBattleground::Api::Requests::RequestHelper
|
16
17
|
|
17
|
-
|
18
|
+
##
|
19
|
+
# @!attribute [r] id
|
20
|
+
# Match's id
|
21
|
+
#
|
22
|
+
# @return [Integer]
|
23
|
+
#
|
24
|
+
# @example
|
25
|
+
# request.id #=> 1
|
26
|
+
#
|
27
|
+
# @api public
|
28
|
+
attr_accessor :id
|
18
29
|
|
19
|
-
|
30
|
+
validate :id_is_a_non_negative_integer
|
20
31
|
|
21
|
-
|
22
|
-
|
23
|
-
|
32
|
+
##
|
33
|
+
# The URI for the endpoint
|
34
|
+
#
|
35
|
+
# @return [String]
|
36
|
+
#
|
37
|
+
# @example
|
38
|
+
# request.uri # => "match/1"
|
39
|
+
#
|
40
|
+
# @api public
|
41
|
+
def uri
|
42
|
+
"match/#{id}"
|
43
|
+
end
|
24
44
|
|
25
|
-
|
26
|
-
|
45
|
+
##
|
46
|
+
# Match does not take params, return an empty Hash
|
47
|
+
#
|
48
|
+
# @return [Hash]
|
49
|
+
#
|
50
|
+
# @example
|
51
|
+
# request.params # => {}
|
52
|
+
#
|
53
|
+
# @api public
|
54
|
+
def params
|
55
|
+
{}
|
56
|
+
end
|
27
57
|
end
|
28
58
|
end
|
29
59
|
end
|
@@ -7,27 +7,131 @@ require 'zombie_battleground/api/requests/request_helper'
|
|
7
7
|
|
8
8
|
module ZombieBattleground
|
9
9
|
class Api
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
10
|
+
class Requests
|
11
|
+
##
|
12
|
+
# Request validator for GetMatches
|
13
|
+
class GetMatchesRequest
|
14
|
+
include ActiveModel::Validations
|
15
|
+
include ZombieBattleground::Api::ValidationHelper
|
16
|
+
include ZombieBattleground::Api::Requests::RequestHelper
|
17
|
+
|
18
|
+
##
|
19
|
+
# @!attribute [r] id
|
20
|
+
# Optionally set the Match's id for filtered querying
|
21
|
+
#
|
22
|
+
# @return [Integer]
|
23
|
+
#
|
24
|
+
# @example
|
25
|
+
# request.id #=> 1
|
26
|
+
#
|
27
|
+
# @api public
|
28
|
+
attr_accessor :id
|
29
|
+
|
30
|
+
##
|
31
|
+
# @!attribute [r] player1_id
|
32
|
+
# Optionally set the Match's player1_id for filtered querying
|
33
|
+
#
|
34
|
+
# @return [String]
|
35
|
+
#
|
36
|
+
# @example
|
37
|
+
# request.player1_id #=> "ZombieSlayer_16601021609396167139295300949176"
|
38
|
+
#
|
39
|
+
# @api public
|
40
|
+
attr_accessor :player1_id
|
41
|
+
|
42
|
+
##
|
43
|
+
# @!attribute [r] player2_id
|
44
|
+
# Optionally set the Match's player2_id for filtered querying
|
45
|
+
#
|
46
|
+
# @return [String]
|
47
|
+
#
|
48
|
+
# @example
|
49
|
+
# request.player2_id #=> "ZombieSlayer_16601021609396167139295300949176"
|
50
|
+
#
|
51
|
+
# @api public
|
52
|
+
attr_accessor :player2_id
|
53
|
+
|
54
|
+
##
|
55
|
+
# @!attribute [r] status
|
56
|
+
# Optionally set the Match's status for filtered querying
|
57
|
+
#
|
58
|
+
# @return [String]
|
59
|
+
#
|
60
|
+
# @example
|
61
|
+
# request.status #=> "Ended"
|
62
|
+
#
|
63
|
+
# @api public
|
64
|
+
attr_accessor :status
|
65
|
+
|
66
|
+
##
|
67
|
+
# @!attribute [r] version
|
68
|
+
# Optionally set the Match's version for filtered querying
|
69
|
+
#
|
70
|
+
# @return [String]
|
71
|
+
#
|
72
|
+
# @example
|
73
|
+
# request.version #=> "v3"
|
74
|
+
#
|
75
|
+
# @api public
|
76
|
+
attr_accessor :version
|
77
|
+
|
78
|
+
##
|
79
|
+
# @!attribute [r] winner_id
|
80
|
+
# Optionally set the Match's winner_id for filtered querying
|
81
|
+
#
|
82
|
+
# @return [String]
|
83
|
+
#
|
84
|
+
# @example
|
85
|
+
# request.winner_id #=> "ZombieSlayer_16601021609396167139295300949176"
|
86
|
+
#
|
87
|
+
# @api public
|
88
|
+
attr_accessor :winner_id
|
89
|
+
|
90
|
+
##
|
91
|
+
# @!attribute [r] page
|
92
|
+
# Optionally set the page number for filtered querying
|
93
|
+
#
|
94
|
+
# @return [Integer]
|
95
|
+
#
|
96
|
+
# @example
|
97
|
+
# request.page #=> 1
|
98
|
+
#
|
99
|
+
# @api public
|
100
|
+
attr_accessor :page
|
101
|
+
|
102
|
+
##
|
103
|
+
# @!attribute [r] limit
|
104
|
+
# Optionally set the limit for max Matches returned
|
105
|
+
#
|
106
|
+
# @return [Integer]
|
107
|
+
#
|
108
|
+
# @example
|
109
|
+
# request.limit #=> 100
|
110
|
+
#
|
111
|
+
# @api public
|
112
|
+
attr_accessor :limit
|
113
|
+
|
114
|
+
validate :id_is_a_non_negative_integer
|
115
|
+
validate :player1_id_is_a_string
|
116
|
+
validate :player2_id_is_a_string
|
117
|
+
validate :status_is_a_string
|
118
|
+
validate :version_is_a_string
|
119
|
+
validate :winner_id_is_a_string
|
120
|
+
validate :page_is_a_non_negative_integer
|
121
|
+
validate :limit_is_a_non_negative_integer
|
122
|
+
|
123
|
+
##
|
124
|
+
# The URI for the endpoint
|
125
|
+
#
|
126
|
+
# @return [String]
|
127
|
+
#
|
128
|
+
# @example
|
129
|
+
# request.uri # => "matches"
|
130
|
+
#
|
131
|
+
# @api public
|
132
|
+
def uri
|
133
|
+
'matches'
|
134
|
+
end
|
31
135
|
end
|
32
136
|
end
|
33
137
|
end
|