46 lines
2.0 KiB
C#
46 lines
2.0 KiB
C#
using System;
|
|
using System.Threading.Tasks;
|
|
using Chtn.CSharp.SDK.Core;
|
|
using Chtn.CSharp.SDK.Models.Media;
|
|
|
|
namespace Chtn.CSharp.SDK.Services
|
|
{
|
|
public interface IFileTransferService
|
|
{
|
|
Task<StartNewFileTransferResp> StartNew(StartNewFileTransferReq req);
|
|
Task Accept(AcceptFileTransferReq req);
|
|
Task Decline(DeclineFileTransferReq req);
|
|
Task SendRtcOffer(FileTransferSendOfferRTCReq req);
|
|
Task SendRtcAnswer(FileTransferSendAnswerRTCReq req);
|
|
Task SendRtcIce(FileTransferSendICERTCReq req);
|
|
}
|
|
|
|
public class FileTransferServiceProvider : IFileTransferService
|
|
{
|
|
private readonly ApiClient _apiClient;
|
|
|
|
public FileTransferServiceProvider(ApiClient apiClient)
|
|
{
|
|
_apiClient = apiClient ?? throw new ArgumentNullException(nameof(ApiClient));
|
|
}
|
|
|
|
public async Task<StartNewFileTransferResp> StartNew(StartNewFileTransferReq req) =>
|
|
await _apiClient.PostAsync<StartNewFileTransferReq, StartNewFileTransferResp>("v2/chat/dm/startNewFileTransfer", req);
|
|
|
|
public async Task Accept(AcceptFileTransferReq req) =>
|
|
await _apiClient.PostAsync<AcceptFileTransferReq, object>("v2/chat/dm/acceptFileTransfer", req);
|
|
|
|
public async Task Decline(DeclineFileTransferReq req) =>
|
|
await _apiClient.PostAsync<DeclineFileTransferReq, object>("v2/chat/dm/declineFileTransfer", req);
|
|
|
|
public async Task SendRtcOffer(FileTransferSendOfferRTCReq req) =>
|
|
await _apiClient.PostAsync<FileTransferSendOfferRTCReq, object>("v2/chat/dm/sendRtcOfferFileTransfer", req);
|
|
|
|
public async Task SendRtcAnswer(FileTransferSendAnswerRTCReq req) =>
|
|
await _apiClient.PostAsync<FileTransferSendAnswerRTCReq, object>("v2/chat/dm/sendRtcAnswerFileTransfer", req);
|
|
|
|
public async Task SendRtcIce(FileTransferSendICERTCReq req) =>
|
|
await _apiClient.PostAsync<FileTransferSendICERTCReq, object>("v2/chat/dm/sendRtcICEFileTransfer", req);
|
|
}
|
|
}
|