diff --git a/Controllers/ProjectsController.cs b/Controllers/ProjectsController.cs index bc03632..3a8476d 100644 --- a/Controllers/ProjectsController.cs +++ b/Controllers/ProjectsController.cs @@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore; using TicketManager.Data; using TicketManager.Models; using TicketManager.DTO; - +using System; namespace TicketManager.Controllers { @@ -263,11 +263,13 @@ namespace TicketManager.Controllers [ProducesResponseType(StatusCodes.Status204NoContent)] [ProducesResponseType(StatusCodes.Status404NotFound)] [HttpPatch("{id}/members")] - public async Task> SetProjectMembers(int id, List projectMembers) - // [SAFETY] Use RequestDTO to limits posibilities. + public async Task> SetProjectMembers( + [FromRoute] int id, + [FromBody] Guid[] membersId) { Project project = await _context.Projects .Include(p => p.Assignments) + .ThenInclude(p => p.User) .FirstOrDefaultAsync(p => p.Id == id); if (project == null) @@ -275,6 +277,10 @@ namespace TicketManager.Controllers return NotFound(); } + var projectMembers = await _context.AppUsers + .Where(u => membersId.Contains(u.Id)) + .ToListAsync(); + project.SetMembers(projectMembers); _context.Entry(project).State = EntityState.Modified; try @@ -282,10 +288,10 @@ namespace TicketManager.Controllers await _context.SaveChangesAsync(); } - catch (DbUpdateException /* ex */) + catch (DbUpdateException ex) { //Log the error (uncomment ex variable name and write a log.) - ModelState.AddModelError("", "Unable to save changes. " + + ModelState.AddModelError(ex.ToString(), "Unable to save changes. " + "Try again, and if the problem persists, " + "see your system administrator."); } diff --git a/Models/Interfaces/ITask.cs b/Models/Interfaces/ITask.cs index dccc923..eba4cf7 100644 --- a/Models/Interfaces/ITask.cs +++ b/Models/Interfaces/ITask.cs @@ -9,7 +9,7 @@ namespace TicketManager.Models int Id { get; set; } string Title { get; set; } string Description { get; set; } - DateTime CreatedAt { get; } + DateTime CreationDate { get; } DateTime PlannedEnding { get; set; } List Activities { get; set; } diff --git a/Scripts/apiQueries.sh b/Scripts/apiQueries.sh index 7802a36..81bc2e3 100755 --- a/Scripts/apiQueries.sh +++ b/Scripts/apiQueries.sh @@ -4,7 +4,7 @@ FILE=Scripts/response.json rm $FILE date >> $FILE -URL=$ROOT/tickets/ +URL=$ROOT/projects/1/members cat $URL >> $FILE curl --insecure $URL | json_pp >> $FILE \ No newline at end of file