From 0725e4f7cf4c6f723264b6d461b91c660d144cb7 Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Sun, 30 Oct 2022 22:40:03 +0700 Subject: feat: Apiwork --- .../src/Endpoints/V1/Labels/CreateLabelRoute.cs | 70 +++++++++++----------- .../src/Endpoints/V1/Labels/DeleteLabelRoute.cs | 51 ++++++++-------- code/api/src/Endpoints/V1/Labels/GetLabelRoute.cs | 49 +++++++-------- .../src/Endpoints/V1/Labels/UpdateLabelRoute.cs | 58 +++++++++--------- 4 files changed, 110 insertions(+), 118 deletions(-) (limited to 'code/api/src/Endpoints/V1/Labels') diff --git a/code/api/src/Endpoints/V1/Labels/CreateLabelRoute.cs b/code/api/src/Endpoints/V1/Labels/CreateLabelRoute.cs index 4fe418b..d6106aa 100644 --- a/code/api/src/Endpoints/V1/Labels/CreateLabelRoute.cs +++ b/code/api/src/Endpoints/V1/Labels/CreateLabelRoute.cs @@ -1,44 +1,44 @@ - namespace IOL.GreatOffice.Api.Endpoints.V1.Labels; public class CreateLabelRoute : RouteBaseSync.WithRequest.WithActionResult { - private readonly AppDbContext _context; + private readonly MainAppDatabase _database; - public CreateLabelRoute(AppDbContext context) { - _context = context; - } + public CreateLabelRoute(MainAppDatabase database) { + _database = database; + } - /// - /// Create a time entry label. - /// - /// - /// - [ApiVersion(ApiSpecV1.VERSION_STRING)] - [BasicAuthentication(AppConstants.TOKEN_ALLOW_CREATE)] - [HttpPost("~/v{version:apiVersion}/labels/create")] - public override ActionResult Handle(TimeLabel.TimeLabelDto labelTimeLabelDto) { - var duplicate = _context.TimeLabels - .Where(c => c.UserId == LoggedInUser.Id) - .Any(c => c.Name.Trim() == labelTimeLabelDto.Name.Trim()); - if (duplicate) { - var label = _context.TimeLabels - .Where(c => c.UserId == LoggedInUser.Id) - .SingleOrDefault(c => c.Name.Trim() == labelTimeLabelDto.Name.Trim()); + /// + /// Create a time entry label. + /// + /// + /// + [ApiVersion(ApiSpecV1.VERSION_STRING)] + [BasicAuthentication(AppConstants.TOKEN_ALLOW_CREATE)] + [HttpPost("~/v{version:apiVersion}/labels/create")] + public override ActionResult Handle(TimeLabel.TimeLabelDto labelTimeLabelDto) { + var duplicate = _database.TimeLabels + .Where(c => c.UserId == LoggedInUser.Id) + .Any(c => c.Name.Trim() == labelTimeLabelDto.Name.Trim()); + if (duplicate) { + var label = _database.TimeLabels + .Where(c => c.UserId == LoggedInUser.Id) + .SingleOrDefault(c => c.Name.Trim() == labelTimeLabelDto.Name.Trim()); - if (label != default) { - return Ok(label.AsDto); - } - } + if (label != default) { + return Ok(label.AsDto); + } + } - var newLabel = new TimeLabel(LoggedInUser.Id) { - Name = labelTimeLabelDto.Name.Trim(), - Color = labelTimeLabelDto.Color - }; + var newLabel = new TimeLabel(LoggedInUser) { + Name = labelTimeLabelDto.Name.Trim(), + Color = labelTimeLabelDto.Color + }; + newLabel.SetOwnerIds(LoggedInUser.Id); - _context.TimeLabels.Add(newLabel); - _context.SaveChanges(); - labelTimeLabelDto.Id = newLabel.Id; - return Ok(labelTimeLabelDto); - } -} + _database.TimeLabels.Add(newLabel); + _database.SaveChanges(); + labelTimeLabelDto.Id = newLabel.Id; + return Ok(labelTimeLabelDto); + } +} \ No newline at end of file diff --git a/code/api/src/Endpoints/V1/Labels/DeleteLabelRoute.cs b/code/api/src/Endpoints/V1/Labels/DeleteLabelRoute.cs index d845a6f..1baf4ef 100644 --- a/code/api/src/Endpoints/V1/Labels/DeleteLabelRoute.cs +++ b/code/api/src/Endpoints/V1/Labels/DeleteLabelRoute.cs @@ -1,35 +1,32 @@ - namespace IOL.GreatOffice.Api.Endpoints.V1.Labels; -/// public class DeleteLabelEndpoint : RouteBaseSync.WithRequest.WithActionResult { - private readonly AppDbContext _context; + private readonly MainAppDatabase _database; - /// - public DeleteLabelEndpoint(AppDbContext context) { - _context = context; - } + public DeleteLabelEndpoint(MainAppDatabase database) { + _database = database; + } - /// - /// Delete a time entry label. - /// - /// - /// - [ApiVersion(ApiSpecV1.VERSION_STRING)] - [BasicAuthentication(AppConstants.TOKEN_ALLOW_DELETE)] - [HttpDelete("~/v{version:apiVersion}/labels/{id:guid}/delete")] - public override ActionResult Handle(Guid id) { - var label = _context.TimeLabels - .Where(c => c.UserId == LoggedInUser.Id) - .SingleOrDefault(c => c.Id == id); + /// + /// Delete a time entry label. + /// + /// + /// + [ApiVersion(ApiSpecV1.VERSION_STRING)] + [BasicAuthentication(AppConstants.TOKEN_ALLOW_DELETE)] + [HttpDelete("~/v{version:apiVersion}/labels/{id:guid}/delete")] + public override ActionResult Handle(Guid id) { + var label = _database.TimeLabels + .Where(c => c.UserId == LoggedInUser.Id) + .SingleOrDefault(c => c.Id == id); - if (label == default) { - return NotFound(); - } + if (label == default) { + return NotFound(); + } - _context.TimeLabels.Remove(label); - _context.SaveChanges(); - return Ok(); - } -} + _database.TimeLabels.Remove(label); + _database.SaveChanges(); + return Ok(); + } +} \ No newline at end of file diff --git a/code/api/src/Endpoints/V1/Labels/GetLabelRoute.cs b/code/api/src/Endpoints/V1/Labels/GetLabelRoute.cs index c9ccef3..09d453b 100644 --- a/code/api/src/Endpoints/V1/Labels/GetLabelRoute.cs +++ b/code/api/src/Endpoints/V1/Labels/GetLabelRoute.cs @@ -1,34 +1,31 @@ - namespace IOL.GreatOffice.Api.Endpoints.V1.Labels; -/// public class GetEndpoint : RouteBaseSync.WithoutRequest.WithActionResult> { - private readonly AppDbContext _context; + private readonly MainAppDatabase _database; - /// - public GetEndpoint(AppDbContext context) { - _context = context; - } + public GetEndpoint(MainAppDatabase database) { + _database = database; + } - /// - /// Get a minimal list of time entry labels. - /// - /// - [ApiVersion(ApiSpecV1.VERSION_STRING)] - [BasicAuthentication(AppConstants.TOKEN_ALLOW_READ)] - [HttpGet("~/v{version:apiVersion}/labels")] - public override ActionResult> Handle() { - var labels = _context.TimeLabels - .Where(c => c.UserId == LoggedInUser.Id) - .OrderByDescending(c => c.CreatedAt) - .Select(c => c.AsDto) - .ToList(); + /// + /// Get a minimal list of time entry labels. + /// + /// + [ApiVersion(ApiSpecV1.VERSION_STRING)] + [BasicAuthentication(AppConstants.TOKEN_ALLOW_READ)] + [HttpGet("~/v{version:apiVersion}/labels")] + public override ActionResult> Handle() { + var labels = _database.TimeLabels + .Where(c => c.UserId == LoggedInUser.Id) + .OrderByDescending(c => c.CreatedAt) + .Select(c => c.AsDto) + .ToList(); - if (labels.Count == 0) { - return NoContent(); - } + if (labels.Count == 0) { + return NoContent(); + } - return Ok(labels); - } -} + return Ok(labels); + } +} \ No newline at end of file diff --git a/code/api/src/Endpoints/V1/Labels/UpdateLabelRoute.cs b/code/api/src/Endpoints/V1/Labels/UpdateLabelRoute.cs index 30d72ec..9857b7d 100644 --- a/code/api/src/Endpoints/V1/Labels/UpdateLabelRoute.cs +++ b/code/api/src/Endpoints/V1/Labels/UpdateLabelRoute.cs @@ -1,38 +1,36 @@ namespace IOL.GreatOffice.Api.Endpoints.V1.Labels; -/// public class UpdateLabelEndpoint : RouteBaseSync.WithRequest.WithActionResult { - private readonly AppDbContext _context; + private readonly MainAppDatabase _database; - /// - public UpdateLabelEndpoint(AppDbContext context) { - _context = context; - } + public UpdateLabelEndpoint(MainAppDatabase database) { + _database = database; + } - /// - /// 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(); - } + /// + /// 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 = _database.TimeLabels + .Where(c => c.UserId == LoggedInUser.Id) + .SingleOrDefault(c => c.Id == labelTimeLabelDto.Id); + if (label == default) { + return NotFound(); + } - if (LoggedInUser.Id != label.UserId) { - return Forbid(); - } + if (LoggedInUser.Id != label.UserId) { + return Forbid(); + } - label.Name = labelTimeLabelDto.Name; - label.Color = labelTimeLabelDto.Color; - _context.SaveChanges(); - return Ok(); - } -} + label.Name = labelTimeLabelDto.Name; + label.Color = labelTimeLabelDto.Color; + _database.SaveChanges(); + return Ok(); + } +} \ No newline at end of file -- cgit v1.3