Skip to content

Commit cb5b824

Browse files
author
husnjak
committed
Updated wrapper with verisons
1 parent 444ba78 commit cb5b824

File tree

7 files changed

+343
-114
lines changed

7 files changed

+343
-114
lines changed

.idea/workspace.xml

Lines changed: 252 additions & 56 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main/kotlin/callback/onSuccessCallback.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,17 @@ package callback
33
import org.json.JSONArray
44
import java.lang.Exception
55

6-
interface onSuccessCallback {
6+
/**
7+
* Wrapper.OnSuccessCallback updated to Kotlin from java
8+
* Callback used to retrieve data from wrapper
9+
*
10+
* Created at: 2017-11-21
11+
* Updated at: 2018-02-10
12+
*
13+
* Created by Filip
14+
*
15+
**/
16+
interface OnSuccessCallback {
717
fun onSuccess(result: JSONArray)
818
fun onError(error: Exception)
919
}

src/main/kotlin/wrapper/Endpoints.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
1-
package Wrapper
1+
package wrapper
22

33
/**
4-
* Wrapper.IGDBWrapper updated to Kotlin from java
5-
* Lets users access IGDB API with java
4+
* Wrapper.Endpoint updated to Kotlin from java
5+
* Lets users access Endpoints
66
*
77
* Created at: 2017-11-21
8-
* Updated at: 2018-00-00
8+
* Updated at: 2018-02-10
99
*
1010
* Created by Filip
1111
*
1212
**/
13-
1413
enum class Endpoints {
1514
CHARACTERS, COLLECTIONS, COMPANIES, CREDITS, FEEDS, FRANCHISES, GAME_ENGINES, GAME_MODES, GAMES,
1615
GENRES, KEYWORDS, PAGES, PEOPLE, PLATFORMS, PLAYER_PERSPECTIVES, PULSE_GROUPS,

src/main/kotlin/wrapper/IGDBWrapper.kt

Lines changed: 43 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package Wrapper
1+
package wrapper
22

3-
import callback.onSuccessCallback
3+
import callback.OnSuccessCallback
44
import okhttp3.*
55
import org.json.JSONArray
66
import java.io.IOException
@@ -15,13 +15,17 @@ import java.io.IOException
1515
* Created by Filip
1616
*
1717
**/
18-
class IGDBWrapper(private val API_KEY: String) {
19-
private val API_URL: String = "https://api-endpoint.igdb.com/"
20-
private val API_HEADER: String = "user-key"
21-
private val header = Headers.Builder().add(API_HEADER, API_KEY).add("Accept", "application/json").build()
22-
18+
class IGDBWrapper(private val API_KEY: String, version: Version = Version.PRO, val debug: Boolean = false) {
19+
private var apiURL: String = "https://api-endpoint.igdb.com/"
20+
private val apiHeader: String = "user-key"
2321
private var httpClient: OkHttpClient = OkHttpClient()
2422

23+
init {
24+
if (version == Version.PRO) {
25+
apiURL += "pro/"
26+
}
27+
}
28+
2529
/**
2630
* This method returns a JSONArray with the specified data requested,
2731
* with this method you can request any kind of data from the IGDB API using custom urls.
@@ -31,12 +35,16 @@ class IGDBWrapper(private val API_KEY: String) {
3135
* @param callback The callback return the response from the server in the form of a JSONArray
3236
*
3337
**/
34-
fun getJSONArray(url: String, callback: onSuccessCallback) {
35-
val completeURL = API_URL + url
38+
fun getJSONArray(url: String, callback: OnSuccessCallback) {
39+
val completeURL = apiURL + url
40+
41+
if (debug) {
42+
println(completeURL)
43+
}
3644

3745
val request: Request = Request.Builder()
3846
.url(completeURL)
39-
.header(API_HEADER, API_KEY)
47+
.header(apiHeader, API_KEY)
4048
.addHeader("Accept", "application/json")
4149
.build()
4250

@@ -63,8 +71,8 @@ class IGDBWrapper(private val API_KEY: String) {
6371
* @param callback The callback return the response from the server in the form of a JSONArray
6472
*
6573
**/
66-
fun getJSONArray(url: String, headers: Headers, callback: onSuccessCallback) {
67-
val completeURL = API_URL + url
74+
fun getJSONArray(url: String, headers: Headers, callback: OnSuccessCallback) {
75+
val completeURL = apiURL + url
6876

6977
val request: Request = Request.Builder()
7078
.url(completeURL)
@@ -92,7 +100,7 @@ class IGDBWrapper(private val API_KEY: String) {
92100
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
93101
* API.
94102
* **/
95-
fun search(endpoint: Endpoints, parameters: Parameters, callback: onSuccessCallback) {
103+
fun search(endpoint: Endpoints, parameters: Parameters, callback: OnSuccessCallback) {
96104
getJSONArray(parameters.buildQuery(endpoint), callback)
97105
}
98106

@@ -103,7 +111,7 @@ class IGDBWrapper(private val API_KEY: String) {
103111
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
104112
* API.
105113
* */
106-
fun games(parameters: Parameters, callback: onSuccessCallback) {
114+
fun games(parameters: Parameters, callback: OnSuccessCallback) {
107115
getJSONArray(parameters.buildQuery(Endpoints.GAMES), callback)
108116
}
109117

@@ -114,7 +122,7 @@ class IGDBWrapper(private val API_KEY: String) {
114122
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
115123
* API.
116124
* */
117-
fun pulses(parameters: Parameters, callback: onSuccessCallback) {
125+
fun pulses(parameters: Parameters, callback: OnSuccessCallback) {
118126
getJSONArray(parameters.buildQuery(Endpoints.PULSES), callback)
119127
}
120128

@@ -125,7 +133,7 @@ class IGDBWrapper(private val API_KEY: String) {
125133
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
126134
* API.
127135
* */
128-
fun characters(parameters: Parameters, callback: onSuccessCallback) {
136+
fun characters(parameters: Parameters, callback: OnSuccessCallback) {
129137
getJSONArray(parameters.buildQuery(Endpoints.CHARACTERS), callback)
130138
}
131139

@@ -136,7 +144,7 @@ class IGDBWrapper(private val API_KEY: String) {
136144
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
137145
* API.
138146
* */
139-
fun collections(parameters: Parameters, callback: onSuccessCallback) {
147+
fun collections(parameters: Parameters, callback: OnSuccessCallback) {
140148
getJSONArray(parameters.buildQuery(Endpoints.COLLECTIONS), callback)
141149
}
142150

@@ -147,7 +155,7 @@ class IGDBWrapper(private val API_KEY: String) {
147155
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
148156
* API.
149157
* */
150-
fun companies(parameters: Parameters, callback: onSuccessCallback) {
158+
fun companies(parameters: Parameters, callback: OnSuccessCallback) {
151159
getJSONArray(parameters.buildQuery(Endpoints.COMPANIES), callback)
152160
}
153161

@@ -158,7 +166,7 @@ class IGDBWrapper(private val API_KEY: String) {
158166
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
159167
* API.
160168
* */
161-
fun franshises(parameters: Parameters, callback: onSuccessCallback) {
169+
fun franshises(parameters: Parameters, callback: OnSuccessCallback) {
162170
getJSONArray(parameters.buildQuery(Endpoints.FRANCHISES), callback)
163171
}
164172

@@ -169,7 +177,7 @@ class IGDBWrapper(private val API_KEY: String) {
169177
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
170178
* API.
171179
**/
172-
fun feeds(parameters: Parameters, callback: onSuccessCallback) {
180+
fun feeds(parameters: Parameters, callback: OnSuccessCallback) {
173181
getJSONArray(parameters.buildQuery(Endpoints.FEEDS), callback)
174182
}
175183

@@ -180,7 +188,7 @@ class IGDBWrapper(private val API_KEY: String) {
180188
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
181189
* API.
182190
**/
183-
fun pages(parameters: Parameters, callback: onSuccessCallback) {
191+
fun pages(parameters: Parameters, callback: OnSuccessCallback) {
184192
getJSONArray(parameters.buildQuery(Endpoints.PAGES), callback)
185193
}
186194

@@ -191,7 +199,7 @@ class IGDBWrapper(private val API_KEY: String) {
191199
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
192200
* API.
193201
**/
194-
fun gameEngines(parameters: Parameters, callback: onSuccessCallback) {
202+
fun gameEngines(parameters: Parameters, callback: OnSuccessCallback) {
195203
getJSONArray(parameters.buildQuery(Endpoints.GAME_ENGINES), callback)
196204
}
197205

@@ -202,7 +210,7 @@ class IGDBWrapper(private val API_KEY: String) {
202210
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
203211
* API.
204212
**/
205-
fun gameModes(parameters: Parameters, callback: onSuccessCallback) {
213+
fun gameModes(parameters: Parameters, callback: OnSuccessCallback) {
206214
getJSONArray(parameters.buildQuery(Endpoints.GAME_MODES), callback)
207215
}
208216

@@ -213,7 +221,7 @@ class IGDBWrapper(private val API_KEY: String) {
213221
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
214222
* API.
215223
**/
216-
fun genres(parameters: Parameters, callback: onSuccessCallback) {
224+
fun genres(parameters: Parameters, callback: OnSuccessCallback) {
217225
getJSONArray(parameters.buildQuery(Endpoints.GENRES), callback)
218226
}
219227

@@ -224,7 +232,7 @@ class IGDBWrapper(private val API_KEY: String) {
224232
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
225233
* API.
226234
**/
227-
fun keywords(parameters: Parameters, callback: onSuccessCallback) {
235+
fun keywords(parameters: Parameters, callback: OnSuccessCallback) {
228236
getJSONArray(parameters.buildQuery(Endpoints.KEYWORDS), callback)
229237
}
230238

@@ -235,7 +243,7 @@ class IGDBWrapper(private val API_KEY: String) {
235243
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
236244
* API.
237245
**/
238-
fun people(parameters: Parameters, callback: onSuccessCallback) {
246+
fun people(parameters: Parameters, callback: OnSuccessCallback) {
239247
getJSONArray(parameters.buildQuery(Endpoints.PEOPLE), callback)
240248
}
241249

@@ -246,7 +254,7 @@ class IGDBWrapper(private val API_KEY: String) {
246254
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
247255
* API.
248256
**/
249-
fun platforms(parameters: Parameters, callback: onSuccessCallback) {
257+
fun platforms(parameters: Parameters, callback: OnSuccessCallback) {
250258
getJSONArray(parameters.buildQuery(Endpoints.PLATFORMS), callback)
251259
}
252260

@@ -258,7 +266,7 @@ class IGDBWrapper(private val API_KEY: String) {
258266
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
259267
* API.
260268
**/
261-
fun playerPerspectives(parameters: Parameters, callback: onSuccessCallback) {
269+
fun playerPerspectives(parameters: Parameters, callback: OnSuccessCallback) {
262270
getJSONArray(parameters.buildQuery(Endpoints.PLAYER_PERSPECTIVES), callback)
263271
}
264272

@@ -269,7 +277,7 @@ class IGDBWrapper(private val API_KEY: String) {
269277
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
270278
* API.
271279
* */
272-
fun releaseDates(parameters: Parameters, callback: onSuccessCallback) {
280+
fun releaseDates(parameters: Parameters, callback: OnSuccessCallback) {
273281
getJSONArray(parameters.buildQuery(Endpoints.RELEASE_DATES), callback)
274282
}
275283

@@ -280,7 +288,7 @@ class IGDBWrapper(private val API_KEY: String) {
280288
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
281289
* API.
282290
**/
283-
fun pulseGroups(parameters: Parameters, callback: onSuccessCallback) {
291+
fun pulseGroups(parameters: Parameters, callback: OnSuccessCallback) {
284292
getJSONArray(parameters.buildQuery(Endpoints.PULSE_GROUPS), callback)
285293
}
286294

@@ -291,7 +299,7 @@ class IGDBWrapper(private val API_KEY: String) {
291299
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
292300
* API.
293301
**/
294-
fun pulseSources(parameters: Parameters, callback: onSuccessCallback) {
302+
fun pulseSources(parameters: Parameters, callback: OnSuccessCallback) {
295303
getJSONArray(parameters.buildQuery(Endpoints.PULSE_SOURCES), callback)
296304
}
297305

@@ -302,7 +310,7 @@ class IGDBWrapper(private val API_KEY: String) {
302310
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
303311
* API.
304312
**/
305-
fun themes(parameters: Parameters, callback: onSuccessCallback) {
313+
fun themes(parameters: Parameters, callback: OnSuccessCallback) {
306314
getJSONArray(parameters.buildQuery(Endpoints.THEMES), callback)
307315
}
308316

@@ -313,7 +321,7 @@ class IGDBWrapper(private val API_KEY: String) {
313321
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
314322
* API.
315323
**/
316-
fun reviews(parameters: Parameters, callback: onSuccessCallback) {
324+
fun reviews(parameters: Parameters, callback: OnSuccessCallback) {
317325
getJSONArray(parameters.buildQuery(Endpoints.REVIEWS), callback)
318326
}
319327

@@ -324,7 +332,7 @@ class IGDBWrapper(private val API_KEY: String) {
324332
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
325333
* API.
326334
**/
327-
fun titles(parameters: Parameters, callback: onSuccessCallback) {
335+
fun titles(parameters: Parameters, callback: OnSuccessCallback) {
328336
getJSONArray(parameters.buildQuery(Endpoints.TITLES), callback)
329337
}
330338

@@ -335,7 +343,7 @@ class IGDBWrapper(private val API_KEY: String) {
335343
* @param callback Callback which gets activated as soon as the JSONArray is returned from the
336344
* API.
337345
**/
338-
fun credits(parameters: Parameters, callback: onSuccessCallback) {
346+
fun credits(parameters: Parameters, callback: OnSuccessCallback) {
339347
getJSONArray(parameters.buildQuery(Endpoints.CREDITS), callback)
340348
}
341349

src/main/kotlin/wrapper/Parameters.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package Wrapper
1+
package wrapper
22

33
import java.util.ArrayList
44

@@ -87,7 +87,6 @@ class Parameters {
8787
}
8888

8989
query += filter + expand + order + limit + offset + scroll
90-
println("Query: " + query)
9190
return query
9291
}
9392

src/main/kotlin/wrapper/Version.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package wrapper
2+
3+
4+
/**
5+
* Wrapper.Version created for IGDBWrapper
6+
* Lets users use /pro/ for query
7+
*
8+
* Created at: 2018-02-10
9+
*
10+
* Created by Filip
11+
*
12+
**/
13+
enum class Version {
14+
STANDARD, PRO
15+
}

0 commit comments

Comments
 (0)