Skip to content
This repository was archived by the owner on Apr 9, 2024. It is now read-only.

Commit f102ea9

Browse files
committed
Updated to V2/ Added default language to builder, improvements
1 parent 398a83c commit f102ea9

34 files changed

+222
-122
lines changed

pom.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,21 @@
1717
<target>8</target>
1818
</configuration>
1919
</plugin>
20+
<plugin>
21+
<groupId>org.apache.maven.plugins</groupId>
22+
<artifactId>maven-shade-plugin</artifactId>
23+
<version>3.2.3</version>
24+
<configuration>
25+
</configuration>
26+
<executions>
27+
<execution>
28+
<phase>package</phase>
29+
<goals>
30+
<goal>shade</goal>
31+
</goals>
32+
</execution>
33+
</executions>
34+
</plugin>
2035
</plugins>
2136
</build>
2237

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.thoo.api;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
import java.lang.annotation.Target;
7+
8+
@Retention(RetentionPolicy.RUNTIME)
9+
@Target(ElementType.FIELD)
10+
public @interface BackendValue {
11+
12+
String value();
13+
14+
}
Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,24 @@
11
package com.thoo.api;
22

3+
import com.thoo.api.enums.Language;
4+
35
public final class FortniteAPIBuilder {
46

5-
private String apiKey;
7+
private String apiKey; // This is not required anymore.
8+
private Language language = Language.EN;
69

710
public FortniteAPIBuilder setKey(String apiKey){
811
this.apiKey = apiKey;
912
return this;
1013
}
1114

15+
public FortniteAPIBuilder setDefaultLanguage(Language language){
16+
this.language = language;
17+
return this;
18+
}
19+
1220
public FortniteAPI build(){
13-
return new FortniteAPIImpl(apiKey);
21+
return new FortniteAPIImpl(apiKey, language);
1422
}
1523

1624
}

src/main/java/com/thoo/api/FortniteAPIImpl.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.thoo.api;
22

33
import com.thoo.api.endpoints.*;
4+
import com.thoo.api.enums.Language;
45
import com.thoo.api.utils.HttpUtils;
56

67
public final class FortniteAPIImpl implements FortniteAPI {
@@ -13,14 +14,14 @@ public final class FortniteAPIImpl implements FortniteAPI {
1314
private ShopEndpoint shopEndpoint;
1415
private NewsEndpoint newsEndpoint;
1516

16-
public FortniteAPIImpl(String apiKey){
17+
public FortniteAPIImpl(String apiKey, Language defaultLanguage){
1718
this.apiKey = apiKey;
1819
new HttpUtils(this);
1920
this.aesEndpoint = new AESEndpoint();
2021
this.creatorCodeEndpoint = new CreatorCodeEndpoint();
21-
this.cosmeticEndpoint = new CosmeticEndpoint();
22-
this.shopEndpoint = new ShopEndpoint();
23-
this.newsEndpoint = new NewsEndpoint();
22+
this.cosmeticEndpoint = new CosmeticEndpoint(defaultLanguage);
23+
this.shopEndpoint = new ShopEndpoint(defaultLanguage);
24+
this.newsEndpoint = new NewsEndpoint(defaultLanguage);
2425
}
2526

2627
public String getApiKey() {
Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,27 @@
11
package com.thoo.api.endpoints;
22

3+
import com.thoo.api.model.AESKeyFormat;
34
import com.thoo.api.model.AESModel;
45
import com.thoo.api.model.BaseModel;
56
import com.thoo.api.objects.FortniteResponse;
67
import com.thoo.api.services.AESService;
78
import com.thoo.api.utils.HttpUtils;
89
import retrofit2.Call;
9-
import retrofit2.Retrofit;
10-
import retrofit2.converter.gson.GsonConverterFactory;
1110

12-
public final class AESEndpoint {
13-
14-
private AESService service;
15-
private Retrofit retrofit;
11+
public final class AESEndpoint extends Endpoint<AESService> {
1612

1713
public AESEndpoint(){
18-
this.retrofit = new Retrofit.Builder()
19-
.addConverterFactory(GsonConverterFactory.create())
20-
.baseUrl(AESService.BASE_URL)
21-
.client(HttpUtils.client).build();
22-
this.service = retrofit.create(AESService.class);
14+
super(AESService.class);
2315
}
2416

2517
public FortniteResponse<BaseModel<AESModel>> getAES() {
2618
Call<BaseModel<AESModel>> call = service.aes();
2719
return HttpUtils.parse(call);
2820
}
2921

22+
public FortniteResponse<BaseModel<AESModel>> getAES(AESKeyFormat format) {
23+
Call<BaseModel<AESModel>> call = service.aes(format.toString().toLowerCase());
24+
return HttpUtils.parse(call);
25+
}
26+
3027
}

src/main/java/com/thoo/api/endpoints/CosmeticEndpoint.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,28 +12,28 @@
1212

1313
public final class CosmeticEndpoint extends Endpoint<CosmeticService> {
1414

15-
public CosmeticEndpoint(){
16-
super(CosmeticService.class);
15+
public CosmeticEndpoint(Language defaultLanguage){
16+
super(CosmeticService.class, defaultLanguage);
1717
}
1818

1919
public FortniteResponse<BaseModel<BrCosmetic[]>> getCosmetics(){
20-
return HttpUtils.parse(service.getCosmetics());
20+
return HttpUtils.parse(service.getCosmetics(defaultLanguage.code));
2121
}
2222

2323
public FortniteResponse<BaseModel<BrCosmetic[]>> getCosmetics(Language language){
2424
return HttpUtils.parse(service.getCosmetics(language.code));
2525
}
2626

2727
public FortniteResponse<BaseModel<BrCosmetic>> getCosmeticByID(String id){
28-
return HttpUtils.parse(service.getCosmeticsByID(id));
28+
return HttpUtils.parse(service.getCosmeticsByID(id, defaultLanguage.code));
2929
}
3030

3131
public FortniteResponse<BaseModel<BrCosmetic>> getCosmeticByID(String id, Language language){
3232
return HttpUtils.parse(service.getCosmeticsByID(id, language.code));
3333
}
3434

3535
public Optional<BrCosmetic> getCosmeticByName(String name){
36-
return getCosmeticByName(name, Language.EN);
36+
return getCosmeticByName(name, defaultLanguage);
3737
}
3838

3939
public Optional<BrCosmetic> getCosmeticByName(String name, Language language){

src/main/java/com/thoo/api/endpoints/CreatorCodeEndpoint.java

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,11 @@
66
import com.thoo.api.services.CCService;
77
import com.thoo.api.utils.HttpUtils;
88
import retrofit2.Call;
9-
import retrofit2.Retrofit;
10-
import retrofit2.converter.gson.GsonConverterFactory;
119

12-
public final class CreatorCodeEndpoint {
13-
14-
private CCService service;
15-
private Retrofit retrofit;
10+
public final class CreatorCodeEndpoint extends Endpoint<CCService> {
1611

1712
public CreatorCodeEndpoint(){
18-
this.retrofit = new Retrofit.Builder()
19-
.addConverterFactory(GsonConverterFactory.create())
20-
.baseUrl(CCService.BASE_URL)
21-
.client(HttpUtils.client).build();
22-
this.service = retrofit.create(CCService.class);
13+
super(CCService.class);
2314
}
2415

2516
public FortniteResponse<BaseModel<CreatorModel>> get(String slug){

src/main/java/com/thoo/api/endpoints/Endpoint.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.thoo.api.endpoints;
22

3+
import com.thoo.api.enums.Language;
34
import com.thoo.api.utils.HttpUtils;
45
import retrofit2.Retrofit;
56
import retrofit2.converter.gson.GsonConverterFactory;
@@ -8,13 +9,24 @@ public abstract class Endpoint<T> {
89

910
protected final Retrofit retrofit;
1011
protected final T service;
12+
protected final Language defaultLanguage;
13+
14+
public Endpoint(Class<? extends T> service, Language defaultLanguage){
15+
this.retrofit = new Retrofit.Builder()
16+
.addConverterFactory(GsonConverterFactory.create(HttpUtils.gson))
17+
.baseUrl("https://fortnite-api.com/")
18+
.client(HttpUtils.client).build();
19+
this.service = retrofit.create(service);
20+
this.defaultLanguage = defaultLanguage;
21+
}
1122

1223
public Endpoint(Class<? extends T> service){
1324
this.retrofit = new Retrofit.Builder()
1425
.addConverterFactory(GsonConverterFactory.create(HttpUtils.gson))
1526
.baseUrl("https://fortnite-api.com/")
1627
.client(HttpUtils.client).build();
1728
this.service = retrofit.create(service);
29+
this.defaultLanguage = Language.EN;
1830
}
1931

2032
}

src/main/java/com/thoo/api/endpoints/NewsEndpoint.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,36 +10,36 @@
1010

1111
public final class NewsEndpoint extends Endpoint<NewsService> {
1212

13-
public NewsEndpoint() {
14-
super(NewsService.class);
13+
public NewsEndpoint(Language defaultLanguage) {
14+
super(NewsService.class, defaultLanguage);
1515
}
1616

1717
public FortniteResponse<BaseModel<NewsCombined>> getNews(){
18-
return HttpUtils.parse(service.getNews());
18+
return getNews(defaultLanguage);
1919
}
2020

2121
public FortniteResponse<BaseModel<NewsCombined>> getNews(Language language){
2222
return HttpUtils.parse(service.getNews(language.code));
2323
}
2424

2525
public FortniteResponse<BaseModel<NewsTab>> getNewsBr(){
26-
return HttpUtils.parse(service.getNewsBr());
26+
return getNewsBr(defaultLanguage);
2727
}
2828

2929
public FortniteResponse<BaseModel<NewsTab>> getNewsBr(Language language){
3030
return HttpUtils.parse(service.getNewsBr(language.code));
3131
}
3232

3333
public FortniteResponse<BaseModel<NewsTab>> getNewsStw(){
34-
return HttpUtils.parse(service.getNewsStw());
34+
return getNewsStw(defaultLanguage);
3535
}
3636

3737
public FortniteResponse<BaseModel<NewsTab>> getNewsStw(Language language){
3838
return HttpUtils.parse(service.getNewsStw(language.code));
3939
}
4040

4141
public FortniteResponse<BaseModel<NewsTab>> getNewsCreative(){
42-
return HttpUtils.parse(service.getNewsCreative());
42+
return getNewsCreative(defaultLanguage);
4343
}
4444

4545
public FortniteResponse<BaseModel<NewsTab>> getNewsCreative(Language language){

src/main/java/com/thoo/api/endpoints/ShopEndpoint.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99

1010
public final class ShopEndpoint extends Endpoint<ShopService> {
1111

12-
public ShopEndpoint() {
13-
super(ShopService.class);
12+
public ShopEndpoint(Language defaultLanguage) {
13+
super(ShopService.class, defaultLanguage);
1414
}
1515

1616
public FortniteResponse<BaseModel<BrShop>> getShop(){
17-
return HttpUtils.parse(service.shop());
17+
return getShop(defaultLanguage);
1818
}
1919

2020
public FortniteResponse<BaseModel<BrShop>> getShop(Language language){

0 commit comments

Comments
 (0)