82 lines
4.2 KiB
C#
82 lines
4.2 KiB
C#
using Chtn.CSharp.SDK.Core;
|
|
using Chtn.CSharp.SDK.Models.Auth;
|
|
using Chtn.CSharp.SDK.Models.Session;
|
|
using System;
|
|
using System.Threading.Tasks;
|
|
|
|
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);
|
|
Task<ValidateSessionResp> ValidateSession(ValidateSessionReq 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>("user/authOptions", req);
|
|
|
|
public async Task OtpSendCode(OtpPleSendCodeReq req) =>
|
|
await _apiClient.PostAsync<OtpPleSendCodeReq, object>("v2/user/otpSendCode", req);
|
|
|
|
public async Task<SignInSuccessResp> OtpVerifyCode(OtpPleVerifyCodeReq req) =>
|
|
await _apiClient.PostAsync<OtpPleVerifyCodeReq, SignInSuccessResp>("v2/user/otpVerifyCode", req);
|
|
|
|
public async Task<SignInSuccessResp> LoginPasswordAuth(LoginPasswordAuthReq req) =>
|
|
await _apiClient.PostAsync<LoginPasswordAuthReq, SignInSuccessResp>("v2/user/loginPasswordAuth", req);
|
|
|
|
public async Task<UserDataValidationResp> IsUsernameUsed(UnameUsageReq req) =>
|
|
await _apiClient.PostAsync<UnameUsageReq, UserDataValidationResp>("v2/user/unameUsage", req);
|
|
|
|
public async Task<UserDataValidationResp> IsEmailUsed(EmailUsageReq req) =>
|
|
await _apiClient.PostAsync<EmailUsageReq, UserDataValidationResp>("v2/user/emailUsage", req);
|
|
|
|
public async Task PleSendVCode(PleSendVCodeReq req) =>
|
|
await _apiClient.PostAsync<PleSendVCodeReq, object>("v2/user/pleSendVCode", req);
|
|
|
|
public async Task<PleVerifyCodeResp> PleVerifyCode(PleVerifyCodeReq req) =>
|
|
await _apiClient.PostAsync<PleVerifyCodeReq, PleVerifyCodeResp>("v2/user/pleVerifyCode", req);
|
|
|
|
public async Task<SignInSuccessResp> FinishPLEAccount(FinishPleAccountReq req) =>
|
|
await _apiClient.PostAsync<FinishPleAccountReq, SignInSuccessResp>("v2/user/finishPLEAccount", req);
|
|
|
|
public async Task<SignInSuccessResp> LoginWithGoogle(LoginWithGoogleReq req) =>
|
|
await _apiClient.PostAsync<LoginWithGoogleReq, SignInSuccessResp>("user/loginWithGoogle", req);
|
|
|
|
public async Task<SignInSuccessResp> LoginWithApple(LoginWithAppleReq req) =>
|
|
await _apiClient.PostAsync<LoginWithAppleReq, SignInSuccessResp>("user/loginWithApple", req);
|
|
|
|
public async Task<SignInSuccessResp> Register(RegisterReq req) =>
|
|
await _apiClient.PostAsync<RegisterReq, SignInSuccessResp>("v2/user/register", req);
|
|
|
|
public async Task<ResetPasswordResp> ResetPassword(ResetPasswordReq req) =>
|
|
await _apiClient.PostAsync<ResetPasswordReq, ResetPasswordResp>("user/resetPassword", req);
|
|
|
|
public async Task VerifyResetCode(VerifyPasswordResetReq req) =>
|
|
await _apiClient.PostAsync<VerifyPasswordResetReq, object>("user/verifyResetCode", req);
|
|
|
|
public async Task<ValidateSessionResp> ValidateSession(ValidateSessionReq req) =>
|
|
await _apiClient.PostAsync<ValidateSessionReq, ValidateSessionResp>("v2/user/validateSession", req);
|
|
}
|
|
} |