From 105b1d056d6aa60e7a9bb1e1f1f7999fe818555a Mon Sep 17 00:00:00 2001 From: Alejandro Sarmiento Date: Mon, 19 Feb 2024 21:17:49 +0100 Subject: [PATCH] Controllers creados --- .../Controllers/AccountController.cs | 34 +++++++++++++++++++ .../Controllers/StreamerController.cs | 6 +++- .../Controllers/VideoController.cs | 2 ++ 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 CleanArchitecture/CleanArchitecture.API/Controllers/AccountController.cs diff --git a/CleanArchitecture/CleanArchitecture.API/Controllers/AccountController.cs b/CleanArchitecture/CleanArchitecture.API/Controllers/AccountController.cs new file mode 100644 index 0000000..903246f --- /dev/null +++ b/CleanArchitecture/CleanArchitecture.API/Controllers/AccountController.cs @@ -0,0 +1,34 @@ +using CleanArchitecture.Application.Contracts.Identity; +using CleanArchitecture.Application.Models.Identity; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Identity.Data; +using Microsoft.AspNetCore.Mvc; + +namespace CleanArchitecture.API.Controllers +{ + [Route("api/v1/[controller]")] + [ApiController] + public class AccountController : ControllerBase + { + private readonly IAuthService authService; + + public AccountController(IAuthService _authService) + { + authService = _authService; + } + + [HttpPost("login")] + public async Task> Login([FromBody] AuthRequest request) + { + var response = await authService.Login(request); + return Ok(response); + } + + [HttpPost("register")] + public async Task> Register([FromBody] RegistrationRequest request) + { + var response = await authService.Register(request); + return Ok(response); + } + } +} diff --git a/CleanArchitecture/CleanArchitecture.API/Controllers/StreamerController.cs b/CleanArchitecture/CleanArchitecture.API/Controllers/StreamerController.cs index e385110..1128e83 100644 --- a/CleanArchitecture/CleanArchitecture.API/Controllers/StreamerController.cs +++ b/CleanArchitecture/CleanArchitecture.API/Controllers/StreamerController.cs @@ -2,6 +2,7 @@ using CleanArchitecture.Application.Features.Streamers.Commands.DeleteStreamer; using CleanArchitecture.Application.Features.Streamers.Commands.UpdateStreamer; using MediatR; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System.Net; @@ -19,14 +20,16 @@ namespace CleanArchitecture.API.Controllers } [HttpPost(Name = "CreateStreamer")] + [Authorize(Roles = "Administrator")] [ProducesResponseType(typeof(int), (int)HttpStatusCode.OK)] public async Task> CreateStreamer([FromBody] CreateStreamerCommand command) { var response = await mediator.Send(command); - return Ok(response); + return Ok(new { StreamerId = response }); } [HttpPut(Name = "UpdateStreamer")] + [Authorize(Roles = "Administrator")] [ProducesResponseType((int)HttpStatusCode.NoContent)] [ProducesResponseType((int)HttpStatusCode.NotFound)] [ProducesDefaultResponseType] @@ -37,6 +40,7 @@ namespace CleanArchitecture.API.Controllers } [HttpDelete("{id}", Name = "DeleteStreamer")] + [Authorize(Roles = "Administrator")] [ProducesResponseType((int)HttpStatusCode.NoContent)] [ProducesResponseType((int)HttpStatusCode.NotFound)] [ProducesDefaultResponseType] diff --git a/CleanArchitecture/CleanArchitecture.API/Controllers/VideoController.cs b/CleanArchitecture/CleanArchitecture.API/Controllers/VideoController.cs index 3d4e48e..c5a464b 100644 --- a/CleanArchitecture/CleanArchitecture.API/Controllers/VideoController.cs +++ b/CleanArchitecture/CleanArchitecture.API/Controllers/VideoController.cs @@ -1,5 +1,6 @@ using CleanArchitecture.Application.Features.Videos.Queries.GetVideosList; using MediatR; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System.Net; @@ -18,6 +19,7 @@ namespace CleanArchitecture.API.Controllers } [HttpGet("{username}", Name = "GetVideo")] + [Authorize] [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)] public async Task>> GetVideosByUserName(string username) {