namespace IOL.GreatOffice.Api.Endpoints.V1.Entries; public class DeleteEntryRoute : RouteBaseSync.WithRequest.WithActionResult { private readonly MainAppDatabase _database; public DeleteEntryRoute(MainAppDatabase database) { _database = database; } /// /// Delete a time entry. /// /// /// [ApiVersion(ApiSpecV1.VERSION_STRING)] [BasicAuthentication(AppConstants.TOKEN_ALLOW_DELETE)] [HttpDelete("~/v{version:apiVersion}/entries/{id:guid}/delete")] [ProducesResponseType(404)] [ProducesResponseType(200)] public override ActionResult Handle(Guid id) { var entry = _database.TimeEntries .Where(c => c.UserId == LoggedInUser.Id) .SingleOrDefault(c => c.Id == id); if (entry == default) { return NotFound(); } _database.TimeEntries.Remove(entry); _database.SaveChanges(); return Ok(); } }