using Core.Thalos.BuildingBlocks; using Core.Thalos.External.Clients.Requests; using Microsoft.AspNetCore.Mvc; using Refit; namespace Core.Thalos.External.Clients { public interface IThalosServiceClient { [Get("/v1/User")] Task> GetAllUsersAsync(CancellationToken cancellationToken = default); [Get("/v1/User/" + Routes.Id)] Task GetUserByIdAsync([FromRoute] string _id, CancellationToken cancellationToken = default); [Get("/v1/User/" + Routes.Email)] Task GetUserByEmailAsync([FromRoute] string email, CancellationToken cancellationToken = default); [Get("/v1/User/{email}/ValidateExistence")] Task ValidateUserExistence([FromRoute] string email, CancellationToken cancellationToken = default); [Post("/v1/User/" + Routes.Register)] Task CreateUserAsync([FromBody] UserRequest newUser, [FromRoute] bool sendInvitation, CancellationToken cancellationToken = default); [Put("/v1/User/" + Routes.Id)] Task UpdateUserAsync([FromBody] UserAdapter entity, [FromRoute] string _id, CancellationToken cancellationToken = default); [Delete("/v1/User/" + Routes.Id)] Task DeleteUserAsync([FromRoute] string _id, CancellationToken cancellationToken = default); [Patch("/v1/User/" + Routes.LogIn)] Task LoginUserAsync([FromRoute] string email, CancellationToken cancellationToken = default); [Patch("/v1/User/" + Routes.LogOut)] Task LogoutUserAsync([FromRoute] string email, CancellationToken cancellationToken = default); [Patch("/v1/User/" + Routes.ChangeStatus)] Task ChangeUserStatusAsync([FromRoute] string _id, Blueprint.Mongo.StatusEnum newStatus, CancellationToken cancellationToken = default); [Get("/v1/User/{email}/GetTokenAdapter")] Task GetTokenAdapter([FromRoute] string email, CancellationToken cancellationToken = default); [Get("/v1/Role")] Task> GetAllRolesAsync(CancellationToken cancellationToken = default); [Get("/v1/Role/" + Routes.Id)] Task GetRoleByIdAsync([FromRoute] string _id, CancellationToken cancellationToken = default); [Post("/v1/Role")] Task CreateRoleAsync([FromBody] RoleRequest newRole, CancellationToken cancellationToken = default); [Put("/v1/Role/" + Routes.Id)] Task UpdateRoleAsync([FromBody] RoleAdapter entity, [FromRoute] string _id, CancellationToken cancellationToken = default); [Delete("/v1/Role/" + Routes.Id)] Task DeleteRoleAsync([FromRoute] string _id, CancellationToken cancellationToken = default); [Patch("/v1/Role/" + Routes.ChangeStatus)] Task ChangeRoleStatusAsync([FromRoute] string _id, [FromRoute] Blueprint.Mongo.StatusEnum newStatus, CancellationToken cancellationToken = default); [Post("/v1/Role/" + Routes.AddApplication)] Task AddApplicationToRoleAsync([FromRoute] string RoleId, [FromRoute] ApplicationsEnum application, CancellationToken cancellationToken = default); [Delete("/v1/Role/" + Routes.RemoveApplication)] Task RemoveApplicationToRoleAsync([FromRoute] string RoleId, [FromRoute] ApplicationsEnum application, CancellationToken cancellationToken = default); [Get("/v1/Permission")] Task> GetAllPermissionsAsync(CancellationToken cancellationToken = default); [Post("/v1/Permission/" + Routes.GetPermissionList)] Task> GetAllPermissionsByListAsync([FromBody] string[] request, CancellationToken cancellationToken = default); [Get("/v1/Permission/" + Routes.Id)] Task GetPermissionByIdAsync([FromRoute] string _id, CancellationToken cancellationToken = default); [Post("/v1/Permission")] Task CreatePermissionAsync([FromBody] PermissionRequest newPermission, CancellationToken cancellationToken = default); [Put("/v1/Permission/" + Routes.Id)] Task UpdatePermissionAsync([FromBody] PermissionAdapter entity, [FromRoute] string _id, CancellationToken cancellationToken = default); [Delete("/v1/Permission/" + Routes.Id)] Task DeletePermissionAsync([FromRoute] string _id, CancellationToken cancellationToken = default); [Patch("/v1/Permission/" + Routes.ChangeStatus)] Task ChangeStatusPermissionAsync([FromRoute] string _id, [FromRoute] Blueprint.Mongo.StatusEnum newStatus, CancellationToken cancellationToken = default); [Get("/v1/Module")] Task> GetAllModulesAsync(CancellationToken cancellationToken = default); [Post("/v1/Module/" + Routes.GetModuleList)] Task> GetAllModulesByListAsync([FromBody] string[] request, CancellationToken cancellationToken = default); [Get("/v1/Module/" + Routes.Id)] Task GetModuleByIdAsync([FromRoute] string _id, CancellationToken cancellationToken = default); [Post("/v1/Module")] Task CreateModuleAsync([FromBody] ModuleRequest newModule, CancellationToken cancellationToken = default); [Put("/v1/Module/" + Routes.Id)] Task UpdateModuleAsync([FromBody] ModuleAdapter entity, [FromRoute] string _id, CancellationToken cancellationToken = default); [Delete("/v1/Module/" + Routes.Id)] Task DeleteModuleAsync([FromRoute] string _id, CancellationToken cancellationToken = default); [Patch("/v1/Module/" + Routes.ChangeStatus)] Task ChangeStatusModuleAsync([FromRoute] string _id, [FromRoute] Blueprint.Mongo.StatusEnum newStatus, CancellationToken cancellationToken = default); [Get("/v1/Tenant")] Task> GetAllTenantsAsync(CancellationToken cancellationToken = default); [Get("/v1/Tenant/" + Routes.Id)] Task GetTenantByIdAsync([FromRoute] string _id, CancellationToken cancellationToken = default); [Post("/v1/Tenant")] Task CreateTenantAsync([FromBody] TenantRequest newTenant, CancellationToken cancellationToken = default); [Put("/v1/Tenant/" + Routes.Id)] Task UpdateTenantAsync([FromBody] TenantAdapter entity, [FromRoute] string _id, CancellationToken cancellationToken = default); [Patch("/v1/Tenant/" + Routes.ChangeStatus)] Task ChangeStatusTenantAsync([FromRoute] string _id, [FromRoute] Blueprint.Mongo.StatusEnum newStatus, CancellationToken cancellationToken = default); [Delete("/v1/Tenant/" + Routes.Id)] Task DeleteTenantAsync([FromRoute] string _id, CancellationToken cancellationToken = default); } }