implement core SDK architecture, TextChannel services (orulj geci)
This commit is contained in:
@@ -13,6 +13,17 @@ namespace Chtn.CSharp.SDK.Models.Chat.TextChannel
|
|||||||
[JsonProperty("files")] public List<Attachment> Files { get; set; }
|
[JsonProperty("files")] public List<Attachment> Files { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class GetPinnedMessagesReq
|
||||||
|
{
|
||||||
|
[JsonProperty("channelId")] public string ChannelId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DeleteMessagesReq
|
||||||
|
{
|
||||||
|
[JsonProperty("channelId")] public string ChannelId { get; set; }
|
||||||
|
[JsonProperty("messageIds")] public List<string> MessageIds { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public class ChannelPinMessageReq
|
public class ChannelPinMessageReq
|
||||||
{
|
{
|
||||||
[JsonProperty("channelId")] public string ChannelId { get; set; }
|
[JsonProperty("channelId")] public string ChannelId { get; set; }
|
||||||
@@ -24,4 +35,40 @@ namespace Chtn.CSharp.SDK.Models.Chat.TextChannel
|
|||||||
[JsonProperty("connId")] public string ConnId { get; set; }
|
[JsonProperty("connId")] public string ConnId { get; set; }
|
||||||
[JsonProperty("channelId")] public string ChannelId { get; set; }
|
[JsonProperty("channelId")] public string ChannelId { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class GetMessagesReq
|
||||||
|
{
|
||||||
|
[JsonProperty("channelId")] public string ChannelId { get; set; }
|
||||||
|
[JsonProperty("limit")] public string Limit { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetMessagePosReq
|
||||||
|
{
|
||||||
|
[JsonProperty("channelId")] public string ChannelId { get; set; }
|
||||||
|
[JsonProperty("messageId")] public string MessageId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetMessagePosResp
|
||||||
|
{
|
||||||
|
[JsonProperty("position")] public string Position { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EditMessageReq
|
||||||
|
{
|
||||||
|
[JsonProperty("channelId")] public string ChannelId { get; set; }
|
||||||
|
[JsonProperty("messageId")] public string MessageId { get; set; }
|
||||||
|
[JsonProperty("newContent")] public string NewContent { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DeleteMessageReq
|
||||||
|
{
|
||||||
|
[JsonProperty("channelId")] public string ChannelId { get; set; }
|
||||||
|
[JsonProperty("messageId")] public string MessageId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReadMessagesReq
|
||||||
|
{
|
||||||
|
[JsonProperty("channelId")] public string ChannelId { get; set; }
|
||||||
|
[JsonProperty("lastMessageId")] public string LastMessageId { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
66
Services/TextChannelServiceMethods.cs
Normal file
66
Services/TextChannelServiceMethods.cs
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Chtn.CSharp.SDK.Core;
|
||||||
|
using Chtn.CSharp.SDK.Models.Chat.DM;
|
||||||
|
using Chtn.CSharp.SDK.Models.Chat.TextChannel;
|
||||||
|
|
||||||
|
namespace Chtn.CSharp.SDK.Services
|
||||||
|
{
|
||||||
|
public interface ITextChannelService
|
||||||
|
{
|
||||||
|
Task<List<ChannelMessage>> Get(GetMessagesReq req);
|
||||||
|
Task<GetMessagePosResp> GetMessagePos(GetMessagePosReq req);
|
||||||
|
Task<List<ChannelMessage>> GetPinnedMessages(GetPinnedMessagesReq req);
|
||||||
|
Task EditMessage(EditMessageReq req);
|
||||||
|
Task DeleteMessage(DeleteMessageReq req);
|
||||||
|
Task FinishMessage(DeleteMessageReq req);
|
||||||
|
Task ReadMessages(ReadMessagesReq req);
|
||||||
|
Task PinMessage(ChannelPinMessageReq req);
|
||||||
|
Task UnpinMessage(ChannelPinMessageReq req);
|
||||||
|
Task DeleteMessages(DeleteMessagesReq req);
|
||||||
|
Task JoinWebsocketRoom(ChannelJoinWsRoomReq req);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TextChannelServiceProvider : ITextChannelService
|
||||||
|
{
|
||||||
|
private readonly ApiClient _apiClient;
|
||||||
|
public TextChannelServiceProvider(ApiClient apiClient)
|
||||||
|
{
|
||||||
|
_apiClient = apiClient ?? throw new ArgumentNullException(nameof(ApiClient));
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<List<ChannelMessage>> Get(GetMessagesReq req) =>
|
||||||
|
await _apiClient.PostAsync<GetMessagesReq, List<ChannelMessage>>("network/channel/messages", req);
|
||||||
|
|
||||||
|
public async Task<GetMessagePosResp> GetMessagePos(GetMessagePosReq req) =>
|
||||||
|
await _apiClient.PostAsync<GetMessagePosReq, GetMessagePosResp>("network/channel/getMessagePosition", req);
|
||||||
|
|
||||||
|
public async Task<List<ChannelMessage>> GetPinnedMessages(GetPinnedMessagesReq req) =>
|
||||||
|
await _apiClient.PostAsync<GetPinnedMessagesReq, List<ChannelMessage>>("network/channel/pinnedMessages", req);
|
||||||
|
|
||||||
|
public async Task EditMessage(EditMessageReq req) =>
|
||||||
|
await _apiClient.PostAsync<EditMessageReq, object>("network/channel/editMessage", req);
|
||||||
|
|
||||||
|
public async Task DeleteMessage(DeleteMessageReq req) =>
|
||||||
|
await _apiClient.PostAsync<DeleteMessageReq, object>("chat/dm/deleteMessage", req);
|
||||||
|
|
||||||
|
public async Task FinishMessage(DeleteMessageReq req) =>
|
||||||
|
await _apiClient.PostAsync<DeleteMessageReq, object>("network/channel/finishMessage", req);
|
||||||
|
|
||||||
|
public async Task ReadMessages(ReadMessagesReq req) =>
|
||||||
|
await _apiClient.PostAsync<ReadMessagesReq, object>("network/channel/readMessages", req);
|
||||||
|
|
||||||
|
public async Task PinMessage(ChannelPinMessageReq req) =>
|
||||||
|
await _apiClient.PostAsync<ChannelPinMessageReq, object>("network/channel/pinMessage", req);
|
||||||
|
|
||||||
|
public async Task UnpinMessage(ChannelPinMessageReq req) =>
|
||||||
|
await _apiClient.PostAsync<ChannelPinMessageReq, object>("network/channel/unpinMessage", req);
|
||||||
|
|
||||||
|
public async Task DeleteMessages(DeleteMessagesReq req) =>
|
||||||
|
await _apiClient.PostAsync<DeleteMessagesReq, object>("network/channel/deleteMessages", req);
|
||||||
|
|
||||||
|
public async Task JoinWebsocketRoom(ChannelJoinWsRoomReq req) =>
|
||||||
|
await _apiClient.PostAsync<ChannelJoinWsRoomReq, object>("v2/network/channel/joinWebSocketRoom", req);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user