@ -18,6 +18,11 @@ using IO.Swagger.Attributes;
using IO.Swagger.Security ;
using IO.Swagger.Security ;
using Microsoft.AspNetCore.Authorization ;
using Microsoft.AspNetCore.Authorization ;
using IO.Swagger.DTO ;
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
namespace IO.Swagger.Controllers
{
{
@ -26,7 +31,24 @@ namespace IO.Swagger.Controllers
/// </summary>
/// </summary>
[ApiController]
[ApiController]
public class DemandesDelegationApiController : ControllerBase
public class DemandesDelegationApiController : ControllerBase
{
{
/// <summary>
/// Services des demandes de délégation
/// </summary>
private readonly IDemandeDelegationService demandeDelegationService ;
/// <summary>
/// Logger du contrôleur
/// </summary>
private readonly ILogger < DemandesDelegationApiController > logger ;
public DemandesDelegationApiController ( IDemandeDelegationService _d emandeDelegationService , ILogger < DemandesDelegationApiController > _l ogger )
{
demandeDelegationService = _d emandeDelegationService ;
logger = _l ogger ;
}
/// <summary>
/// <summary>
///
///
/// </summary>
/// </summary>
@ -47,8 +69,45 @@ namespace IO.Swagger.Controllers
[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: 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: 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")]
[SwaggerResponse(statusCode: 500, type: typeof(ErreurDTO), description: "Une erreur est survenue sur le serveur")]
public virtual IActionResult GetDemandesDelegationReferent ( [ FromRoute ] [ Required ] Guid ? idReferent )
public virtual async Task < IActionResult > GetDemandesDelegationReferent ( [ FromRoute ] [ Required ] Guid ? idReferent )
{
{
IEnumerable < DemandeDelegationDTO > demandeDelegations ;
try
{
demandeDelegations = await demandeDelegationService . RecupererDemandesDelegation ( idReferent ) ;
}
catch ( ReferentNotFoundException e )
{
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 4 0 4 ,
Message = e . Message ,
} ;
return NotFound ( erreur ) ;
}
catch ( DbUpdateException e )
{
logger . LogError ( e . Message ) ;
ErreurDTO erreur = new ErreurDTO
{
Code = 5 0 0 ,
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 = 5 0 0 ,
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(..), ...
//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<DemandeDelegationDTO>));
// return StatusCode(200, default(List<DemandeDelegationDTO>));
@ -63,13 +122,6 @@ namespace IO.Swagger.Controllers
//TODO: Uncomment the next line to return response 500 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
//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));
// return StatusCode(500, default(ErreurDTO));
string exampleJson = null ;
exampleJson = "[ {\n \"raisonDemande\" : \"raisonDemande\",\n \"raisonRefus\" : \"raisonRefus\",\n \"dateReponse\" : \"2000-01-23T04:56:07.000+00:00\",\n \"id\" : 6,\n \"dateDemande\" : \"2000-01-23T04:56:07.000+00:00\"\n}, {\n \"raisonDemande\" : \"raisonDemande\",\n \"raisonRefus\" : \"raisonRefus\",\n \"dateReponse\" : \"2000-01-23T04:56:07.000+00:00\",\n \"id\" : 6,\n \"dateDemande\" : \"2000-01-23T04:56:07.000+00:00\"\n} ]" ;
var example = exampleJson ! = null
? JsonConvert . DeserializeObject < List < DemandeDelegationDTO > > ( exampleJson )
: default ( List < DemandeDelegationDTO > ) ; //TODO: Change the data returned
return new ObjectResult ( example ) ;
}
}
/// <summary>
/// <summary>
@ -95,8 +147,60 @@ namespace IO.Swagger.Controllers
[SwaggerResponse(statusCode: 404, type: typeof(ErreurDTO), description: "La ressource n'a pas été trouvée")]
[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: 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")]
[SwaggerResponse(statusCode: 500, type: typeof(ErreurDTO), description: "Une erreur est survenue sur le serveur")]
public virtual IActionResult UpdateDemandeDelegation ( [ FromBody ] DemandeDelegationDTO body , [ FromRoute ] [ Required ] long? idDemandeDelegation )
public virtual async Task < IActionResult > UpdateDemandeDelegation ( [ FromBody ] DemandeDelegationDTO body , [ FromRoute ] [ Required ] long? idDemandeDelegation )
{
{
try
{
body = await demandeDelegationService . UpdateDemandeDelegation ( idDemandeDelegation , body ) ;
}
catch ( DemandeDelegationIncompatibleException e )
{
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 4 1 5 ,
Message = e . Message ,
} ;
return StatusCode ( erreur . Code . Value , erreur ) ;
}
catch ( DemandeDelegationInvalidException e )
{
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 4 1 5 ,
Message = e . Message ,
} ;
return StatusCode ( erreur . Code . Value , erreur ) ;
}
catch ( DemandeDelegationNotFoundException e )
{
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 4 1 5 ,
Message = e . Message ,
} ;
return StatusCode ( erreur . Code . Value , erreur ) ;
}
catch ( DbUpdateException e )
{
logger . LogError ( e . Message ) ;
ErreurDTO erreur = new ErreurDTO
{
Code = 5 0 0 ,
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 = 5 0 0 ,
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(..), ...
//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));
// return StatusCode(200, default(DemandeDelegationDTO));
@ -114,13 +218,6 @@ namespace IO.Swagger.Controllers
//TODO: Uncomment the next line to return response 500 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
//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));
// return StatusCode(500, default(ErreurDTO));
string exampleJson = null ;
exampleJson = "{\n \"raisonDemande\" : \"raisonDemande\",\n \"raisonRefus\" : \"raisonRefus\",\n \"dateReponse\" : \"2000-01-23T04:56:07.000+00:00\",\n \"id\" : 6,\n \"dateDemande\" : \"2000-01-23T04:56:07.000+00:00\"\n}" ;
var example = exampleJson ! = null
? JsonConvert . DeserializeObject < DemandeDelegationDTO > ( exampleJson )
: default ( DemandeDelegationDTO ) ; //TODO: Change the data returned
return new ObjectResult ( example ) ;
}
}
}
}
}
}