namespace IOL.GreatOffice.Api.Endpoints.V1.Labels; /// public class UpdateLabelEndpoint : RouteBaseSync.WithRequest.WithActionResult { private readonly AppDbContext _context; /// public UpdateLabelEndpoint(AppDbContext context) { _context = context; } /// /// Update a time entry label. /// /// /// [ApiVersion(ApiSpecV1.VERSION_STRING)] [BasicAuthentication(AppConstants.TOKEN_ALLOW_UPDATE)] [HttpPost("~/v{version:apiVersion}/labels/update")] public override ActionResult Handle(TimeLabel.TimeLabelDto labelTimeLabelDto) { var label = _context.TimeLabels .Where(c => c.UserId == LoggedInUser.Id) .SingleOrDefault(c => c.Id == labelTimeLabelDto.Id); if (label == default) { return NotFound(); } if (LoggedInUser.Id != label.User.Id) { return Forbid(); } label.Name = labelTimeLabelDto.Name; label.Color = labelTimeLabelDto.Color; _context.SaveChanges(); return Ok(); } }