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

Commit 8186431

Browse files
author
Not Officer
committed
initial upload
1 parent b1c3fa4 commit 8186431

27 files changed

+1560
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>netcoreapp3.0</TargetFramework>
6+
<RootNamespace>Fortnite_API.Test</RootNamespace>
7+
</PropertyGroup>
8+
9+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
10+
<PlatformTarget>x64</PlatformTarget>
11+
</PropertyGroup>
12+
13+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
14+
<PlatformTarget>x64</PlatformTarget>
15+
</PropertyGroup>
16+
17+
<ItemGroup>
18+
<ProjectReference Include="..\Fortnite-API\Fortnite-API.csproj" />
19+
</ItemGroup>
20+
21+
</Project>

src/Fortnite-API.Test/Program.cs

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
using System.Diagnostics;
2+
using System.Threading.Tasks;
3+
4+
using Fortnite_API.Objects;
5+
6+
namespace Fortnite_API.Test
7+
{
8+
internal class Program
9+
{
10+
private static async Task Main()
11+
{
12+
var api = new FortniteApi();
13+
14+
var cosmetics = await api.Cosmetics.GetBrAsync(ApiLanguage.DE);
15+
await Task.Delay(500);
16+
17+
var johnWickById = await api.Cosmetics.GetBrAsync("bid_271_assassinsuitmale");
18+
await Task.Delay(500);
19+
20+
var johnWick_ghoulTrooperSearch = await api.Cosmetics.SearchBrIdsAsync(new []
21+
{
22+
"bid_271_assassinsuitmale",
23+
"cid_029_athena_commando_f_halloween"
24+
});
25+
await Task.Delay(500);
26+
27+
var johnWickSearch = await api.Cosmetics.SearchBrAsync(x =>
28+
{
29+
x.Name = "ohn wic";
30+
x.MatchMethod = MatchMethod.Contains;
31+
});
32+
await Task.Delay(500);
33+
34+
var allShadowsSearch = await api.Cosmetics.SearchAllBrAsync(x =>
35+
{
36+
x.Rarity = BrCosmeticRarity.Shadow;
37+
});
38+
await Task.Delay(500);
39+
40+
var shop = await api.Shop.GetBrAsync();
41+
await Task.Delay(500);
42+
43+
var news = await api.News.GetAsync();
44+
await Task.Delay(500);
45+
46+
var newsBr = await api.News.GetBrAsync();
47+
await Task.Delay(500);
48+
49+
var newsStw = await api.News.GetStwAsync();
50+
await Task.Delay(500);
51+
52+
var newsCreative = await api.News.GetCreativeAsync();
53+
54+
Debugger.Break();
55+
}
56+
}
57+
}

src/Fortnite-API.sln

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 16
4+
VisualStudioVersion = 16.0.29503.13
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Fortnite-API", "Fortnite-API\Fortnite-API.csproj", "{591626D0-DB4F-45D8-AC97-E970FCB715B6}"
7+
EndProject
8+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fortnite-API.Test", "Fortnite-API.Test\Fortnite-API.Test.csproj", "{90D24488-44F9-4402-A3BF-D8B3F2040C1B}"
9+
EndProject
10+
Global
11+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
12+
Debug|Any CPU = Debug|Any CPU
13+
Release|Any CPU = Release|Any CPU
14+
EndGlobalSection
15+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
16+
{591626D0-DB4F-45D8-AC97-E970FCB715B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17+
{591626D0-DB4F-45D8-AC97-E970FCB715B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
18+
{591626D0-DB4F-45D8-AC97-E970FCB715B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
19+
{591626D0-DB4F-45D8-AC97-E970FCB715B6}.Release|Any CPU.Build.0 = Release|Any CPU
20+
{90D24488-44F9-4402-A3BF-D8B3F2040C1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21+
{90D24488-44F9-4402-A3BF-D8B3F2040C1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
22+
{90D24488-44F9-4402-A3BF-D8B3F2040C1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
23+
{90D24488-44F9-4402-A3BF-D8B3F2040C1B}.Release|Any CPU.Build.0 = Release|Any CPU
24+
EndGlobalSection
25+
GlobalSection(SolutionProperties) = preSolution
26+
HideSolutionNode = FALSE
27+
EndGlobalSection
28+
GlobalSection(ExtensibilityGlobals) = postSolution
29+
SolutionGuid = {337EBEE7-A75D-466C-99ED-A4482BC8A9C9}
30+
EndGlobalSection
31+
EndGlobal
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Threading;
4+
using System.Threading.Tasks;
5+
6+
using Fortnite_API.Objects;
7+
8+
using RestSharp;
9+
10+
namespace Fortnite_API.Endpoints
11+
{
12+
public class CosmeticsEndpoints
13+
{
14+
private readonly IRestClient _client;
15+
16+
internal CosmeticsEndpoints(IRestClient client)
17+
{
18+
_client = client;
19+
}
20+
21+
public async Task<ApiResponse<List<BrCosmetic>>> GetBrAsync(ApiLanguage? language = null, CancellationToken token = default)
22+
{
23+
var request = new RestRequest("/cosmetics/br", Method.GET);
24+
25+
if (language.HasValue)
26+
{
27+
request.AddQueryParameter("language", language.Value.GetLanguageCode());
28+
}
29+
30+
var response = await _client.ExecuteTaskAsync<ApiResponse<List<BrCosmetic>>>(request, token).ConfigureAwait(false);
31+
return response.Data;
32+
}
33+
34+
public ApiResponse<List<BrCosmetic>> GetBr(ApiLanguage? language = null)
35+
{
36+
return GetBrAsync(language).GetAwaiter().GetResult();
37+
}
38+
39+
public async Task<ApiResponse<BrCosmetic>> GetBrAsync(string cosmeticId, ApiLanguage? language = null, CancellationToken token = default)
40+
{
41+
if (cosmeticId == null)
42+
{
43+
throw new ArgumentNullException(nameof(cosmeticId));
44+
}
45+
46+
if (cosmeticId.Length == 0)
47+
{
48+
throw new ArgumentOutOfRangeException(nameof(cosmeticId));
49+
}
50+
51+
var request = new RestRequest($"/cosmetics/br/{cosmeticId}", Method.GET);
52+
53+
if (language.HasValue)
54+
{
55+
request.AddQueryParameter("language", language.Value.GetLanguageCode());
56+
}
57+
58+
var response = await _client.ExecuteTaskAsync<ApiResponse<BrCosmetic>>(request, token).ConfigureAwait(false);
59+
return response.Data;
60+
}
61+
62+
public ApiResponse<BrCosmetic> GetBr(string cosmeticId, ApiLanguage? language = null)
63+
{
64+
return GetBrAsync(cosmeticId, language).GetAwaiter().GetResult();
65+
}
66+
67+
public async Task<ApiResponse<List<BrCosmetic>>> SearchBrIdsAsync(IEnumerable<string> cosmeticIds, ApiLanguage? language = null, CancellationToken token = default)
68+
{
69+
if (cosmeticIds == null)
70+
{
71+
throw new ArgumentNullException(nameof(cosmeticIds));
72+
}
73+
74+
var request = new RestRequest("/cosmetics/br/search/ids", Method.GET);
75+
var isArrayEmpty = true;
76+
77+
foreach (var cosmeticId in cosmeticIds)
78+
{
79+
isArrayEmpty = false;
80+
request.AddQueryParameter("id", cosmeticId);
81+
}
82+
83+
if (isArrayEmpty)
84+
{
85+
throw new ArgumentOutOfRangeException(nameof(cosmeticIds));
86+
}
87+
88+
if (language.HasValue)
89+
{
90+
request.AddQueryParameter("language", language.Value.GetLanguageCode());
91+
}
92+
93+
var response = await _client.ExecuteTaskAsync<ApiResponse<List<BrCosmetic>>>(request, token).ConfigureAwait(false);
94+
return response.Data;
95+
}
96+
97+
public ApiResponse<List<BrCosmetic>> SearchBrIds(IEnumerable<string> cosmeticIds, ApiLanguage? language = null)
98+
{
99+
return SearchBrIdsAsync(cosmeticIds, language).GetAwaiter().GetResult();
100+
}
101+
102+
public async Task<ApiResponse<BrCosmetic>> SearchBrAsync(Action<BrCosmeticSearchProperties> func, CancellationToken token = default)
103+
{
104+
if (func == null)
105+
{
106+
throw new ArgumentNullException(nameof(func));
107+
}
108+
109+
var request = new RestRequest("/cosmetics/br/search", Method.GET).ApplySearchParameters(func);
110+
var response = await _client.ExecuteTaskAsync<ApiResponse<BrCosmetic>>(request, token).ConfigureAwait(false);
111+
return response.Data;
112+
}
113+
114+
public ApiResponse<BrCosmetic> SearchBr(Action<BrCosmeticSearchProperties> func)
115+
{
116+
return SearchBrAsync(func).GetAwaiter().GetResult();
117+
}
118+
119+
public async Task<ApiResponse<List<BrCosmetic>>> SearchAllBrAsync(Action<BrCosmeticSearchProperties> func, CancellationToken token = default)
120+
{
121+
if (func == null)
122+
{
123+
throw new ArgumentNullException(nameof(func));
124+
}
125+
126+
var request = new RestRequest("/cosmetics/br/search/all", Method.GET).ApplySearchParameters(func);
127+
var response = await _client.ExecuteTaskAsync<ApiResponse<List<BrCosmetic>>>(request, token).ConfigureAwait(false);
128+
return response.Data;
129+
}
130+
131+
public ApiResponse<List<BrCosmetic>> SearchAll(Action<BrCosmeticSearchProperties> func)
132+
{
133+
return SearchAllBrAsync(func).GetAwaiter().GetResult();
134+
}
135+
}
136+
}
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
using System.Threading;
2+
using System.Threading.Tasks;
3+
4+
using Fortnite_API.Objects;
5+
6+
using RestSharp;
7+
8+
namespace Fortnite_API.Endpoints
9+
{
10+
public class NewsEndpoints
11+
{
12+
private readonly IRestClient _client;
13+
14+
internal NewsEndpoints(IRestClient client)
15+
{
16+
_client = client;
17+
}
18+
19+
public async Task<ApiResponse<CombinedNews>> GetAsync(ApiLanguage? language = null, CancellationToken token = default)
20+
{
21+
var request = new RestRequest("/news", Method.GET);
22+
23+
if (language.HasValue)
24+
{
25+
request.AddQueryParameter("language", language.Value.GetLanguageCode());
26+
}
27+
28+
var response = await _client.ExecuteTaskAsync<ApiResponse<CombinedNews>>(request, token).ConfigureAwait(false);
29+
return response.Data;
30+
}
31+
32+
public ApiResponse<CombinedNews> Get(ApiLanguage? language = null)
33+
{
34+
return GetAsync(language).GetAwaiter().GetResult();
35+
}
36+
37+
private async Task<ApiResponse<News>> GetNewsAsync(IRestRequest request, ApiLanguage? language, CancellationToken token)
38+
{
39+
if (language.HasValue)
40+
{
41+
request.AddQueryParameter("language", language.Value.GetLanguageCode());
42+
}
43+
44+
var response = await _client.ExecuteTaskAsync<ApiResponse<News>>(request, token).ConfigureAwait(false);
45+
return response.Data;
46+
}
47+
48+
public Task<ApiResponse<News>> GetBrAsync(ApiLanguage? language = null, CancellationToken token = default)
49+
{
50+
var request = new RestRequest("/news/br", Method.GET);
51+
return GetNewsAsync(request, language, token);
52+
}
53+
54+
public ApiResponse<News> GetBr(ApiLanguage? language = null)
55+
{
56+
return GetBrAsync(language).GetAwaiter().GetResult();
57+
}
58+
59+
public Task<ApiResponse<News>> GetStwAsync(ApiLanguage? language = null, CancellationToken token = default)
60+
{
61+
var request = new RestRequest("/news/stw", Method.GET);
62+
return GetNewsAsync(request, language, token);
63+
}
64+
65+
public ApiResponse<News> GetStw(ApiLanguage? language = null)
66+
{
67+
return GetStwAsync(language).GetAwaiter().GetResult();
68+
}
69+
70+
public Task<ApiResponse<News>> GetCreativeAsync(ApiLanguage? language = null, CancellationToken token = default)
71+
{
72+
var request = new RestRequest("/news/creative", Method.GET);
73+
return GetNewsAsync(request, language, token);
74+
}
75+
76+
public ApiResponse<News> GetCreative(ApiLanguage? language = null)
77+
{
78+
return GetCreativeAsync(language).GetAwaiter().GetResult();
79+
}
80+
}
81+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using System.Threading;
2+
using System.Threading.Tasks;
3+
4+
using Fortnite_API.Objects;
5+
6+
using RestSharp;
7+
8+
namespace Fortnite_API.Endpoints
9+
{
10+
public class ShopEndpoints
11+
{
12+
private readonly IRestClient _client;
13+
14+
internal ShopEndpoints(IRestClient client)
15+
{
16+
_client = client;
17+
}
18+
19+
public async Task<ApiResponse<BrShop>> GetBrAsync(ApiLanguage? language = null, CancellationToken token = default)
20+
{
21+
var request = new RestRequest("/shop/br", Method.GET);
22+
23+
if (language.HasValue)
24+
{
25+
request.AddQueryParameter("language", language.Value.GetLanguageCode());
26+
}
27+
28+
var response = await _client.ExecuteTaskAsync<ApiResponse<BrShop>>(request, token).ConfigureAwait(false);
29+
return response.Data;
30+
}
31+
32+
public ApiResponse<BrShop> GetBr(ApiLanguage? language = null)
33+
{
34+
return GetBrAsync(language).GetAwaiter().GetResult();
35+
}
36+
}
37+
}

0 commit comments

Comments
 (0)