public async Task <IActionResult> Update( [FromRoute] int trainingId, [FromBody] UpdateTrainingRequest request ) { var training = await _trainingService.GetTrainingByIdAsync(trainingId); if (training == null) { return(NotFound()); } if (training.IsPublic) { return(StatusCode(403, new ErrorResponse("Nie możesz edytować publicznego treningu"))); } var updatedExercise = _mapper.Map(request, training); var updated = await _trainingService.UpdateTrainingAsync(updatedExercise); if (!updated) { return(BadRequest(new ErrorResponse("Wystąpił błąd podczas edytowania"))); } return(Ok()); }
public async Task Put__Admin_Or_Moderator_Can_Update_Public_Training() { string[] users = { "*****@*****.**", "*****@*****.**" }; int i = 1; foreach (var user in users) { await LogInAs(user); Training training = await CreatePublicTraining(); UpdateTrainingRequest request = Factory.Training.UpdateTrainingRequest(); string updateEndpoint = ApiRoutes.Training.UpdatePublic.Replace("{trainingId}", training.Id.ToString()); var response = await Client.PutAsJsonAsync(updateEndpoint, request); response.StatusCode.Should().Be(HttpStatusCode.OK); var updatedTraining = await Context.Training .AsNoTracking().FirstOrDefaultAsync(x => x.Id == training.Id); updatedTraining.Name.Should().Be(request.Name); updatedTraining.Description.Should().Be(request.Description); int trainingCount = await Context.Training.AsNoTracking().CountAsync(); trainingCount.Should().Be(i); i++; } }
public async Task Put__User_Can_Update_His_Private_Training() { AuthenticatedUser user = await LogInAs("*****@*****.**"); Training training = await CreatePrivateTraining(user.Id); UpdateTrainingRequest request = Factory.Training.UpdateTrainingRequest(); string updateEndpoint = ApiRoutes.Training.Update.Replace("{trainingId}", training.Id.ToString()); var response = await Client.PutAsJsonAsync(updateEndpoint, request); response.StatusCode.Should().Be(HttpStatusCode.OK); var updatedTraining = await Context.Training .AsNoTracking().FirstOrDefaultAsync(x => x.Id == training.Id); updatedTraining.Name.Should().Be(request.Name); updatedTraining.Description.Should().Be(request.Description); int trainingCount = await Context.Training.AsNoTracking().CountAsync(); trainingCount.Should().Be(1); int userTrainingCount = await Context.UserTraining.AsNoTracking().CountAsync(); userTrainingCount.Should().Be(1); }
public async Task <IActionResult> UpdateTraining([FromBody] UpdateTrainingRequest request) { var command = new UpdateTrainingCommand( id: request.Id, runnerId: request.RunnerId, timeToDo: request.TimeToDo, details: request.Details, comments: request.Comments ); await commandSender.SendAsync(command); return(Ok()); }
public async Task Put__User_Cant_Update_Other_User_Private_Training() { AuthenticatedUser user = await LogInAs("*****@*****.**"); Training training = await CreatePrivateTraining(user.Id); AuthenticatedUser admin = await LogInAs("*****@*****.**"); UpdateTrainingRequest request = Factory.Training.UpdateTrainingRequest(); string updateEndpoint = ApiRoutes.Training.Update.Replace("{trainingId}", training.Id.ToString()); var response = await Client.PutAsJsonAsync(updateEndpoint, request); response.StatusCode.Should().Be(HttpStatusCode.NotFound); }
public async Task <IActionResult> Update([FromBody] UpdateTrainingRequest request, CancellationToken cancellationToken = default) { return(Ok(await Mediator.Send(request, cancellationToken))); }