Skip to content

Commit c5edd0b

Browse files
committed
temp
1 parent d80c2c5 commit c5edd0b

60 files changed

Lines changed: 1648 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
using System.Threading.Tasks;
2+
using StreamChat.Core.LowLevelClient.Requests;
3+
using StreamChat.Core.LowLevelClient.Responses;
4+
5+
namespace StreamChat.Core.LowLevelClient.API
6+
{
7+
/// <summary>
8+
/// API client for polls operations
9+
/// </summary>
10+
public interface IPollsApi
11+
{
12+
/// <summary>
13+
/// Creates a new poll
14+
/// </summary>
15+
Task<PollResponse> CreatePollAsync(CreatePollRequest createPollRequest);
16+
17+
/// <summary>
18+
/// Gets a poll by ID
19+
/// </summary>
20+
Task<PollResponse> GetPollAsync(string pollId);
21+
22+
/// <summary>
23+
/// Updates a poll
24+
/// </summary>
25+
Task<PollResponse> UpdatePollAsync(string pollId, UpdatePollRequest updatePollRequest);
26+
27+
/// <summary>
28+
/// Partially updates a poll
29+
/// </summary>
30+
Task<PollResponse> UpdatePollPartialAsync(string pollId, UpdatePollPartialRequest updatePollPartialRequest);
31+
32+
/// <summary>
33+
/// Deletes a poll
34+
/// </summary>
35+
Task<ApiResponse> DeletePollAsync(string pollId);
36+
37+
/// <summary>
38+
/// Queries polls
39+
/// </summary>
40+
Task<QueryPollsResponse> QueryPollsAsync(QueryPollsRequest queryPollsRequest);
41+
42+
/// <summary>
43+
/// Creates a poll option
44+
/// </summary>
45+
Task<PollOptionResponse> CreatePollOptionAsync(string pollId, CreatePollOptionRequest createPollOptionRequest);
46+
47+
/// <summary>
48+
/// Gets a poll option
49+
/// </summary>
50+
Task<PollOptionResponse> GetPollOptionAsync(string pollId, string optionId);
51+
52+
/// <summary>
53+
/// Updates a poll option
54+
/// </summary>
55+
Task<PollOptionResponse> UpdatePollOptionAsync(string pollId, string optionId, UpdatePollOptionRequest updatePollOptionRequest);
56+
57+
/// <summary>
58+
/// Deletes a poll option
59+
/// </summary>
60+
Task<ApiResponse> DeletePollOptionAsync(string pollId, string optionId);
61+
62+
/// <summary>
63+
/// Casts a vote in a poll
64+
/// </summary>
65+
Task<PollVoteResponse> CastVoteAsync(string messageId, string pollId, CastPollVoteRequest castPollVoteRequest);
66+
67+
/// <summary>
68+
/// Removes a vote from a poll
69+
/// </summary>
70+
Task<PollVoteResponse> RemoveVoteAsync(string messageId, string pollId, string voteId);
71+
72+
/// <summary>
73+
/// Queries votes for a poll
74+
/// </summary>
75+
Task<PollVotesResponse> QueryVotesAsync(string pollId, QueryPollVotesRequest queryPollVotesRequest);
76+
}
77+
}
78+

Assets/Plugins/StreamChat/Core/LowLevelClient/API/IPollsApi.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
using System.Threading.Tasks;
2+
using StreamChat.Core.InternalDTO.Requests;
3+
using StreamChat.Core.InternalDTO.Responses;
4+
5+
namespace StreamChat.Core.LowLevelClient.API.Internal
6+
{
7+
/// <summary>
8+
/// Internal API for polls operations
9+
/// </summary>
10+
internal interface IInternalPollsApi
11+
{
12+
/// <summary>
13+
/// Create a new poll
14+
/// </summary>
15+
Task<PollResponseInternalDTO> CreatePollAsync(CreatePollRequestInternalDTO createPollRequest);
16+
17+
/// <summary>
18+
/// Get a poll by ID
19+
/// </summary>
20+
Task<PollResponseInternalDTO> GetPollAsync(string pollId);
21+
22+
/// <summary>
23+
/// Update a poll
24+
/// </summary>
25+
Task<PollResponseInternalDTO> UpdatePollAsync(string pollId, UpdatePollRequestInternalDTO updatePollRequest);
26+
27+
/// <summary>
28+
/// Partial update a poll
29+
/// </summary>
30+
Task<PollResponseInternalDTO> UpdatePollPartialAsync(string pollId, UpdatePollPartialRequestInternalDTO updatePollPartialRequest);
31+
32+
/// <summary>
33+
/// Delete a poll
34+
/// </summary>
35+
Task<ResponseInternalDTO> DeletePollAsync(string pollId);
36+
37+
/// <summary>
38+
/// Query polls
39+
/// </summary>
40+
Task<QueryPollsResponseInternalDTO> QueryPollsAsync(QueryPollsRequestInternalDTO queryPollsRequest);
41+
42+
/// <summary>
43+
/// Create a poll option
44+
/// </summary>
45+
Task<PollOptionResponseInternalDTO> CreatePollOptionAsync(string pollId, CreatePollOptionRequestInternalDTO createPollOptionRequest);
46+
47+
/// <summary>
48+
/// Get a poll option
49+
/// </summary>
50+
Task<PollOptionResponseInternalDTO> GetPollOptionAsync(string pollId, string optionId);
51+
52+
/// <summary>
53+
/// Update a poll option
54+
/// </summary>
55+
Task<PollOptionResponseInternalDTO> UpdatePollOptionAsync(string pollId, string optionId, UpdatePollOptionRequestInternalDTO updatePollOptionRequest);
56+
57+
/// <summary>
58+
/// Delete a poll option
59+
/// </summary>
60+
Task<ResponseInternalDTO> DeletePollOptionAsync(string pollId, string optionId);
61+
62+
/// <summary>
63+
/// Cast a vote
64+
/// </summary>
65+
Task<PollVoteResponseInternalDTO> CastVoteAsync(string messageId, string pollId, CastPollVoteRequestInternalDTO castPollVoteRequest);
66+
67+
/// <summary>
68+
/// Remove a vote
69+
/// </summary>
70+
Task<PollVoteResponseInternalDTO> RemoveVoteAsync(string messageId, string pollId, string voteId);
71+
72+
/// <summary>
73+
/// Query votes
74+
/// </summary>
75+
Task<PollVotesResponseInternalDTO> QueryVotesAsync(string pollId, QueryPollVotesRequestInternalDTO queryPollVotesRequest);
76+
}
77+
}
78+

Assets/Plugins/StreamChat/Core/LowLevelClient/API/Internal/IInternalPollsApi.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
using System.Threading.Tasks;
2+
using StreamChat.Core.InternalDTO.Requests;
3+
using StreamChat.Core.InternalDTO.Responses;
4+
using StreamChat.Core.Web;
5+
using StreamChat.Libs.Http;
6+
using StreamChat.Libs.Logs;
7+
using StreamChat.Libs.Serialization;
8+
9+
namespace StreamChat.Core.LowLevelClient.API.Internal
10+
{
11+
/// <summary>
12+
/// Internal API for polls operations
13+
/// </summary>
14+
internal class InternalPollsApi : InternalApiClientBase, IInternalPollsApi
15+
{
16+
public InternalPollsApi(IHttpClient httpClient, ISerializer serializer, ILogs logs,
17+
IRequestUriFactory requestUriFactory, IStreamChatLowLevelClient lowLevelClient)
18+
: base(httpClient, serializer, logs, requestUriFactory, lowLevelClient)
19+
{
20+
}
21+
22+
public Task<PollResponseInternalDTO> CreatePollAsync(CreatePollRequestInternalDTO createPollRequest)
23+
=> Post<CreatePollRequestInternalDTO, PollResponseInternalDTO>("polls", createPollRequest);
24+
25+
public Task<PollResponseInternalDTO> GetPollAsync(string pollId)
26+
=> Get<PollResponseInternalDTO>($"polls/{pollId}");
27+
28+
public Task<PollResponseInternalDTO> UpdatePollAsync(string pollId, UpdatePollRequestInternalDTO updatePollRequest)
29+
=> Put<UpdatePollRequestInternalDTO, PollResponseInternalDTO>($"polls/{pollId}", updatePollRequest);
30+
31+
public Task<PollResponseInternalDTO> UpdatePollPartialAsync(string pollId, UpdatePollPartialRequestInternalDTO updatePollPartialRequest)
32+
=> Patch<UpdatePollPartialRequestInternalDTO, PollResponseInternalDTO>($"polls/{pollId}", updatePollPartialRequest);
33+
34+
public Task<ResponseInternalDTO> DeletePollAsync(string pollId)
35+
=> Delete<ResponseInternalDTO>($"polls/{pollId}");
36+
37+
public Task<QueryPollsResponseInternalDTO> QueryPollsAsync(QueryPollsRequestInternalDTO queryPollsRequest)
38+
=> Post<QueryPollsRequestInternalDTO, QueryPollsResponseInternalDTO>("polls/query", queryPollsRequest);
39+
40+
public Task<PollOptionResponseInternalDTO> CreatePollOptionAsync(string pollId, CreatePollOptionRequestInternalDTO createPollOptionRequest)
41+
=> Post<CreatePollOptionRequestInternalDTO, PollOptionResponseInternalDTO>($"polls/{pollId}/options", createPollOptionRequest);
42+
43+
public Task<PollOptionResponseInternalDTO> GetPollOptionAsync(string pollId, string optionId)
44+
=> Get<PollOptionResponseInternalDTO>($"polls/{pollId}/options/{optionId}");
45+
46+
public Task<PollOptionResponseInternalDTO> UpdatePollOptionAsync(string pollId, string optionId, UpdatePollOptionRequestInternalDTO updatePollOptionRequest)
47+
=> Put<UpdatePollOptionRequestInternalDTO, PollOptionResponseInternalDTO>($"polls/{pollId}/options/{optionId}", updatePollOptionRequest);
48+
49+
public Task<ResponseInternalDTO> DeletePollOptionAsync(string pollId, string optionId)
50+
=> Delete<ResponseInternalDTO>($"polls/{pollId}/options/{optionId}");
51+
52+
public Task<PollVoteResponseInternalDTO> CastVoteAsync(string messageId, string pollId, CastPollVoteRequestInternalDTO castPollVoteRequest)
53+
=> Post<CastPollVoteRequestInternalDTO, PollVoteResponseInternalDTO>($"messages/{messageId}/polls/{pollId}/vote", castPollVoteRequest);
54+
55+
public Task<PollVoteResponseInternalDTO> RemoveVoteAsync(string messageId, string pollId, string voteId)
56+
=> Delete<PollVoteResponseInternalDTO>($"messages/{messageId}/polls/{pollId}/vote/{voteId}");
57+
58+
public Task<PollVotesResponseInternalDTO> QueryVotesAsync(string pollId, QueryPollVotesRequestInternalDTO queryPollVotesRequest)
59+
=> Post<QueryPollVotesRequestInternalDTO, PollVotesResponseInternalDTO>($"polls/{pollId}/votes", queryPollVotesRequest);
60+
}
61+
}
62+

Assets/Plugins/StreamChat/Core/LowLevelClient/API/Internal/InternalPollsApi.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
using System;
2+
using System.Threading.Tasks;
3+
using StreamChat.Core.Helpers;
4+
using StreamChat.Core.InternalDTO.Responses;
5+
using StreamChat.Core.LowLevelClient.API.Internal;
6+
using StreamChat.Core.LowLevelClient.Requests;
7+
using StreamChat.Core.LowLevelClient.Responses;
8+
9+
namespace StreamChat.Core.LowLevelClient.API
10+
{
11+
/// <summary>
12+
/// API client for polls operations
13+
/// </summary>
14+
internal class PollsApi : IPollsApi
15+
{
16+
public PollsApi(IInternalPollsApi internalPollsApi)
17+
{
18+
_internalPollsApi = internalPollsApi ?? throw new ArgumentNullException(nameof(internalPollsApi));
19+
}
20+
21+
public async Task<PollResponse> CreatePollAsync(CreatePollRequest createPollRequest)
22+
{
23+
var dto = await _internalPollsApi.CreatePollAsync(createPollRequest.TrySaveToDto());
24+
return dto.ToDomain<PollResponseInternalDTO, PollResponse>();
25+
}
26+
27+
public async Task<PollResponse> GetPollAsync(string pollId)
28+
{
29+
var dto = await _internalPollsApi.GetPollAsync(pollId);
30+
return dto.ToDomain<PollResponseInternalDTO, PollResponse>();
31+
}
32+
33+
public async Task<PollResponse> UpdatePollAsync(string pollId, UpdatePollRequest updatePollRequest)
34+
{
35+
var dto = await _internalPollsApi.UpdatePollAsync(pollId, updatePollRequest.TrySaveToDto());
36+
return dto.ToDomain<PollResponseInternalDTO, PollResponse>();
37+
}
38+
39+
public async Task<PollResponse> UpdatePollPartialAsync(string pollId, UpdatePollPartialRequest updatePollPartialRequest)
40+
{
41+
var dto = await _internalPollsApi.UpdatePollPartialAsync(pollId, updatePollPartialRequest.TrySaveToDto());
42+
return dto.ToDomain<PollResponseInternalDTO, PollResponse>();
43+
}
44+
45+
public async Task<ApiResponse> DeletePollAsync(string pollId)
46+
{
47+
var dto = await _internalPollsApi.DeletePollAsync(pollId);
48+
return dto.ToDomain<ResponseInternalDTO, ApiResponse>();
49+
}
50+
51+
public async Task<QueryPollsResponse> QueryPollsAsync(QueryPollsRequest queryPollsRequest)
52+
{
53+
var dto = await _internalPollsApi.QueryPollsAsync(queryPollsRequest.TrySaveToDto());
54+
return dto.ToDomain<QueryPollsResponseInternalDTO, QueryPollsResponse>();
55+
}
56+
57+
public async Task<PollOptionResponse> CreatePollOptionAsync(string pollId, CreatePollOptionRequest createPollOptionRequest)
58+
{
59+
var dto = await _internalPollsApi.CreatePollOptionAsync(pollId, createPollOptionRequest.TrySaveToDto());
60+
return dto.ToDomain<PollOptionResponseInternalDTO, PollOptionResponse>();
61+
}
62+
63+
public async Task<PollOptionResponse> GetPollOptionAsync(string pollId, string optionId)
64+
{
65+
var dto = await _internalPollsApi.GetPollOptionAsync(pollId, optionId);
66+
return dto.ToDomain<PollOptionResponseInternalDTO, PollOptionResponse>();
67+
}
68+
69+
public async Task<PollOptionResponse> UpdatePollOptionAsync(string pollId, string optionId, UpdatePollOptionRequest updatePollOptionRequest)
70+
{
71+
var dto = await _internalPollsApi.UpdatePollOptionAsync(pollId, optionId, updatePollOptionRequest.TrySaveToDto());
72+
return dto.ToDomain<PollOptionResponseInternalDTO, PollOptionResponse>();
73+
}
74+
75+
public async Task<ApiResponse> DeletePollOptionAsync(string pollId, string optionId)
76+
{
77+
var dto = await _internalPollsApi.DeletePollOptionAsync(pollId, optionId);
78+
return dto.ToDomain<ResponseInternalDTO, ApiResponse>();
79+
}
80+
81+
public async Task<PollVoteResponse> CastVoteAsync(string messageId, string pollId, CastPollVoteRequest castPollVoteRequest)
82+
{
83+
var dto = await _internalPollsApi.CastVoteAsync(messageId, pollId, castPollVoteRequest.TrySaveToDto());
84+
return dto.ToDomain<PollVoteResponseInternalDTO, PollVoteResponse>();
85+
}
86+
87+
public async Task<PollVoteResponse> RemoveVoteAsync(string messageId, string pollId, string voteId)
88+
{
89+
var dto = await _internalPollsApi.RemoveVoteAsync(messageId, pollId, voteId);
90+
return dto.ToDomain<PollVoteResponseInternalDTO, PollVoteResponse>();
91+
}
92+
93+
public async Task<PollVotesResponse> QueryVotesAsync(string pollId, QueryPollVotesRequest queryPollVotesRequest)
94+
{
95+
var dto = await _internalPollsApi.QueryVotesAsync(pollId, queryPollVotesRequest.TrySaveToDto());
96+
return dto.ToDomain<PollVotesResponseInternalDTO, PollVotesResponse>();
97+
}
98+
99+
private readonly IInternalPollsApi _internalPollsApi;
100+
}
101+
}
102+

Assets/Plugins/StreamChat/Core/LowLevelClient/API/PollsApi.cs.meta

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

0 commit comments

Comments
 (0)