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

Commit 398a83c

Browse files
committed
Improvements, Added all other endpoints except for 3
0 parents  commit 398a83c

File tree

81 files changed

+930
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+930
-0
lines changed

WrapperFortniteAPI.iml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module type="JAVA_MODULE" version="4" />

pom.xml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<groupId>org.example</groupId>
8+
<artifactId>WrapperFortniteAPI</artifactId>
9+
<version>1.0-SNAPSHOT</version>
10+
<build>
11+
<plugins>
12+
<plugin>
13+
<groupId>org.apache.maven.plugins</groupId>
14+
<artifactId>maven-compiler-plugin</artifactId>
15+
<configuration>
16+
<source>8</source>
17+
<target>8</target>
18+
</configuration>
19+
</plugin>
20+
</plugins>
21+
</build>
22+
23+
<dependencies>
24+
<dependency>
25+
<groupId>com.google.code.gson</groupId>
26+
<artifactId>gson</artifactId>
27+
<version>2.8.3</version>
28+
</dependency>
29+
<dependency>
30+
<groupId>com.squareup.okhttp3</groupId>
31+
<artifactId>okhttp</artifactId>
32+
<version>4.2.2</version>
33+
</dependency>
34+
<dependency>
35+
<groupId>com.squareup.retrofit2</groupId>
36+
<artifactId>retrofit</artifactId>
37+
<version>2.8.1</version>
38+
</dependency>
39+
<dependency>
40+
<groupId>com.squareup.retrofit2</groupId>
41+
<artifactId>converter-gson</artifactId>
42+
<version>2.7.2</version>
43+
</dependency>
44+
</dependencies>
45+
46+
</project>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.thoo.api;
2+
3+
import com.thoo.api.endpoints.*;
4+
5+
public interface FortniteAPI {
6+
7+
AESEndpoint getAESEndpoint();
8+
9+
CreatorCodeEndpoint getCreatorCodeEndpoint();
10+
11+
CosmeticEndpoint getCosmeticsEndpoint();
12+
13+
ShopEndpoint getShopEndpoint();
14+
15+
NewsEndpoint getNewsEndpoint();
16+
17+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.thoo.api;
2+
3+
public final class FortniteAPIBuilder {
4+
5+
private String apiKey;
6+
7+
public FortniteAPIBuilder setKey(String apiKey){
8+
this.apiKey = apiKey;
9+
return this;
10+
}
11+
12+
public FortniteAPI build(){
13+
return new FortniteAPIImpl(apiKey);
14+
}
15+
16+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package com.thoo.api;
2+
3+
import com.thoo.api.endpoints.*;
4+
import com.thoo.api.utils.HttpUtils;
5+
6+
public final class FortniteAPIImpl implements FortniteAPI {
7+
8+
private String apiKey;
9+
10+
private AESEndpoint aesEndpoint;
11+
private CreatorCodeEndpoint creatorCodeEndpoint;
12+
private CosmeticEndpoint cosmeticEndpoint;
13+
private ShopEndpoint shopEndpoint;
14+
private NewsEndpoint newsEndpoint;
15+
16+
public FortniteAPIImpl(String apiKey){
17+
this.apiKey = apiKey;
18+
new HttpUtils(this);
19+
this.aesEndpoint = new AESEndpoint();
20+
this.creatorCodeEndpoint = new CreatorCodeEndpoint();
21+
this.cosmeticEndpoint = new CosmeticEndpoint();
22+
this.shopEndpoint = new ShopEndpoint();
23+
this.newsEndpoint = new NewsEndpoint();
24+
}
25+
26+
public String getApiKey() {
27+
return apiKey;
28+
}
29+
30+
@Override
31+
public AESEndpoint getAESEndpoint() {
32+
return aesEndpoint;
33+
}
34+
35+
@Override
36+
public CreatorCodeEndpoint getCreatorCodeEndpoint() {
37+
return creatorCodeEndpoint;
38+
}
39+
40+
@Override
41+
public CosmeticEndpoint getCosmeticsEndpoint() {
42+
return cosmeticEndpoint;
43+
}
44+
45+
@Override
46+
public ShopEndpoint getShopEndpoint() {
47+
return shopEndpoint;
48+
}
49+
50+
@Override
51+
public NewsEndpoint getNewsEndpoint() {
52+
return newsEndpoint;
53+
}
54+
55+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.thoo.api.endpoints;
2+
3+
import com.thoo.api.model.AESModel;
4+
import com.thoo.api.model.BaseModel;
5+
import com.thoo.api.objects.FortniteResponse;
6+
import com.thoo.api.services.AESService;
7+
import com.thoo.api.utils.HttpUtils;
8+
import retrofit2.Call;
9+
import retrofit2.Retrofit;
10+
import retrofit2.converter.gson.GsonConverterFactory;
11+
12+
public final class AESEndpoint {
13+
14+
private AESService service;
15+
private Retrofit retrofit;
16+
17+
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);
23+
}
24+
25+
public FortniteResponse<BaseModel<AESModel>> getAES() {
26+
Call<BaseModel<AESModel>> call = service.aes();
27+
return HttpUtils.parse(call);
28+
}
29+
30+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.thoo.api.endpoints;
2+
3+
import com.thoo.api.enums.Language;
4+
import com.thoo.api.model.BaseModel;
5+
import com.thoo.api.model.BrCosmetic;
6+
import com.thoo.api.objects.FortniteResponse;
7+
import com.thoo.api.services.CosmeticService;
8+
import com.thoo.api.utils.HttpUtils;
9+
10+
import java.util.Arrays;
11+
import java.util.Optional;
12+
13+
public final class CosmeticEndpoint extends Endpoint<CosmeticService> {
14+
15+
public CosmeticEndpoint(){
16+
super(CosmeticService.class);
17+
}
18+
19+
public FortniteResponse<BaseModel<BrCosmetic[]>> getCosmetics(){
20+
return HttpUtils.parse(service.getCosmetics());
21+
}
22+
23+
public FortniteResponse<BaseModel<BrCosmetic[]>> getCosmetics(Language language){
24+
return HttpUtils.parse(service.getCosmetics(language.code));
25+
}
26+
27+
public FortniteResponse<BaseModel<BrCosmetic>> getCosmeticByID(String id){
28+
return HttpUtils.parse(service.getCosmeticsByID(id));
29+
}
30+
31+
public FortniteResponse<BaseModel<BrCosmetic>> getCosmeticByID(String id, Language language){
32+
return HttpUtils.parse(service.getCosmeticsByID(id, language.code));
33+
}
34+
35+
public Optional<BrCosmetic> getCosmeticByName(String name){
36+
return getCosmeticByName(name, Language.EN);
37+
}
38+
39+
public Optional<BrCosmetic> getCosmeticByName(String name, Language language){
40+
FortniteResponse<BaseModel<BrCosmetic[]>> cosmetics = HttpUtils.parse(service.getCosmetics(language.code));
41+
if(cosmetics.isSuccessful()){
42+
return Arrays.stream(cosmetics.getModel().data).filter(cosmetic -> cosmetic.name.equalsIgnoreCase(name)).findFirst();
43+
} else {
44+
return Optional.empty();
45+
}
46+
}
47+
48+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.thoo.api.endpoints;
2+
3+
import com.thoo.api.model.BaseModel;
4+
import com.thoo.api.model.CreatorModel;
5+
import com.thoo.api.objects.FortniteResponse;
6+
import com.thoo.api.services.CCService;
7+
import com.thoo.api.utils.HttpUtils;
8+
import retrofit2.Call;
9+
import retrofit2.Retrofit;
10+
import retrofit2.converter.gson.GsonConverterFactory;
11+
12+
public final class CreatorCodeEndpoint {
13+
14+
private CCService service;
15+
private Retrofit retrofit;
16+
17+
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);
23+
}
24+
25+
public FortniteResponse<BaseModel<CreatorModel>> get(String slug){
26+
Call<BaseModel<CreatorModel>> call = service.get(slug);
27+
return HttpUtils.parse(call);
28+
}
29+
30+
public FortniteResponse<BaseModel<CreatorModel>> search(String slug){
31+
Call<BaseModel<CreatorModel>> call = service.search(slug);
32+
return HttpUtils.parse(call);
33+
}
34+
35+
public FortniteResponse<BaseModel<CreatorModel[]>> searchAll(String slug){
36+
Call<BaseModel<CreatorModel[]>> call = service.searchAll(slug);
37+
return HttpUtils.parse(call);
38+
}
39+
40+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.thoo.api.endpoints;
2+
3+
import com.thoo.api.utils.HttpUtils;
4+
import retrofit2.Retrofit;
5+
import retrofit2.converter.gson.GsonConverterFactory;
6+
7+
public abstract class Endpoint<T> {
8+
9+
protected final Retrofit retrofit;
10+
protected final T service;
11+
12+
public Endpoint(Class<? extends T> service){
13+
this.retrofit = new Retrofit.Builder()
14+
.addConverterFactory(GsonConverterFactory.create(HttpUtils.gson))
15+
.baseUrl("https://fortnite-api.com/")
16+
.client(HttpUtils.client).build();
17+
this.service = retrofit.create(service);
18+
}
19+
20+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.thoo.api.endpoints;
2+
3+
import com.thoo.api.enums.Language;
4+
import com.thoo.api.model.BaseModel;
5+
import com.thoo.api.model.NewsCombined;
6+
import com.thoo.api.model.NewsTab;
7+
import com.thoo.api.objects.FortniteResponse;
8+
import com.thoo.api.services.NewsService;
9+
import com.thoo.api.utils.HttpUtils;
10+
11+
public final class NewsEndpoint extends Endpoint<NewsService> {
12+
13+
public NewsEndpoint() {
14+
super(NewsService.class);
15+
}
16+
17+
public FortniteResponse<BaseModel<NewsCombined>> getNews(){
18+
return HttpUtils.parse(service.getNews());
19+
}
20+
21+
public FortniteResponse<BaseModel<NewsCombined>> getNews(Language language){
22+
return HttpUtils.parse(service.getNews(language.code));
23+
}
24+
25+
public FortniteResponse<BaseModel<NewsTab>> getNewsBr(){
26+
return HttpUtils.parse(service.getNewsBr());
27+
}
28+
29+
public FortniteResponse<BaseModel<NewsTab>> getNewsBr(Language language){
30+
return HttpUtils.parse(service.getNewsBr(language.code));
31+
}
32+
33+
public FortniteResponse<BaseModel<NewsTab>> getNewsStw(){
34+
return HttpUtils.parse(service.getNewsStw());
35+
}
36+
37+
public FortniteResponse<BaseModel<NewsTab>> getNewsStw(Language language){
38+
return HttpUtils.parse(service.getNewsStw(language.code));
39+
}
40+
41+
public FortniteResponse<BaseModel<NewsTab>> getNewsCreative(){
42+
return HttpUtils.parse(service.getNewsCreative());
43+
}
44+
45+
public FortniteResponse<BaseModel<NewsTab>> getNewsCreative(Language language){
46+
return HttpUtils.parse(service.getNewsCreative(language.code));
47+
}
48+
49+
}

0 commit comments

Comments
 (0)