diff --git a/YABA.API/Controllers/BookmarksController.cs b/YABA.API/Controllers/BookmarksController.cs index 394db39..363bf9e 100644 --- a/YABA.API/Controllers/BookmarksController.cs +++ b/YABA.API/Controllers/BookmarksController.cs @@ -23,7 +23,7 @@ namespace YABA.API.Controllers [HttpPost] [ProducesResponseType(typeof(GenericResponse), (int)HttpStatusCode.OK)] [ProducesResponseType((int)HttpStatusCode.BadRequest)] - public async Task Create(CreateBookmarkRequestDTO request) + public async Task Create([FromBody] CreateBookmarkRequestDTO request) { var result = await _bookmarkService.CreateBookmark(request); @@ -35,7 +35,7 @@ namespace YABA.API.Controllers [HttpPost("{id}/Tags")] [ProducesResponseType(typeof(IEnumerable>),(int)HttpStatusCode.OK)] [ProducesResponseType((int)HttpStatusCode.NotFound)] - public async Task UpdateBookmarkTags(int id, IEnumerable tags) + public async Task UpdateBookmarkTags(int id, [FromBody] IEnumerable tags) { var result = await _bookmarkService.UpdateBookmarkTags(id, tags); @@ -44,6 +44,19 @@ namespace YABA.API.Controllers return Ok(result.Select(x => new GenericResponse(x))); } + [HttpPut("{id}")] + [ProducesResponseType(typeof(GenericResponse), (int)HttpStatusCode.OK)] + [ProducesResponseType((int)HttpStatusCode.NotFound)] + public async Task UpdateBookmark(int id, [FromBody] UpdateBookmarkRequestDTO request) + { + // TODO: Add support for HTTP PATCH + var result = await _bookmarkService.UpdateBookmark(id, request); + + if (!result.IsSuccessful) return NotFound(); + + return Ok(new GenericResponse(result)); + } + [HttpGet] [ProducesResponseType(typeof(GenericResponse>), (int)HttpStatusCode.OK)] public IActionResult GetAll() diff --git a/YABA.Common/DTOs/Bookmarks/UpdateBookmarkRequestDTO.cs b/YABA.Common/DTOs/Bookmarks/UpdateBookmarkRequestDTO.cs index fabdcdc..cc4dbce 100644 --- a/YABA.Common/DTOs/Bookmarks/UpdateBookmarkRequestDTO.cs +++ b/YABA.Common/DTOs/Bookmarks/UpdateBookmarkRequestDTO.cs @@ -8,6 +8,5 @@ namespace YABA.Common.DTOs.Bookmarks public string Description { get; set; } public string Note { get; set; } public bool IsHidden { get; set; } - public string Url { get; set; } } } diff --git a/YABA.Service/BookmarkService.cs b/YABA.Service/BookmarkService.cs index 1f00a3d..121e45b 100644 --- a/YABA.Service/BookmarkService.cs +++ b/YABA.Service/BookmarkService.cs @@ -32,6 +32,7 @@ namespace YABA.Service { _roContext = roContext; _context = context; + _httpContextAccessor = httpContextAccessor; _mapper = mapper; } @@ -106,8 +107,6 @@ namespace YABA.Service var crudResult = new CrudResultDTO() { Entry = request, CrudResult = CrudResultLookup.UpdateFailed }; var currentUserId = GetCurrentUserId(); - if (!_roContext.Users.UserExists(currentUserId)) return crudResult; - var bookmark = _context.Bookmarks.FirstOrDefault(x => x.UserId == currentUserId && x.Id == id); if(bookmark == null) return crudResult; @@ -116,7 +115,6 @@ namespace YABA.Service bookmark.Description = request.Description; bookmark.Note = request.Note; bookmark.IsHidden = request.IsHidden; - bookmark.Url = request.Url; if (await _context.SaveChangesAsync() > 0) crudResult.CrudResult = CrudResultLookup.UpdateSucceeded;