Adding user CRUD methods and controller + automapper

This commit is contained in:
2025-03-13 00:19:29 +01:00
parent 0b354988fd
commit 61b9c732bc
21 changed files with 639 additions and 90 deletions

View File

@@ -23,9 +23,9 @@ namespace BasicDotnetTemplate.MainProject.Controllers
[HttpPost("authenticate")]
[ProducesResponseType<AuthenticateResponse>(StatusCodes.Status200OK)]
[ProducesResponseType<BaseResponse>(StatusCodes.Status404NotFound)]
[ProducesResponseType<BaseResponse>(StatusCodes.Status400BadRequest)]
[ProducesResponseType<BaseResponse>(StatusCodes.Status500InternalServerError)]
[ProducesResponseType<BaseResponse<object>>(StatusCodes.Status404NotFound)]
[ProducesResponseType<BaseResponse<object>>(StatusCodes.Status400BadRequest)]
[ProducesResponseType<BaseResponse<object>>(StatusCodes.Status500InternalServerError)]
public async Task<IActionResult> AuthenticateAsync([FromBody] AuthenticateRequest request)
{
try
@@ -34,7 +34,7 @@ namespace BasicDotnetTemplate.MainProject.Controllers
{
return BadRequest("Request is not well formed");
}
if (
request == null ||
request.Data == null ||

View File

@@ -20,9 +20,9 @@ namespace BasicDotnetTemplate.MainProject.Controllers
}
#nullable enable
private static BaseResponse CreateResponse(HttpStatusCode status, string message, object? data = null)
private static BaseResponse<T> CreateResponse<T>(HttpStatusCode status, string message, T? data)
{
return new BaseResponse((int)status, message, data);
return new BaseResponse<T>((int)status, message, data);
}
protected new IActionResult Created(string message, object? data = null)
@@ -58,7 +58,7 @@ namespace BasicDotnetTemplate.MainProject.Controllers
protected IActionResult InternalServerError(string message)
{
message = String.IsNullOrEmpty(message) ? "Internal server error" : message;
return StatusCode((int)HttpStatusCode.InternalServerError, CreateResponse(HttpStatusCode.InternalServerError, message));
return StatusCode((int)HttpStatusCode.InternalServerError, CreateResponse(HttpStatusCode.InternalServerError, message, new object()));
}
#nullable disable

View File

@@ -0,0 +1,62 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using BasicDotnetTemplate.MainProject.Core.Attributes;
using BasicDotnetTemplate.MainProject.Services;
//using BasicDotnetTemplate.MainProject.Models.Api.Request.User;
using BasicDotnetTemplate.MainProject.Models.Api.Response;
using BasicDotnetTemplate.MainProject.Models.Api.Response.User;
namespace BasicDotnetTemplate.MainProject.Controllers
{
[Route("[controller]")]
public class UserController : BaseController
{
private readonly IUserService _userService;
public UserController(
IConfiguration configuration,
IUserService userService
) : base(configuration)
{
this._userService = userService;
}
[HttpGet("get/{guid}")]
[ProducesResponseType<GetUserResponse>(StatusCodes.Status200OK)]
[ProducesResponseType<BaseResponse<object>>(StatusCodes.Status404NotFound)]
[ProducesResponseType<BaseResponse<object>>(StatusCodes.Status400BadRequest)]
[ProducesResponseType<BaseResponse<object>>(StatusCodes.Status500InternalServerError)]
public async Task<IActionResult> GetUserByGuidAsync(string guid)
{
try
{
if (!ModelState.IsValid)
{
return BadRequest("Request is not well formed");
}
if (String.IsNullOrEmpty(guid))
{
return BadRequest("Request is not well formed");
}
var data = await this._userService.GetUserByGuidAsync(guid);
if (data == null || String.IsNullOrEmpty(data.Guid))
{
return NotFound();
}
return Success(String.Empty, data);
}
catch (Exception exception)
{
var message = "Something went wrong";
if (!String.IsNullOrEmpty(exception.Message))
{
message += $". {exception.Message}";
}
return InternalServerError(message);
}
}
}
}