/* * API du serveur de l'application de digitalisation des EP * * API qui sra utilisée afin de faire communiquer le client et le serveur ainsi que le serveur et la boîte noire. * * OpenAPI spec version: 1.3.6 * * Generated by: https://github.com/swagger-api/swagger-codegen.git */ using System; using System.Collections.Generic; using Microsoft.AspNetCore.Mvc; using Swashbuckle.AspNetCore.Annotations; using Swashbuckle.AspNetCore.SwaggerGen; using Newtonsoft.Json; using System.ComponentModel.DataAnnotations; using IO.Swagger.Attributes; using IO.Swagger.Security; using Microsoft.AspNetCore.Authorization; using IO.Swagger.DTO; using EPAServeur.IServices; using Microsoft.Extensions.Logging; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using EPAServeur.Exceptions; namespace IO.Swagger.Controllers { /// /// /// [ApiController] public class DemandesDelegationApiController : ControllerBase { /// /// Services des demandes de délégation /// private readonly IDemandeDelegationService demandeDelegationService; /// /// Logger du contrôleur /// private readonly ILogger logger; public DemandesDelegationApiController(IDemandeDelegationService _demandeDelegationService, ILogger _logger) { demandeDelegationService = _demandeDelegationService; logger = _logger; } /// /// /// /// Récupérer la liste des demandes de délégation d’un référent. /// Id d'un référent /// OK /// L'utilisateur souhaitant accéder à la ressource n'est pas authentifié /// L’utilisateur souhaitant accéder à la ressource n’a pas les droits d’accès suffisants /// La ressource n'a pas été trouvée /// Une erreur est survenue sur le serveur [HttpGet] [Route("/api/demandesdelegation/referent/{idReferent}")] [Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] [ValidateModelState] [SwaggerOperation("GetDemandesDelegationReferent")] [SwaggerResponse(statusCode: 200, type: typeof(List), description: "OK")] [SwaggerResponse(statusCode: 401, type: typeof(ErreurDTO), description: "L'utilisateur souhaitant accéder à la ressource n'est pas authentifié")] [SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "L’utilisateur souhaitant accéder à la ressource n’a pas les droits d’accès suffisants")] [SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "La ressource n'a pas été trouvée")] [SwaggerResponse(statusCode: 500, type: typeof(ErreurDTO), description: "Une erreur est survenue sur le serveur")] public virtual async Task GetDemandesDelegationReferent([FromRoute][Required]Guid? idReferent) { IEnumerable demandeDelegations; try { demandeDelegations = await demandeDelegationService.RecupererDemandesDelegation(idReferent); } catch (ReferentNotFoundException e) { ErreurDTO erreur = new ErreurDTO() { Code = 404, Message = e.Message, }; return NotFound(erreur); } catch (DbUpdateException e) { logger.LogError(e.Message); ErreurDTO erreur = new ErreurDTO { Code = 500, Message = "Une erreur est survenue sur le serveur", }; return StatusCode(erreur.Code.Value, erreur); } catch (Exception e) { logger.LogError(e.Message); ErreurDTO erreur = new ErreurDTO { Code = 500, Message = "Une erreur inconnue est survenue sur le serveur", }; return StatusCode(erreur.Code.Value, erreur); } return Ok(demandeDelegations); //TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... // return StatusCode(200, default(List)); //TODO: Uncomment the next line to return response 401 or use other options such as return this.NotFound(), return this.BadRequest(..), ... // return StatusCode(401, default(ErreurDTO)); //TODO: Uncomment the next line to return response 403 or use other options such as return this.NotFound(), return this.BadRequest(..), ... // return StatusCode(403, default(ErreurDTO)); //TODO: Uncomment the next line to return response 404 or use other options such as return this.NotFound(), return this.BadRequest(..), ... // return StatusCode(404, default(ErreurDTO)); //TODO: Uncomment the next line to return response 500 or use other options such as return this.NotFound(), return this.BadRequest(..), ... // return StatusCode(500, default(ErreurDTO)); } /// /// /// /// Répondre à une demande de délégation. /// /// Id d'une demande delegation /// Demande de délégation mise à jour avec succès /// L'utilisateur souhaitant accéder à la ressource n'est pas authentifié /// L’utilisateur souhaitant accéder à la ressource n’a pas les droits d’accès suffisants /// La ressource n'a pas été trouvée /// L’opération ne peut pas être effectuée car certaines données sont manquantes /// Une erreur est survenue sur le serveur [HttpPut] [Route("/api/demandesdelegation/{idDemandeDelegation}")] //[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)] [ValidateModelState] [SwaggerOperation("UpdateDemandeDelegation")] [SwaggerResponse(statusCode: 200, type: typeof(DemandeDelegationDTO), description: "Demande de délégation mise à jour avec succès")] [SwaggerResponse(statusCode: 401, type: typeof(ErreurDTO), description: "L'utilisateur souhaitant accéder à la ressource n'est pas authentifié")] [SwaggerResponse(statusCode: 403, type: typeof(ErreurDTO), description: "L’utilisateur souhaitant accéder à la ressource n’a pas les droits d’accès suffisants")] [SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "La ressource n'a pas été trouvée")] [SwaggerResponse(statusCode: 415, type: typeof(ErreurDTO), description: "L’opération ne peut pas être effectuée car certaines données sont manquantes")] [SwaggerResponse(statusCode: 500, type: typeof(ErreurDTO), description: "Une erreur est survenue sur le serveur")] public virtual async Task UpdateDemandeDelegation([FromBody]DemandeDelegationDTO body, [FromRoute][Required]long? idDemandeDelegation) { try { body = await demandeDelegationService.UpdateDemandeDelegation(idDemandeDelegation, body); } catch (DemandeDelegationIncompatibleException e) { ErreurDTO erreur = new ErreurDTO() { Code = 415, Message = e.Message, }; return StatusCode(erreur.Code.Value, erreur); } catch (DemandeDelegationInvalidException e) { ErreurDTO erreur = new ErreurDTO() { Code = 415, Message = e.Message, }; return StatusCode(erreur.Code.Value, erreur); } catch (DemandeDelegationNotFoundException e) { ErreurDTO erreur = new ErreurDTO() { Code = 415, Message = e.Message, }; return StatusCode(erreur.Code.Value, erreur); } catch (DbUpdateException e) { logger.LogError(e.Message); ErreurDTO erreur = new ErreurDTO { Code = 500, Message = "Une erreur est survenue sur le serveur", }; return StatusCode(erreur.Code.Value, erreur); } catch (Exception e) { logger.LogError(e.Message); ErreurDTO erreur = new ErreurDTO { Code = 500, Message = "Une erreur inconnue est survenue sur le serveur", }; return StatusCode(erreur.Code.Value, erreur); } return Ok(body); //TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... // return StatusCode(200, default(DemandeDelegationDTO)); //TODO: Uncomment the next line to return response 401 or use other options such as return this.NotFound(), return this.BadRequest(..), ... // return StatusCode(401, default(ErreurDTO)); //TODO: Uncomment the next line to return response 403 or use other options such as return this.NotFound(), return this.BadRequest(..), ... // return StatusCode(403, default(ErreurDTO)); //TODO: Uncomment the next line to return response 404 or use other options such as return this.NotFound(), return this.BadRequest(..), ... // return StatusCode(404, default(ErreurDTO)); //TODO: Uncomment the next line to return response 415 or use other options such as return this.NotFound(), return this.BadRequest(..), ... // return StatusCode(415, default(ErreurDTO)); //TODO: Uncomment the next line to return response 500 or use other options such as return this.NotFound(), return this.BadRequest(..), ... // return StatusCode(500, default(ErreurDTO)); } } }