implement FileTransfer and UserService modules with WebRTC support

This commit is contained in:
2026-05-03 11:25:59 +02:00
parent 3166c6e647
commit d236afb1de
5 changed files with 196 additions and 0 deletions

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using Newtonsoft.Json;
namespace Chtn.CSharp.SDK.Models.Media
{
@@ -8,10 +9,53 @@ namespace Chtn.CSharp.SDK.Models.Media
public string TargetUserId { get; set; }
public List<TransferableFileMetadata> Metadata { get; set; }
}
public class AcceptFileTransferReq { public string TransferId { get; set; } }
public class DeclineFileTransferReq { public string TransferId { get; set; } }
public class FileTransferSendOfferRTCReq
{
public string TransferId { get; set; }
public string Sdp { get; set; }
}
public class FileTransferSendAnswerRTCReq
{
public string TransferId { get; set; }
public string Sdp { get; set; }
}
public class FileTransferSendICERTCReq
{
public string TransferId { get; set; }
public string Ice { get; set; }
}
public class StartNewFileTransferResp { public string TransferId { get; set; } }
public class TransferableFileMetadata
{
public string FileId { get; set; }
public string Name { get; set; }
public long Size { get; set; }
}
public class DCStartNewFilePayload
{
public string TransferId { get; set; }
public TransferableFileMetadata Metadata { get; set; }
}
public class DCTransferFilePayload
{
public string TransferId { get; set; }
public byte[] Chunk { get; set; }
}
public class WSNewFileTransferPayload { public string TransferId { get; set; } }
public class WSNewFileTransferAcceptedPayload { public string TransferId { get; set; } }
public class WSNewFileTransferDeclinedPayload { public string TransferId { get; set; } }
public class WSNewFileTransferRTCOfferPayload { public string Sdp { get; set; } }
public class WSNewFileTransferRTCAnswerPayload { public string Sdp { get; set; } }
public class WSNewFileTransferRTCIcePayload { public string Ice { get; set; } }
}

View File

@@ -6,6 +6,25 @@ namespace Chtn.CSharp.SDK.Models.User
{
[JsonProperty("userid")] public string UserId { get; set; }
[JsonProperty("username")] public string Username { get; set; }
[JsonProperty("displayName")] public string DisplayName { get; set; }
[JsonProperty("email")] public string Email { get; set; }
[JsonProperty("phoneNumber")] public string PhoneNumber { get; set; }
[JsonProperty("pfpUrl")] public string ProfilePictureUrl { get; set; }
}
public class ChangeUsernameReq { [JsonProperty("newUsername")] public string NewUsername { get; set; } }
public class ChangeDisplayNameReq { [JsonProperty("newDisplayName")] public string NewDisplayName { get; set; } }
public class ChangePasswordReq { [JsonProperty("oldPassword")] public string OldPassword { get; set; } }
public class ChangeEmailReq { [JsonProperty("newEmail")] public string NewEmail { get; set; } }
public class UploadNewPfpReq { [JsonProperty("imageData")] public string ImageDataBase64 { get; set; } }
public class VerifyMailChangeReq { [JsonProperty("code")] public string Code { get; set; } }
public class DeleteReq { [JsonProperty("password")] public string Password { get; set; } }
public class RegisterFCMTokenReq { [JsonProperty("token")] public string Token { get; set; } }
public class GetSessionsReq { }
public class ToggleGifSaveReq { [JsonProperty("enabled")] public string IsEnabled { get; set; } }
public class ChangePhoneReq { [JsonProperty("newPhoneNumber")] public string NewPhoneNumber { get; set; } }
public class VerifyPhoneChangeReq { [JsonProperty("code")] public string Code { get; set; } }
public class VerifyFCMTokenReq { [JsonProperty("token")] public string Token { get; set; } }
public class UpdateUserDataReq { [JsonProperty("userData")] public PersonalUserData Data { get; set; } }
public class GIF { [JsonProperty("id")] public string Id { get; set; } [JsonProperty("url")] public string Url { get; set; } }
}