Move bookmark container API endpoints to their own controller
This commit is contained in:
parent
b8b23abffc
commit
4623d8838d
|
@ -51,7 +51,7 @@
|
||||||
protected async void OnSubmit()
|
protected async void OnSubmit()
|
||||||
{
|
{
|
||||||
HttpResponseMessage response = await Http
|
HttpResponseMessage response = await Http
|
||||||
.PostAsJsonAsync("Bookmarks/CreateBookmarkContainer", model.Title);
|
.PostAsJsonAsync("BookmarkContainers/Create", model.Title);
|
||||||
|
|
||||||
Stream stream = response.RequestMessage!.Content!.ReadAsStream();
|
Stream stream = response.RequestMessage!.Content!.ReadAsStream();
|
||||||
StreamReader reader = new StreamReader(stream);
|
StreamReader reader = new StreamReader(stream);
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
HttpResponseMessage result = await Http
|
HttpResponseMessage result = await Http
|
||||||
.DeleteAsync($"Bookmarks/DeleteBookmarkContainer/{this.BookmarkContainerId}");
|
.DeleteAsync($"BookmarkContainers/Delete/{this.BookmarkContainerId}");
|
||||||
|
|
||||||
if (result.StatusCode == System.Net.HttpStatusCode.OK)
|
if (result.StatusCode == System.Net.HttpStatusCode.OK)
|
||||||
{
|
{
|
||||||
|
|
|
@ -99,10 +99,11 @@ else
|
||||||
|
|
||||||
protected async Task LoadContainers()
|
protected async Task LoadContainers()
|
||||||
{
|
{
|
||||||
try {
|
try
|
||||||
|
{
|
||||||
this.bookmarkContainers = await Http
|
this.bookmarkContainers = await Http
|
||||||
.GetFromJsonAsync<IList<BookmarkContainerDto>>(
|
.GetFromJsonAsync<IList<BookmarkContainerDto>>(
|
||||||
"Bookmarks/GetAllBookmarkContainers");
|
"BookmarkContainers");
|
||||||
|
|
||||||
if (this.bookmarkContainers == null || !this.bookmarkContainers.Any())
|
if (this.bookmarkContainers == null || !this.bookmarkContainers.Any())
|
||||||
{
|
{
|
||||||
|
@ -111,7 +112,8 @@ else
|
||||||
|
|
||||||
await this.OnContainerSelected(await this.GetSelectedContainerId());
|
await this.OnContainerSelected(await this.GetSelectedContainerId());
|
||||||
}
|
}
|
||||||
catch (AccessTokenNotAvailableException e) {
|
catch (AccessTokenNotAvailableException e)
|
||||||
|
{
|
||||||
e.Redirect();
|
e.Redirect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -119,7 +121,7 @@ else
|
||||||
protected async Task CreateDefaultContainer()
|
protected async Task CreateDefaultContainer()
|
||||||
{
|
{
|
||||||
HttpResponseMessage response = await Http
|
HttpResponseMessage response = await Http
|
||||||
.PostAsJsonAsync("Bookmarks/CreateBookmarkContainer", "Default");
|
.PostAsJsonAsync("BookmarkContainers/Create", "Default");
|
||||||
|
|
||||||
BookmarkContainerDto? container = await response
|
BookmarkContainerDto? container = await response
|
||||||
.RequestMessage
|
.RequestMessage
|
||||||
|
@ -139,7 +141,7 @@ else
|
||||||
|
|
||||||
BookmarkContainerDto? bookmarkContainer = await Http
|
BookmarkContainerDto? bookmarkContainer = await Http
|
||||||
.GetFromJsonAsync<BookmarkContainerDto?>(
|
.GetFromJsonAsync<BookmarkContainerDto?>(
|
||||||
$"Bookmarks/GetBookmarkContainer/{bookmarkContainerId}");
|
$"BookmarkContainers/{bookmarkContainerId}");
|
||||||
|
|
||||||
await this.SetSelectedContainer(bookmarkContainerId);
|
await this.SetSelectedContainer(bookmarkContainerId);
|
||||||
this.selectedBookmarkContainer = bookmarkContainer;
|
this.selectedBookmarkContainer = bookmarkContainer;
|
||||||
|
|
84
Start/Server/Controllers/BookmarkContainersController.cs
Normal file
84
Start/Server/Controllers/BookmarkContainersController.cs
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Start.Server.Data.Services.Interfaces;
|
||||||
|
using Start.Server.Extensions;
|
||||||
|
using Start.Shared;
|
||||||
|
|
||||||
|
namespace Start.Server.Controllers {
|
||||||
|
[Authorize]
|
||||||
|
[ApiController]
|
||||||
|
[Route("[controller]")]
|
||||||
|
public class BookmarkContainersController : ControllerBase {
|
||||||
|
private readonly IBookmarkContainerService bookmarkContainerService;
|
||||||
|
|
||||||
|
public BookmarkContainersController(IBookmarkContainerService bookmarkContainerService) {
|
||||||
|
this.bookmarkContainerService = bookmarkContainerService;
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet]
|
||||||
|
[ProducesResponseType(StatusCodes.Status200OK,
|
||||||
|
Type = typeof(IEnumerable<BookmarkContainerDto>))]
|
||||||
|
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
||||||
|
public IActionResult GetAllBookmarkContainers() {
|
||||||
|
List<BookmarkContainerDto>? containers = this.bookmarkContainerService
|
||||||
|
.GetUserBookmarkContainers(this.GetAuthorizedUserId())
|
||||||
|
.Select(bc => bc.MapToDto())
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
if (containers == null)
|
||||||
|
return NotFound();
|
||||||
|
|
||||||
|
return Ok(containers);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet]
|
||||||
|
[Route("{bookmarkContainerId}")]
|
||||||
|
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(BookmarkContainerDto))]
|
||||||
|
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
||||||
|
public IActionResult GetBookmarkContainer(int bookmarkContainerId) {
|
||||||
|
BookmarkContainerDto? container = this.bookmarkContainerService
|
||||||
|
.GetBookmarkContainer(this.GetAuthorizedUserId(), bookmarkContainerId, true, true)
|
||||||
|
?.MapToDto();
|
||||||
|
|
||||||
|
if (container == null)
|
||||||
|
return NotFound();
|
||||||
|
|
||||||
|
return Ok(container);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Route("Create")]
|
||||||
|
[ProducesResponseType(StatusCodes.Status201Created, Type = typeof(BookmarkContainerDto))]
|
||||||
|
[ProducesResponseType(StatusCodes.Status400BadRequest)]
|
||||||
|
public IActionResult CreateBookmarkContainer([FromBody] string title) {
|
||||||
|
BookmarkContainerDto? container = this.bookmarkContainerService
|
||||||
|
.CreateBookmarkContainer(this.GetAuthorizedUserId(), title)
|
||||||
|
?.MapToDto();
|
||||||
|
|
||||||
|
if (container == null)
|
||||||
|
return BadRequest();
|
||||||
|
|
||||||
|
return Created(
|
||||||
|
Url.Action(nameof(this.GetBookmarkContainer),
|
||||||
|
new { bookmarkContainerId = container.BookmarkContainerId }),
|
||||||
|
container);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpDelete]
|
||||||
|
[Route("Delete/{bookmarkContainerId}")]
|
||||||
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||||
|
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
||||||
|
public IActionResult DeleteBookmarkContainer(int bookmarkContainerId) {
|
||||||
|
bool res = this.bookmarkContainerService
|
||||||
|
.DeleteBookmarkContainer(this.GetAuthorizedUserId(), bookmarkContainerId);
|
||||||
|
|
||||||
|
if (!res)
|
||||||
|
return NotFound();
|
||||||
|
|
||||||
|
return Ok();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -12,47 +12,15 @@ namespace Start.Server.Controllers {
|
||||||
[ApiController]
|
[ApiController]
|
||||||
[Route("[controller]/[action]")]
|
[Route("[controller]/[action]")]
|
||||||
public class BookmarksController : ControllerBase {
|
public class BookmarksController : ControllerBase {
|
||||||
private readonly IBookmarkContainerService bookmarkContainerService;
|
|
||||||
private readonly IBookmarkGroupService bookmarkGroupService;
|
private readonly IBookmarkGroupService bookmarkGroupService;
|
||||||
private readonly IBookmarkService bookmarkService;
|
private readonly IBookmarkService bookmarkService;
|
||||||
|
|
||||||
public BookmarksController(IBookmarkContainerService bookmarkContainerService,
|
public BookmarksController(IBookmarkGroupService bookmarkGroupService,
|
||||||
IBookmarkGroupService bookmarkGroupService, IBookmarkService bookmarkService) {
|
IBookmarkService bookmarkService) {
|
||||||
this.bookmarkContainerService = bookmarkContainerService;
|
|
||||||
this.bookmarkGroupService = bookmarkGroupService;
|
this.bookmarkGroupService = bookmarkGroupService;
|
||||||
this.bookmarkService = bookmarkService;
|
this.bookmarkService = bookmarkService;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
|
||||||
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(IEnumerable<BookmarkContainerDto>))]
|
|
||||||
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
|
||||||
public IActionResult GetAllBookmarkContainers() {
|
|
||||||
List<BookmarkContainerDto>? containers = this.bookmarkContainerService
|
|
||||||
.GetUserBookmarkContainers(this.GetAuthorizedUserId())
|
|
||||||
.Select(bc => bc.MapToDto())
|
|
||||||
.ToList();
|
|
||||||
|
|
||||||
if (containers == null)
|
|
||||||
return NotFound();
|
|
||||||
|
|
||||||
return Ok(containers);
|
|
||||||
}
|
|
||||||
|
|
||||||
[HttpGet]
|
|
||||||
[Route("{bookmarkContainerId}")]
|
|
||||||
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(BookmarkContainerDto))]
|
|
||||||
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
|
||||||
public IActionResult GetBookmarkContainer(int bookmarkContainerId) {
|
|
||||||
BookmarkContainerDto? container = this.bookmarkContainerService
|
|
||||||
.GetBookmarkContainer(this.GetAuthorizedUserId(), bookmarkContainerId, true, true)
|
|
||||||
?.MapToDto();
|
|
||||||
|
|
||||||
if (container == null)
|
|
||||||
return NotFound();
|
|
||||||
|
|
||||||
return Ok(container);
|
|
||||||
}
|
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
[Route("{bookmarkId}")]
|
[Route("{bookmarkId}")]
|
||||||
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(BookmarkDto))]
|
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(BookmarkDto))]
|
||||||
|
@ -84,36 +52,5 @@ namespace Start.Server.Controllers {
|
||||||
Url.Action(nameof(this.GetBookmark),new { bookmarkId = bookmark.BookmarkId }),
|
Url.Action(nameof(this.GetBookmark),new { bookmarkId = bookmark.BookmarkId }),
|
||||||
bookmark);
|
bookmark);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost]
|
|
||||||
[ProducesResponseType(StatusCodes.Status201Created, Type = typeof(BookmarkContainerDto))]
|
|
||||||
[ProducesResponseType(StatusCodes.Status400BadRequest)]
|
|
||||||
public IActionResult CreateBookmarkContainer([FromBody] string title) {
|
|
||||||
BookmarkContainerDto? container = this.bookmarkContainerService
|
|
||||||
.CreateBookmarkContainer(this.GetAuthorizedUserId(), title)
|
|
||||||
?.MapToDto();
|
|
||||||
|
|
||||||
if (container == null)
|
|
||||||
return BadRequest();
|
|
||||||
|
|
||||||
return Created(
|
|
||||||
Url.Action(nameof(this.GetBookmarkContainer),
|
|
||||||
new { bookmarkContainerId = container.BookmarkContainerId }),
|
|
||||||
container);
|
|
||||||
}
|
|
||||||
|
|
||||||
[HttpDelete]
|
|
||||||
[Route("{bookmarkContainerId}")]
|
|
||||||
[ProducesResponseType(StatusCodes.Status200OK)]
|
|
||||||
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
|
||||||
public IActionResult DeleteBookmarkContainer(int bookmarkContainerId) {
|
|
||||||
bool res = this.bookmarkContainerService
|
|
||||||
.DeleteBookmarkContainer(this.GetAuthorizedUserId(), bookmarkContainerId);
|
|
||||||
|
|
||||||
if (!res)
|
|
||||||
return NotFound();
|
|
||||||
|
|
||||||
return Ok();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue