Backend login and register
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
using API.Extension;
|
||||
using Application.Interfaces;
|
||||
using Application.Models;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace API.Controllers;
|
||||
|
||||
public class UserController(IUserService userService) : BaseApiController
|
||||
{
|
||||
[Authorize(Roles = "SuperAdmin, Admin")]
|
||||
[HttpGet]
|
||||
public async Task<IResult> GetAllUsers(
|
||||
[FromQuery] int pageNumber = 1,
|
||||
[FromQuery] int pageSize = 10)
|
||||
{
|
||||
var users = await userService.GetAsync(pageNumber, pageSize);
|
||||
return users.ToHttpResponse();
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
[HttpPut]
|
||||
public async Task<IResult> UpdateUser([FromBody] UserUpdateRequest userUpdateRequest)
|
||||
{
|
||||
var result = await userService.UpdateAsync(userUpdateRequest);
|
||||
return result.ToHttpResponse();
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
[HttpDelete("{id}")]
|
||||
public async Task<IResult> DeleteUser(int id)
|
||||
{
|
||||
var currentUserId = int.Parse(User.FindFirst("UserId")!.Value);
|
||||
var result = await userService.DeleteAsync(id, currentUserId);
|
||||
return result.ToHttpResponse();
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
[HttpGet("{id}")]
|
||||
public async Task<IResult> GetUserById(int id)
|
||||
{
|
||||
var user = await userService.GetUserByIdAsync(id);
|
||||
return user.ToHttpResponse();
|
||||
}
|
||||
|
||||
[Authorize(Roles = "SuperAdmin")]
|
||||
[HttpPost("assign-role")]
|
||||
public async Task<IResult> AssignRole([FromBody] AssingRoleRequest roleRequest)
|
||||
|
||||
{
|
||||
var result = await userService.AssignRoleAsync(roleRequest);
|
||||
return result.ToHttpResponse();
|
||||
}
|
||||
|
||||
[Authorize(Roles = "SuperAdmin")]
|
||||
[HttpDelete("revoke-role")]
|
||||
public async Task<IResult> RevokeRole([FromBody] AssingRoleRequest roleRequest)
|
||||
{
|
||||
var result = await userService.RevokeRoleAsync(roleRequest);
|
||||
return result.ToHttpResponse();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user