Skip to content

Commit db47134

Browse files
Added Contacts
1 parent 1b17742 commit db47134

13 files changed

Lines changed: 199 additions & 13 deletions

ESI.NET/Dictionaries.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ public static class Dictionaries
1111
/// </summary>
1212
public static Dictionary<string, string> NoContentMessages = new Dictionary<string, string>()
1313
{
14+
//Contacts
15+
{"PUT|/characters/{character_id}/contacts/", "Contacts updated"},
16+
{"DELETE|/characters/{character_id}/contacts/", "Contacts deleted"},
17+
1418
//Corporations
1519
{"PUT|/corporations/{corporation_id}/structures/{structure_id}/", "Structure vulnerability window updated"},
1620

ESI.NET/ESI.NET.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
<PropertyGroup>
44
<TargetFrameworks>netstandard2.0;net47</TargetFrameworks>
55
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
6-
<Version>0.9.4.11</Version>
6+
<Version>0.9.4.18</Version>
77
<Authors>Psianna Archeia</Authors>
88
<Company>Sukebe Corporation</Company>
99
<Description>.NET Wrapper for the Eve Online API</Description>
1010
<RepositoryUrl>https://github.com/seraphx2/ESI.NET</RepositoryUrl>
11-
<AssemblyVersion>0.9.4.11</AssemblyVersion>
12-
<FileVersion>0.9.4.11</FileVersion>
11+
<AssemblyVersion>0.9.4.18</AssemblyVersion>
12+
<FileVersion>0.9.4.18</FileVersion>
1313
<RepositoryType>git</RepositoryType>
1414
<PackageLicenseUrl>https://github.com/seraphx2/ESI.NET/blob/master/LICENSE.txt</PackageLicenseUrl>
1515
</PropertyGroup>

ESI.NET/ESIClient.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public ESIClient(ESIConfig config)
4141
Assets = new AssetsLogic(_config);
4242
Bookmarks = new BookmarksLogic(_config);
4343
Character = new CharacterLogic(_config);
44+
Contacts = new ContactsLogic(_config);
4445
Corporation = new CorporationLogic(_config);
4546
Dogma = new DogmaLogic(_config);
4647
FactionWarfare = new FactionWarfareLogic(_config);
@@ -67,6 +68,7 @@ public ESIClient(ESIConfig config)
6768
public AssetsLogic Assets { get; set; }
6869
public BookmarksLogic Bookmarks { get; set; }
6970
public CharacterLogic Character { get; set; }
71+
public ContactsLogic Contacts { get; set; }
7072
public CorporationLogic Corporation { get; set; }
7173
public DogmaLogic Dogma { get; set; }
7274
public FactionWarfareLogic FactionWarfare { get; set; }

ESI.NET/Logic/AllianceLogic.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public async Task<ApiResponse<List<int>>> All()
2525
/// </summary>
2626
/// <param name="alliance_ids"></param>
2727
/// <returns></returns>
28-
public async Task<ApiResponse<List<Alliance>>> Names(List<int> alliance_ids)
28+
public async Task<ApiResponse<List<Alliance>>> Names(int[] alliance_ids)
2929
=> await Execute<List<Alliance>>(_config, RequestSecurity.Public, RequestMethod.GET, "/alliances/names/", new string[]
3030
{
3131
$"alliance_ids={string.Join(",", alliance_ids)}"

ESI.NET/Logic/CharacterLogic.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ public CharacterLogic(ESIConfig config)
2525
/// </summary>
2626
/// <param name="characterIds">dynamic = long</param>
2727
/// <returns></returns>
28-
public async Task<ApiResponse<List<Affiliation>>> Affiliation(List<int> character_ids)
29-
=> await Execute<List<Affiliation>>(_config, RequestSecurity.Public, RequestMethod.POST, "/characters/affiliation/", body: character_ids.ToArray());
28+
public async Task<ApiResponse<List<Affiliation>>> Affiliation(int[] character_ids)
29+
=> await Execute<List<Affiliation>>(_config, RequestSecurity.Public, RequestMethod.POST, "/characters/affiliation/", body: character_ids);
3030

3131
/// <summary>
3232
/// /characters/names/
3333
/// </summary>
3434
/// <param name="characterIds"></param>
3535
/// <returns></returns>
36-
public async Task<ApiResponse<List<Character>>> Names(List<int> character_ids)
36+
public async Task<ApiResponse<List<Character>>> Names(int[] character_ids)
3737
=> await Execute<List<Character>>(_config, RequestSecurity.Public, RequestMethod.GET, "/characters/names/", new string[]
3838
{
3939
$"character_ids={string.Join(",", character_ids)}"

ESI.NET/Logic/ContactsLogic.cs

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
using ESI.NET.Models.Contacts;
2+
using ESI.NET.Models.Fleets;
3+
using System.Collections.Generic;
4+
using System.Net;
5+
using System.Threading.Tasks;
6+
using static ESI.NET.ApiRequest;
7+
8+
namespace ESI.NET.Logic
9+
{
10+
public class ContactsLogic
11+
{
12+
private ESIConfig _config;
13+
private int character_id, corporation_id, alliance_id;
14+
15+
public ContactsLogic(ESIConfig config)
16+
{
17+
_config = config;
18+
19+
if (_config.AuthorizedCharacter != null)
20+
{
21+
character_id = _config.AuthorizedCharacter.CharacterID;
22+
corporation_id = _config.AuthorizedCharacter.CorporationID;
23+
alliance_id = _config.AuthorizedCharacter.CorporationID;
24+
}
25+
}
26+
27+
/// <summary>
28+
/// /characters/{character_id}/contacts/
29+
/// </summary>
30+
/// <param name="page"></param>
31+
/// <returns></returns>
32+
public async Task<ApiResponse<List<Contact>>> List(int page = 1)
33+
=> await Execute<List<Contact>>(_config, RequestSecurity.Authenticated, RequestMethod.GET, $"/characters/{character_id}/contacts/", new string[]
34+
{
35+
$"page={page}"
36+
});
37+
38+
/// <summary>
39+
/// /corporations/{corporation_id}/contacts/
40+
/// </summary>
41+
/// <param name="page"></param>
42+
/// <returns></returns>
43+
public async Task<ApiResponse<List<Contact>>> ListForCorporation(int page = 1)
44+
=> await Execute<List<Contact>>(_config, RequestSecurity.Authenticated, RequestMethod.GET, $"/corporations/{corporation_id}/contacts/", new string[]
45+
{
46+
$"page={page}"
47+
});
48+
49+
/// <summary>
50+
/// /alliances/{alliance_id}/contacts/
51+
/// </summary>
52+
/// <param name="page"></param>
53+
/// <returns></returns>
54+
public async Task<ApiResponse<List<Contact>>> ListForAlliance(int page = 1)
55+
=> await Execute<List<Contact>>(_config, RequestSecurity.Authenticated, RequestMethod.GET, $"/alliances/{alliance_id}/contacts/", new string[]
56+
{
57+
$"page={page}"
58+
});
59+
60+
/// <summary>
61+
/// /characters/{character_id}/contacts/
62+
/// </summary>
63+
/// <param name="contact_id"></param>
64+
/// <param name="standing"></param>
65+
/// <param name="label_id"></param>
66+
/// <param name="watched"></param>
67+
/// <returns></returns>
68+
public async Task<ApiResponse<int[]>> Add(int contact_id, decimal standing, int? label_id = null, bool? watched = null)
69+
{
70+
var body = new int[] { contact_id };
71+
72+
var parameters = new List<string>() { $"standing={standing}" };
73+
74+
if (label_id != null)
75+
parameters.Add($"label_id={label_id}");
76+
77+
if (watched != null)
78+
parameters.Add($"watched={watched}");
79+
80+
var response = await Execute<int[]>(_config, RequestSecurity.Authenticated, RequestMethod.POST, $"/characters/{character_id}/contacts/", body: body, parameters: parameters.ToArray());
81+
82+
if (response.StatusCode == HttpStatusCode.NoContent)
83+
response.Message = Dictionaries.NoContentMessages["POST|/characters/{character_id}/contacts/"];
84+
85+
return response;
86+
}
87+
88+
/// <summary>
89+
/// /characters/{character_id}/contacts/
90+
/// </summary>
91+
/// <param name="contact_id"></param>
92+
/// <param name="standing"></param>
93+
/// <param name="label_id"></param>
94+
/// <param name="watched"></param>
95+
/// <returns></returns>
96+
public async Task<ApiResponse<string>> Update(int contact_id, decimal standing, int? label_id = null, bool? watched = null)
97+
{
98+
var body = new int[] { contact_id };
99+
100+
var parameters = new List<string>() { $"standing={standing}" };
101+
102+
if (label_id != null)
103+
parameters.Add($"label_id={label_id}");
104+
105+
if (watched != null)
106+
parameters.Add($"watched={watched}");
107+
108+
var response = await Execute<string>(_config, RequestSecurity.Authenticated, RequestMethod.PUT, $"/characters/{character_id}/contacts/", body: body, parameters: parameters.ToArray());
109+
110+
if (response.StatusCode == HttpStatusCode.NoContent)
111+
response.Message = Dictionaries.NoContentMessages["PUT|/characters/{character_id}/contacts/"];
112+
113+
return response;
114+
}
115+
116+
/// <summary>
117+
/// /characters/{character_id}/contacts/
118+
/// </summary>
119+
/// <param name="contact_ids"></param>
120+
/// <returns></returns>
121+
public async Task<ApiResponse<string>> Delete(int[] contact_ids)
122+
{
123+
var response = await Execute<string>(_config, RequestSecurity.Authenticated, RequestMethod.DELETE, $"/characters/{character_id}/contacts/", new string[]
124+
{
125+
$"contact_ids={string.Join(",", contact_ids)}"
126+
});
127+
128+
if (response.StatusCode == HttpStatusCode.NoContent)
129+
response.Message = Dictionaries.NoContentMessages["DELETE|/characters/{character_id}/contacts/"];
130+
131+
return response;
132+
}
133+
134+
/// <summary>
135+
/// /characters/{character_id}/contacts/labels/
136+
/// </summary>
137+
/// <returns></returns>
138+
public async Task<ApiResponse<List<Label>>> Labels()
139+
=> await Execute<List<Label>>(_config, RequestSecurity.Authenticated, RequestMethod.GET, $"/characters/{character_id}/contacts/labels/");
140+
}
141+
}

ESI.NET/Logic/CorporationLogic.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public async Task<ApiResponse<List<AllianceHistory>>> AllianceHistory(int corpor
4141
/// </summary>
4242
/// <param name="corporation_ids"></param>
4343
/// <returns></returns>
44-
public async Task<ApiResponse<List<Corporation>>> Names(List<int> corporation_ids)
44+
public async Task<ApiResponse<List<Corporation>>> Names(int[] corporation_ids)
4545
=> await Execute<List<Corporation>>(_config, RequestSecurity.Public, RequestMethod.GET, "/corporations/names/", new string[]
4646
{
4747
$"corporation_ids={string.Join(",", corporation_ids)}"

ESI.NET/Logic/Interfaces/IAllianceLogic.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ public interface IAllianceLogic
1111
Task<ApiResponse<List<int>>> Corporations(int alliance_id);
1212
Task<ApiResponse<Images>> Icons(int alliance_id);
1313
Task<ApiResponse<Information>> Information(int alliance_id);
14-
Task<ApiResponse<List<Alliance>>> Names(List<int> alliance_ids);
14+
Task<ApiResponse<List<Alliance>>> Names(int[] alliance_ids);
1515
}
1616
}

ESI.NET/Logic/Interfaces/ICharacterLogic.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace ESI.NET.Logic.Interfaces
77
{
88
public interface ICharacterLogic
99
{
10-
Task<ApiResponse<List<Affiliation>>> Affiliation(List<int> character_ids);
10+
Task<ApiResponse<List<Affiliation>>> Affiliation(int[] character_ids);
1111
Task<ApiResponse<List<Agent>>> AgentsResearch();
1212
Task<ApiResponse<List<Blueprint>>> Blueprints(int page = 1);
1313
Task<ApiResponse<CSPA>> CalculateCSPA(object character_ids);
@@ -17,7 +17,7 @@ public interface ICharacterLogic
1717
Task<ApiResponse<Fatigue>> Fatigue();
1818
Task<ApiResponse<Information>> Information(int character_id);
1919
Task<ApiResponse<List<Medal>>> Medals();
20-
Task<ApiResponse<List<Character>>> Names(List<int> character_ids);
20+
Task<ApiResponse<List<Character>>> Names(int[] character_ids);
2121
Task<ApiResponse<List<Notification>>> Notifications();
2222
Task<ApiResponse<Images>> Portrait(int character_id);
2323
Task<ApiResponse<List<string>>> Roles();

ESI.NET/Logic/Interfaces/ICorporationLogic.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public interface ICorporationLogic
2020
Task<ApiResponse<List<Member>>> Members();
2121
Task<ApiResponse<List<MemberTitles>>> MemberTitles();
2222
Task<ApiResponse<List<MemberInfo>>> MemberTracking();
23-
Task<ApiResponse<List<Corporation>>> Names(List<int> corporation_ids);
23+
Task<ApiResponse<List<Corporation>>> Names(int[] corporation_ids);
2424
Task<ApiResponse<List<int>>> NpcCorps();
2525
Task<ApiResponse<Outpost>> Outpost(int outpost_id);
2626
Task<ApiResponse<int[]>> Outposts(int page = 1);

0 commit comments

Comments
 (0)