@ -23,6 +23,7 @@ using Microsoft.Extensions.Logging;
using IO.Swagger.ClientCollaborateur ;
using IO.Swagger.ClientCollaborateur ;
using EPAServeur.Exceptions ;
using EPAServeur.Exceptions ;
using Microsoft.EntityFrameworkCore ;
using Microsoft.EntityFrameworkCore ;
using System.Threading.Tasks ;
namespace IO.Swagger.Controllers
namespace IO.Swagger.Controllers
{
{
@ -70,11 +71,11 @@ 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: 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 AddNote ( [ FromBody ] DetailsNoteDTO body )
public virtual async Task < IActionResult > AddNote ( [ FromBody ] DetailsNoteDTO body )
{
{
try
try
{
{
body = noteService . AjouterNote ( body ) ;
body = await noteService . AjouterNoteAsync ( body ) ;
}
}
catch ( ApiException e )
catch ( ApiException e )
{
{
@ -183,7 +184,7 @@ namespace IO.Swagger.Controllers
{
{
try
try
{
{
noteService . SupprimerNote ( idNote ) ;
noteService . SupprimerNoteAsync ( idNote ) ;
}
}
catch ( DbUpdateException e )
catch ( DbUpdateException e )
{
{
@ -220,8 +221,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));
throw new NotImplementedException ( ) ;
}
}
/// <summary>
/// <summary>
@ -236,7 +235,7 @@ namespace IO.Swagger.Controllers
/// <response code="500">Une erreur est survenue sur le serveur</response>
/// <response code="500">Une erreur est survenue sur le serveur</response>
[HttpGet]
[HttpGet]
[Route("/api/notes/{idNote}")]
[Route("/api/notes/{idNote}")]
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
// [Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
[ValidateModelState]
[ValidateModelState]
[SwaggerOperation("GetNoteById")]
[SwaggerOperation("GetNoteById")]
[SwaggerResponse(statusCode: 200, type: typeof(DetailsNoteDTO), description: "OK")]
[SwaggerResponse(statusCode: 200, type: typeof(DetailsNoteDTO), description: "OK")]
@ -244,8 +243,51 @@ 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 GetNoteById ( [ FromRoute ] [ Required ] long? idNote )
public virtual async Task < IActionResult > GetNoteById ( [ FromRoute ] [ Required ] long? idNote )
{
DetailsNoteDTO note ;
try
{
note = await noteService . GetNoteByIdAsync ( idNote ) ;
}
catch ( ReferentNotFoundException e )
{
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 4 0 4 ,
Message = e . Message ,
} ;
return NotFound ( erreur ) ;
}
catch ( CollaborateurNotFoundException e )
{
ErreurDTO erreur = new ErreurDTO ( )
{
{
Code = 4 0 4 ,
Message = e . Message ,
} ;
return NotFound ( erreur ) ;
}
catch ( NoteNotFoundException e )
{
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 4 0 4 ,
Message = e . Message ,
} ;
return NotFound ( erreur ) ;
}
catch ( Exception e )
{
logger . LogError ( e . Message ) ;
ErreurDTO erreur = new ErreurDTO ( )
{
Code = 5 0 0 ,
Message = "Une erreur inconnue est survenue" ,
} ;
return StatusCode ( 5 0 0 , erreur ) ;
}
return Ok ( note ) ;
//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(DetailsNoteDTO));
// return StatusCode(200, default(DetailsNoteDTO));
@ -260,13 +302,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 \"idAuteur\" : \"046b6c7f-0b8a-43b9-b35d-6489e6daee91\",\n \"dateCreation\" : \"2000-01-23T04:56:07.000+00:00\",\n \"dateMiseAjour\" : \"2000-01-23T04:56:07.000+00:00\",\n \"titre\" : \"titre\",\n \"texte\" : \"texte\",\n \"id\" : 0,\n \"collaborateur\" : {\n \"businessUnit\" : {\n \"agence\" : {\n \"bu\" : [ null, null ],\n \"id\" : 6,\n \"nom\" : \"nom\"\n },\n \"id\" : 0,\n \"nom\" : \"nom\"\n },\n \"mailApside\" : \"\",\n \"dateArrivee\" : \"2000-01-23T04:56:07.000+00:00\",\n \"id\" : \"046b6c7f-0b8a-43b9-b35d-6489e6daee91\",\n \"dateDepart\" : \"2000-01-23T04:56:07.000+00:00\",\n \"nom\" : \"nom\",\n \"prenom\" : \"prenom\"\n }\n}" ;
var example = exampleJson ! = null
? JsonConvert . DeserializeObject < DetailsNoteDTO > ( exampleJson )
: default ( DetailsNoteDTO ) ; //TODO: Change the data returned
return new ObjectResult ( example ) ;
}
}
/// <summary>
/// <summary>
@ -285,7 +320,7 @@ namespace IO.Swagger.Controllers
/// <response code="404">La ressource n'a pas été trouvée</response>
/// <response code="404">La ressource n'a pas été trouvée</response>
/// <response code="500">Une erreur est survenue sur le serveur</response>
/// <response code="500">Une erreur est survenue sur le serveur</response>
[HttpGet]
[HttpGet]
[Route("/api/notes/{idAuteur}")]
[Route("/api/notes/auteur/ {idAuteur}")]
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
[Authorize(AuthenticationSchemes = BearerAuthenticationHandler.SchemeName)]
[ValidateModelState]
[ValidateModelState]
[SwaggerOperation("GetNotesAuteur")]
[SwaggerOperation("GetNotesAuteur")]