Files
xIdentityService/Interfaces/IXIdentityProvider.cs
T
2024-01-25 04:44:02 +03:30

283 lines
7.4 KiB
C#

using System.Collections.Generic;
using System.Threading.Tasks;
using IdentityModel.Client;
using Microsoft.AspNetCore.Http;
using RestSharp;
using xHttpService.Constants;
using xIdentityModels.Constants;
using xIdentityModels.Dtos;
using xIdentityModels.Models;
using xIdentityModels.Navigations;
using xModels.Dtos;
namespace xIdentityService.Interfaces {
public partial interface IXIdentityProvider {
//
string BaseUrl { get; }
string RevisionSecretKey { get; }
//
#region Tools ...
string GetUserSelectByParam (
XActionRequest model,
bool forceNotNull = true,
ICollection<XUserSelectBy> excludes = null
);
#endregion
//
#region Tools ...
Task<T> RunRestRequest<T> (
RestClient client,
RestRequest request,
XHttpMethod method,
bool supportRefreshingTokens = false
);
#endregion
//
#region Authentication ...
Task<DiscoveryDocumentResponse> RequestDiscoveryDocument ();
Task<XTokenResponse> RequestScopeAccessToken (string scope);
Task<TokenIntrospectionResponse> Introspection (XTokenResponse model);
Task<XLoginResponse> Login (XLoginRequest model);
Task Logout (XTokenResponse model);
Task<XTokenResponse> Authenticate (XLoginRequest model);
Task<XTokenResponse> RefreshTokens (XTokenResponse model);
Task ChangePassword (
XTokenResponse tokens,
XActionRequest model
);
#endregion
//
#region Profile ...
Task<IEnumerable<string>> GetUserNames (
XTokenResponse tokens,
string userIds
);
Task<IEnumerable<XUserNameIdResponse>> GetUserNameIds (
XTokenResponse tokens,
XUserNameIdRequest model
);
Task<XUserProfileDto> GetUserProfile (
XTokenResponse tokens,
string userSelectByParam
);
Task<XQueryResult<XUserProfileDto>> QueryUsers (
XTokenResponse tokens,
XQuery query
);
Task<XQueryResult<XUserProfileDto>> QueryInRoleUsers (
XTokenResponse tokens,
string role,
XQuery query,
bool forceRole = false
);
Task<XQueryResult<XProfileImage>> QueryAvatars (
XTokenResponse tokens,
string userSelectByParam,
XQuery query
);
Task<XUserProfileDto> ProfileUpdateAsync (
XTokenResponse tokens,
string userSelectByParam,
XProfileUpdateRequest model
);
Task<XUserProfileDto> FullProfileUpdateAsync (
XTokenResponse tokens,
string userSelectByParam,
XProfileUpdateRequest request
);
Task<XUserProfileDto> AddAvatar (
XTokenResponse tokens,
IFormFile file
);
Task<XUserProfileDto> AddAvatars (
XTokenResponse tokens,
IFormFileCollection files
);
Task<XUserProfileDto> SetAvatar (
XTokenResponse tokens,
int avatarId
);
Task<XUserProfileDto> RemoveAvatars (
XTokenResponse tokens,
string avatarIds
);
#endregion
//
#region Registration ...
Task<bool> CanRegister (string userSelectByParam);
Task<XActionResponse> InviteUser (
XTokenResponse tokens,
XActionRequest model
);
Task<XActionResponse> RequestRegistration (
XActionRequest model
);
Task<XActionResponse> AddAccountInfo (
XActionRequest model
);
Task<XActionResponse> AttachProfileImage (
string actionToken,
IFormFile file
);
Task FinishRegistration (XActionRequest model);
Task<bool> IsConfirmedEmail (
XTokenResponse tokens,
string userSelectByParam
);
Task<bool> IsConfirmedMobile (
XTokenResponse tokens,
string userSelectByParam
);
Task RequestConfirmRegistration (XActionRequest model);
Task ConfirmRegistration (
XActionRequest model
);
Task<XActionResponse> RequestConfirmMobile (XActionRequest model);
Task<XActionResponse> ConfirmMobileNumber (XActionRequest model);
Task<XActionResponse> RequestConfirmEmail (XActionRequest model);
Task<XActionResponse> ConfirmEmailAddress (XActionRequest model);
Task<XActionResponse> RequestResetPassword (XActionRequest model);
Task ResetPassword (XActionRequest model);
#endregion
//
#region Friendship ...
Task<XFriendshipFollowing> Follow (
XTokenResponse tokens,
string destUser
);
Task<bool> Cancel (
XTokenResponse tokens,
string destUser
);
Task UnFollowFollower (
XTokenResponse tokens,
string destUser
);
Task UnFollowFollowing (
XTokenResponse tokens,
string destUser
);
Task<XFriendshipFollowing> Block (
XTokenResponse tokens,
string destUser
);
Task<XFriendshipFollowing> UnBlock (
XTokenResponse tokens,
string destUser
);
Task<XFriendshipFollower> AcceptRequest (
XTokenResponse tokens,
string destUser
);
Task<XFriendshipFollower> RejectRequest (
XTokenResponse tokens,
string destUser
);
Task<bool> IsFollower (
XTokenResponse tokens,
string destUser
);
Task<XFriendshipFollower> GetFollower (
XTokenResponse tokens,
string destUser
);
Task<XFriendshipState> GetFollowerState (
XTokenResponse tokens,
string destUser
);
Task<IEnumerable<XFriendshipFollower>> GetFollowers (XTokenResponse tokens);
Task<IEnumerable<XFriendshipFollower>> GetAllFollowers (XTokenResponse tokens);
Task<bool> IsFollowing (
XTokenResponse tokens,
string destUser
);
Task<XFriendshipFollowing> GetFollowing (
XTokenResponse tokens,
string destUser
);
Task<XFriendshipState> GetFollowingState (
XTokenResponse tokens,
string destUser
);
Task<IEnumerable<XFriendshipFollowing>> GetFollowings (XTokenResponse tokens);
Task<IEnumerable<XFriendshipFollowing>> GetAllFollowings (XTokenResponse tokens);
Task<IEnumerable<string>> GetFollowingList (XTokenResponse tokens);
Task<IEnumerable<string>> GetFollowersList (XTokenResponse tokens);
Task<XFriendshipInfoDto> GetFriendshipInfo (
XTokenResponse tokens,
string destUser
);
#endregion
//
#region Admin ...
Task<IEnumerable<string>> Ban (
XTokenResponse tokens,
XUserNameIdRequest model
);
Task<IEnumerable<string>> UnBan (
XTokenResponse tokens,
XUserNameIdRequest model
);
Task<bool> IsBanned (
XTokenResponse tokens,
string userSelectByParam
);
#endregion
}
}