Implement AuthService and ApiClient core logic
This commit is contained in:
36
Core/ApiClient.cs
Normal file
36
Core/ApiClient.cs
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Chtn.CSharp.SDK.Core
|
||||||
|
{
|
||||||
|
public class ApiClient
|
||||||
|
{
|
||||||
|
private readonly HttpClient _httpClient;
|
||||||
|
private readonly string _baseUrl;
|
||||||
|
|
||||||
|
public ApiClient(string baseUrl)
|
||||||
|
{
|
||||||
|
_baseUrl = baseUrl.EndsWith("/") ? baseUrl : baseUrl + "/";
|
||||||
|
_httpClient = new HttpClient();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<TResponse> PostAsync<TRequest, TResponse>(string endpoint, TRequest data)
|
||||||
|
{
|
||||||
|
var json = JsonConvert.SerializeObject(data);
|
||||||
|
var content = new StringContent(json, Encoding.UTF8, "application/json");
|
||||||
|
|
||||||
|
var response = await _httpClient.PostAsync(_baseUrl + endpoint, content);
|
||||||
|
var responseJson = await response.Content.ReadAsStringAsync();
|
||||||
|
|
||||||
|
if (!response.IsSuccessStatusCode)
|
||||||
|
{
|
||||||
|
throw new Exception($"API Hiba ({response.StatusCode}): {responseJson}");
|
||||||
|
}
|
||||||
|
|
||||||
|
return JsonConvert.DeserializeObject<TResponse>(responseJson);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
using System;
|
using Chtn.CSharpSDK.Interfaces;
|
||||||
using System.Globalization;
|
using System;
|
||||||
using System.Net.WebSockets;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Chtn.CSharpSDK.Interfaces;
|
|
||||||
|
|
||||||
|
|
||||||
namespace Chtn.CSharpSDK.Core
|
namespace Chtn.CSharpSDK.Core
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
namespace Chtn.CSharp.SDK.Core
|
namespace Chtn.CSharp.SDK.Core
|
||||||
{
|
{
|
||||||
public class SDKConfig
|
public class SDKConfig
|
||||||
{
|
{
|
||||||
public string ApiUrl { get; set; } = "https://api.chatenium.hu";
|
public string ApiUrl { get; set; } = "https://api.chatenium.hu";
|
||||||
public string CdnUrl { get; set; } = "https://cdn.chatenium.hu";
|
public string CdnUrl { get; set; } = "https://cdn.chatenium.hu";
|
||||||
public string WsUrl { get; set; } = "wss://api.chatenium.hu";
|
public string WsUrl { get; set; } = "wss://api.chatenium.hu";
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ using System.Net.Http;
|
|||||||
|
|
||||||
namespace Chtn.CSharp.SDK.Core
|
namespace Chtn.CSharp.SDK.Core
|
||||||
{
|
{
|
||||||
public static class HttpClientFactory
|
public static class HttpClientFactory
|
||||||
{
|
{
|
||||||
public static HttpClient CreateClient(bool isCdn = false)
|
public static HttpClient CreateClient(bool isCdn = false)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
using System;
|
using Chtn.CSharp.SDK.Core;
|
||||||
using System.Collections.Generic;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
|
using System.Net.Http.Headers;
|
||||||
using System.Net.WebSockets;
|
using System.Net.WebSockets;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Newtonsoft.Json;
|
|
||||||
using System.Net.Http.Headers;
|
|
||||||
using Chtn.CSharpSDK.Interfaces;
|
|
||||||
using Chtn.CSharp.SDK.Core;
|
|
||||||
|
|
||||||
namespace Chtn.CSharpSDK.Core
|
namespace Chtn.CSharpSDK.Core
|
||||||
{
|
{
|
||||||
|
|||||||
125
Models/AuthModels.cs
Normal file
125
Models/AuthModels.cs
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
using Newtonsoft.Json;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Chtn.CSharp.SDK.Models.Auth
|
||||||
|
{
|
||||||
|
public class LoginPasswordAuthReq
|
||||||
|
{
|
||||||
|
[JsonProperty("unameMailPhone")] public string UnameMailPhone { get; set; }
|
||||||
|
[JsonProperty("password")] public string Password { get; set; }
|
||||||
|
[JsonProperty("os")] public string Os { get; set; }
|
||||||
|
[JsonProperty("language")] public string Language { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SignInSuccessResp
|
||||||
|
{
|
||||||
|
[JsonProperty("token")] public string Token { get; set; }
|
||||||
|
[JsonProperty("userid")] public string UserId { get; set; }
|
||||||
|
[JsonProperty("username")] public string Username { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetAuthMethods
|
||||||
|
{
|
||||||
|
[JsonProperty("identifier")] public string Identifier { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AuthMethods
|
||||||
|
{
|
||||||
|
[JsonProperty("methods")] public List<string> Methods { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class OtpPleSendCodeReq
|
||||||
|
{
|
||||||
|
[JsonProperty("identifier")] public List<string> Identifier { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class OtpPleVerifyCodeReq
|
||||||
|
{
|
||||||
|
[JsonProperty("identifier")] public string Identifier { get; set; }
|
||||||
|
[JsonProperty("code")] public string Code { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class UnameUsageReq
|
||||||
|
{
|
||||||
|
[JsonProperty("username")] public string Username { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EmailUsageReq
|
||||||
|
{
|
||||||
|
[JsonProperty("email")] public string Email { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class PleSendVCodeReq
|
||||||
|
{
|
||||||
|
[JsonProperty("email")] public string Email { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class PleVerifyVCodeReq
|
||||||
|
{
|
||||||
|
[JsonProperty("email")] public string Email { get; set; }
|
||||||
|
[JsonProperty("code")] public string Code { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class PleVerifyCodeResp
|
||||||
|
{
|
||||||
|
[JsonProperty("verifyOk")] public string VerifyOk { get; set; }
|
||||||
|
[JsonProperty("tempToken")] public string TempToken { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FinishPleAccountReq
|
||||||
|
{
|
||||||
|
[JsonProperty("temptoken")] public string TempToken { get; set; }
|
||||||
|
[JsonProperty("username")] public string Username { get; set; }
|
||||||
|
[JsonProperty("password")] public string Password { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class LoginWithGoogleReq
|
||||||
|
{
|
||||||
|
[JsonProperty("idToken")] public string IdToken { get; set; }
|
||||||
|
}
|
||||||
|
public class LoginWithAppleReq
|
||||||
|
{
|
||||||
|
[JsonProperty("idToken")] public string IdToken { get; set; }
|
||||||
|
[JsonProperty("firstName")] public string FirstName { get; set; }
|
||||||
|
[JsonProperty("lastName")] public string LastName { get; set; }
|
||||||
|
}
|
||||||
|
public class CheckloginReq
|
||||||
|
{
|
||||||
|
[JsonProperty("token")] public string Token { get; set; }
|
||||||
|
}
|
||||||
|
public class RegisterReq
|
||||||
|
{
|
||||||
|
[JsonProperty("username")] public string Username { get; set; }
|
||||||
|
[JsonProperty("email")] public string Email { get; set; }
|
||||||
|
[JsonProperty("password")] public string Password { get; set; }
|
||||||
|
}
|
||||||
|
public class ResetPasswordReq
|
||||||
|
{
|
||||||
|
[JsonProperty("identifier")] public string Identifier { get; set; }
|
||||||
|
}
|
||||||
|
public class ResetPasswordResp
|
||||||
|
{
|
||||||
|
[JsonProperty("success")] public string Success { get; set; }
|
||||||
|
}
|
||||||
|
public class VerifyPasswordResetReq
|
||||||
|
{
|
||||||
|
[JsonProperty("identifier")] public string Identifier { get; set; }
|
||||||
|
[JsonProperty("code")] public string Code { get; set; }
|
||||||
|
[JsonProperty("newPassword")] public string NewPassword { get; set; }
|
||||||
|
}
|
||||||
|
public class UserDataValidationResp
|
||||||
|
{
|
||||||
|
[JsonProperty("available")] public string Available { get; set; }
|
||||||
|
}
|
||||||
|
public class GetAuthMethodsReq
|
||||||
|
{
|
||||||
|
public string Identifier { get; set; }
|
||||||
|
}
|
||||||
|
public class PleVerifyCodeReq
|
||||||
|
{
|
||||||
|
public string Email { get; set; }
|
||||||
|
public string Code { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
9
Models/BroadcastModels.cs
Normal file
9
Models/BroadcastModels.cs
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
namespace Chtn.CSharp.SDK.Models.Call
|
||||||
|
{
|
||||||
|
public class StreamRegistry
|
||||||
|
{
|
||||||
|
public string StreamKey { get; set; }
|
||||||
|
public string Status { get; set; }
|
||||||
|
public string StreamUrl { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
9
Models/CallServiceModels.cs
Normal file
9
Models/CallServiceModels.cs
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
namespace Chtn.CSharp.SDK.Models.Call
|
||||||
|
{
|
||||||
|
public class InviteToCallReq
|
||||||
|
{
|
||||||
|
public string UserId { get; set; }
|
||||||
|
public string ChatId { get; set; }
|
||||||
|
public string TargetId { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
24
Models/ChatModels.cs
Normal file
24
Models/ChatModels.cs
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
using Chtn.CSharp.SDK.Models.Common;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Chtn.CSharp.SDK.Models.Chat
|
||||||
|
{
|
||||||
|
public class Chat
|
||||||
|
{
|
||||||
|
[JsonProperty("chatid")] public string ChatId { get; set; }
|
||||||
|
[JsonProperty("displayName")] public string DisplayName { get; set; }
|
||||||
|
[JsonProperty("latestMessage")] public LatestMessage Latest { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Message
|
||||||
|
{
|
||||||
|
[JsonProperty("msgid")] public string MsgId { get; set; }
|
||||||
|
[JsonProperty("author")] public string Author { get; set; }
|
||||||
|
[JsonProperty("message")] public string Content { get; set; }
|
||||||
|
[JsonProperty("sent_at")] public TimeStamp SentAt { get; set; }
|
||||||
|
[JsonProperty("files")] public List<Attachment> Files { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class LatestMessage { public string Message { get; set; } public string MsgId { get; set; } }
|
||||||
|
}
|
||||||
32
Models/CommonModels.cs
Normal file
32
Models/CommonModels.cs
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Chtn.CSharp.SDK.Models.Common
|
||||||
|
{
|
||||||
|
public class RGB
|
||||||
|
{
|
||||||
|
public int R { get; set; }
|
||||||
|
public int G { get; set; }
|
||||||
|
public int B { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TimeStamp
|
||||||
|
{
|
||||||
|
[JsonProperty("T")] public long T { get; set; }
|
||||||
|
[JsonProperty("I")] public int I { get; set; }
|
||||||
|
}
|
||||||
|
public class PublicUserData
|
||||||
|
{
|
||||||
|
[JsonProperty("pfp")] public string Pfp { get; set; }
|
||||||
|
[JsonProperty("displayName")] public string DisplayName { get; set; }
|
||||||
|
[JsonProperty("username")] public string Username { get; set; }
|
||||||
|
[JsonProperty("userid")] public string UserId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Attachment
|
||||||
|
{
|
||||||
|
public string FileId { get; set; }
|
||||||
|
public string FileName { get; set; }
|
||||||
|
public string Path { get; set; }
|
||||||
|
public string Type { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
29
Models/DMServiceModels.cs
Normal file
29
Models/DMServiceModels.cs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
using Chtn.CSharp.SDK.Models.Common;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Chtn.CSharp.SDK.Models.Chat.DM
|
||||||
|
{
|
||||||
|
public class DmMessage
|
||||||
|
{
|
||||||
|
[JsonProperty("msgid")] public string MsgId { get; set; }
|
||||||
|
[JsonProperty("author")] public string Author { get; set; }
|
||||||
|
[JsonProperty("message")] public string Content { get; set; }
|
||||||
|
[JsonProperty("sent_at")] public TimeStamp SentAt { get; set; }
|
||||||
|
[JsonProperty("files")] public List<Attachment> Files { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DmPinMessageReq
|
||||||
|
{
|
||||||
|
[JsonProperty("chatid")] public string ChatId { get; set; }
|
||||||
|
[JsonProperty("messageId")] public string MessageId { get; set; }
|
||||||
|
[JsonProperty("userid")] public string UserId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DmJoinWsRoomReq
|
||||||
|
{
|
||||||
|
[JsonProperty("connId")] public string ConnId { get; set; }
|
||||||
|
[JsonProperty("chatid")] public string ChatId { get; set; }
|
||||||
|
[JsonProperty("userid")] public string UserId { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
17
Models/FileTransferModels.cs
Normal file
17
Models/FileTransferModels.cs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Chtn.CSharp.SDK.Models.Media
|
||||||
|
{
|
||||||
|
public class StartNewFileTransferReq
|
||||||
|
{
|
||||||
|
public string UserId { get; set; }
|
||||||
|
public string TargetUserId { get; set; }
|
||||||
|
public List<TransferableFileMetadata> Metadata { get; set; }
|
||||||
|
}
|
||||||
|
public class TransferableFileMetadata
|
||||||
|
{
|
||||||
|
public string FileId { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public long Size { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
20
Models/FileUploadModels.cs
Normal file
20
Models/FileUploadModels.cs
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
using Newtonsoft.Json;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Chtn.CSharp.SDK.Models.Media
|
||||||
|
{
|
||||||
|
public class RegisterUploadReq
|
||||||
|
{
|
||||||
|
[JsonProperty("roomId")] public string RoomId { get; set; }
|
||||||
|
[JsonProperty("userid")] public string UserId { get; set; }
|
||||||
|
[JsonProperty("files")] public List<FileUploadRegistration> Files { get; set; }
|
||||||
|
}
|
||||||
|
public class FileUploadRegistration
|
||||||
|
{
|
||||||
|
[JsonProperty("size")] public long Size { get; set; }
|
||||||
|
[JsonProperty("type")] public string Type { get; set; }
|
||||||
|
[JsonProperty("name")] public string Name { get; set; }
|
||||||
|
[JsonProperty("fileId")] public string FileId { get; set; }
|
||||||
|
}
|
||||||
|
public class RegisterUploadResp { public string UploadId { get; set; } }
|
||||||
|
}
|
||||||
5
Models/NetworkHttpsModels.cs
Normal file
5
Models/NetworkHttpsModels.cs
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
namespace Chtn.CSharp.SDK.Models.Network
|
||||||
|
{
|
||||||
|
public class GenericErrorBody { public string Error { get; set; } }
|
||||||
|
public class GenericSuccessBody { public string Response { get; set; } }
|
||||||
|
}
|
||||||
16
Models/NetworkModels.cs
Normal file
16
Models/NetworkModels.cs
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
namespace Chtn.CSharp.SDK.Models.Network
|
||||||
|
{
|
||||||
|
public class CreateNetworkReq
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Visibility { get; set; }
|
||||||
|
public string UserId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class NetworkChannel
|
||||||
|
{
|
||||||
|
public string ChannelId { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Desc { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
21
Models/PictureModels.cs
Normal file
21
Models/PictureModels.cs
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
using Chtn.CSharp.SDK.Models.Common;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Chtn.CSharp.SDK.Models.Media
|
||||||
|
{
|
||||||
|
public class Album
|
||||||
|
{
|
||||||
|
[JsonProperty("albumId")] public string ImageId { get; set; }
|
||||||
|
[JsonProperty("name")] public string Name { get; set; }
|
||||||
|
[JsonProperty("images")] public List<Image> Images { get; set; }
|
||||||
|
}
|
||||||
|
public class Image
|
||||||
|
{
|
||||||
|
[JsonProperty("imageId")] public string ImageId { get; set; }
|
||||||
|
[JsonProperty("path")] public string Path { get; set; }
|
||||||
|
[JsonProperty("title")] public string Title { get; set; }
|
||||||
|
[JsonProperty("uploaded_at")] public TimeStamp UploadedAt { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
4
Models/SessionManagerModels.cs
Normal file
4
Models/SessionManagerModels.cs
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
namespace Chtn.CSharp.SDK.Models.Session
|
||||||
|
{
|
||||||
|
public class ValidateSessionReq { public string Token { get; set; } }
|
||||||
|
}
|
||||||
12
Models/SessionModels.cs
Normal file
12
Models/SessionModels.cs
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
using Chtn.CSharp.SDK.Models.User;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Chtn.CSharp.SDK.Models.Session
|
||||||
|
{
|
||||||
|
public class Session
|
||||||
|
{
|
||||||
|
[JsonProperty("userData")] public PersonalUserData UserData { get; set; }
|
||||||
|
[JsonProperty("token")] public string Token { get; set; }
|
||||||
|
}
|
||||||
|
public class ValidateSessionResp { public bool ValidationOk { get; set; } }
|
||||||
|
}
|
||||||
27
Models/TextChannelServiceModels.cs
Normal file
27
Models/TextChannelServiceModels.cs
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
using Chtn.CSharp.SDK.Models.Common;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Chtn.CSharp.SDK.Models.Chat.TextChannel
|
||||||
|
{
|
||||||
|
public class ChannelMessage
|
||||||
|
{
|
||||||
|
[JsonProperty("msgid")] public string MsgId { get; set; }
|
||||||
|
[JsonProperty("author")] public PublicUserData Author { get; set; }
|
||||||
|
[JsonProperty("message")] public string Message { get; set; }
|
||||||
|
[JsonProperty("channelId")] public string ChannelId { get; set; }
|
||||||
|
[JsonProperty("files")] public List<Attachment> Files { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ChannelPinMessageReq
|
||||||
|
{
|
||||||
|
[JsonProperty("channelId")] public string ChannelId { get; set; }
|
||||||
|
[JsonProperty("messageId")] public string MessageId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ChannelJoinWsRoomReq
|
||||||
|
{
|
||||||
|
[JsonProperty("connId")] public string ConnId { get; set; }
|
||||||
|
[JsonProperty("channelId")] public string ChannelId { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Models/UserModels.cs
Normal file
11
Models/UserModels.cs
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Chtn.CSharp.SDK.Models.User
|
||||||
|
{
|
||||||
|
public class PersonalUserData
|
||||||
|
{
|
||||||
|
[JsonProperty("userid")] public string UserId { get; set; }
|
||||||
|
[JsonProperty("username")] public string Username { get; set; }
|
||||||
|
[JsonProperty("email")] public string Email { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
20
Models/WebSocketModels.cs
Normal file
20
Models/WebSocketModels.cs
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Chtn.CSharp.SDK.Models.Websocket
|
||||||
|
{
|
||||||
|
public class WSMessagePayload
|
||||||
|
{
|
||||||
|
[JsonProperty("action")] public string Action { get; set; }
|
||||||
|
[JsonProperty("data")] public string Data { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class WSMakeTokenReq
|
||||||
|
{
|
||||||
|
[JsonProperty("userid")] public string UserId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class WSMakeTokenResp
|
||||||
|
{
|
||||||
|
[JsonProperty("token")] public string Token { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
77
Services/AuthMethods.cs
Normal file
77
Services/AuthMethods.cs
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
using System;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Chtn.CSharp.SDK.Models.Auth;
|
||||||
|
using Chtn.CSharp.SDK.Core;
|
||||||
|
|
||||||
|
namespace Chtn.CSharp.SDK.Services
|
||||||
|
{
|
||||||
|
public interface IAuthService
|
||||||
|
{
|
||||||
|
Task<AuthMethods> GetAuthMethods(GetAuthMethodsReq req);
|
||||||
|
Task OtpSendCode(OtpPleSendCodeReq req);
|
||||||
|
Task<SignInSuccessResp> OtpVerifyCode(OtpPleVerifyCodeReq req);
|
||||||
|
Task<SignInSuccessResp> LoginPasswordAuth(LoginPasswordAuthReq req);
|
||||||
|
Task<UserDataValidationResp> IsUsernameUsed(UnameUsageReq req);
|
||||||
|
Task<UserDataValidationResp> IsEmailUsed(EmailUsageReq req);
|
||||||
|
Task PleSendVCode(PleSendVCodeReq req);
|
||||||
|
Task<PleVerifyCodeResp> PleVerifyCode(PleVerifyCodeReq req);
|
||||||
|
Task<SignInSuccessResp> FinishPLEAccount(FinishPleAccountReq req);
|
||||||
|
Task<SignInSuccessResp> LoginWithGoogle(LoginWithGoogleReq req);
|
||||||
|
Task<SignInSuccessResp> LoginWithApple(LoginWithAppleReq req);
|
||||||
|
Task<SignInSuccessResp> Register(RegisterReq req);
|
||||||
|
Task<ResetPasswordResp> ResetPassword(ResetPasswordReq req);
|
||||||
|
Task VerifyResetCode(VerifyPasswordResetReq req);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AuthServiceProvider : IAuthService
|
||||||
|
{
|
||||||
|
private readonly ApiClient _apiClient;
|
||||||
|
|
||||||
|
public AuthServiceProvider(ApiClient apiClient)
|
||||||
|
{
|
||||||
|
_apiClient = apiClient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<AuthMethods> GetAuthMethods(GetAuthMethodsReq req) =>
|
||||||
|
await _apiClient.PostAsync<GetAuthMethodsReq, AuthMethods>("auth/get-auth-methods", req);
|
||||||
|
|
||||||
|
public async Task OtpSendCode(OtpPleSendCodeReq req) =>
|
||||||
|
await _apiClient.PostAsync<OtpPleSendCodeReq, object>("auth/otp-send-code", req);
|
||||||
|
|
||||||
|
public async Task<SignInSuccessResp> OtpVerifyCode(OtpPleVerifyCodeReq req) =>
|
||||||
|
await _apiClient.PostAsync<OtpPleVerifyCodeReq, SignInSuccessResp>("auth/otp-verify-code", req);
|
||||||
|
|
||||||
|
public async Task<SignInSuccessResp> LoginPasswordAuth(LoginPasswordAuthReq req) =>
|
||||||
|
await _apiClient.PostAsync<LoginPasswordAuthReq, SignInSuccessResp>("auth/login-password-auth", req);
|
||||||
|
|
||||||
|
public async Task<UserDataValidationResp> IsUsernameUsed(UnameUsageReq req) =>
|
||||||
|
await _apiClient.PostAsync<UnameUsageReq, UserDataValidationResp>("auth/is-username-used", req);
|
||||||
|
|
||||||
|
public async Task<UserDataValidationResp> IsEmailUsed(EmailUsageReq req) =>
|
||||||
|
await _apiClient.PostAsync<EmailUsageReq, UserDataValidationResp>("auth/is-email-used", req);
|
||||||
|
|
||||||
|
public async Task PleSendVCode(PleSendVCodeReq req) =>
|
||||||
|
await _apiClient.PostAsync<PleSendVCodeReq, object>("auth/ple-send-vcode", req);
|
||||||
|
|
||||||
|
public async Task<PleVerifyCodeResp> PleVerifyCode(PleVerifyCodeReq req) =>
|
||||||
|
await _apiClient.PostAsync<PleVerifyCodeReq, PleVerifyCodeResp>("auth/ple-verify-code", req);
|
||||||
|
|
||||||
|
public async Task<SignInSuccessResp> FinishPLEAccount(FinishPleAccountReq req) =>
|
||||||
|
await _apiClient.PostAsync<FinishPleAccountReq, SignInSuccessResp>("auth/finish-ple-account", req);
|
||||||
|
|
||||||
|
public async Task<SignInSuccessResp> LoginWithGoogle(LoginWithGoogleReq req) =>
|
||||||
|
await _apiClient.PostAsync<LoginWithGoogleReq, SignInSuccessResp>("auth/login-with-google", req);
|
||||||
|
|
||||||
|
public async Task<SignInSuccessResp> LoginWithApple(LoginWithAppleReq req) =>
|
||||||
|
await _apiClient.PostAsync<LoginWithAppleReq, SignInSuccessResp>("auth/login-with-apple", req);
|
||||||
|
|
||||||
|
public async Task<SignInSuccessResp> Register(RegisterReq req) =>
|
||||||
|
await _apiClient.PostAsync<RegisterReq, SignInSuccessResp>("auth/register", req);
|
||||||
|
|
||||||
|
public async Task<ResetPasswordResp> ResetPassword(ResetPasswordReq req) =>
|
||||||
|
await _apiClient.PostAsync<ResetPasswordReq, ResetPasswordResp>("auth/reset-password", req);
|
||||||
|
|
||||||
|
public async Task VerifyResetCode(VerifyPasswordResetReq req) =>
|
||||||
|
await _apiClient.PostAsync<VerifyPasswordResetReq, object>("auth/verify-reset-code", req);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user