BlazorStart/Start/Server/Controllers/BookmarksController.cs

66 lines
2 KiB
C#
Raw Normal View History

2021-11-14 03:27:01 +00:00
using System.Collections.Generic;
2021-11-16 05:44:16 +00:00
using System.Linq;
2021-11-13 03:21:59 +00:00
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Start.Server.Data.Services.Interfaces;
2021-11-14 03:27:01 +00:00
using Start.Server.Extensions;
2021-11-16 05:44:16 +00:00
using Start.Shared;
2021-11-13 03:21:59 +00:00
namespace Start.Server.Controllers {
[Authorize]
[ApiController]
[Route("[controller]")]
public class BookmarksController : ControllerBase {
2021-11-14 03:27:01 +00:00
private readonly IBookmarkContainerService bookmarkContainerService;
private readonly IBookmarkGroupService bookmarkGroupService;
2021-11-13 03:21:59 +00:00
private readonly IBookmarkService bookmarkService;
2021-11-14 03:27:01 +00:00
private readonly string userId;
public BookmarksController(IBookmarkContainerService bookmarkContainerService,
IBookmarkGroupService bookmarkGroupService, IBookmarkService bookmarkService) {
this.bookmarkContainerService = bookmarkContainerService;
this.bookmarkGroupService = bookmarkGroupService;
2021-11-13 03:21:59 +00:00
this.bookmarkService = bookmarkService;
2021-11-14 03:27:01 +00:00
this.userId = this.GetAuthorizedUserId();
2021-11-13 03:21:59 +00:00
}
[HttpGet]
2021-11-16 05:44:16 +00:00
public IList<BookmarkContainerDto> GetAllBookmarkContainers() {
return this.bookmarkContainerService.GetUserBookmarkContainers(this.userId)
.Select(bc => bc.MapToDto())
.ToList();
2021-11-13 03:21:59 +00:00
}
[HttpGet]
2021-11-16 06:27:28 +00:00
public BookmarkContainerDto? GetBookmarkContainer(int bookmarkContainerId) {
return this.bookmarkContainerService
.GetBookmarkContainer(this.userId, bookmarkContainerId, true, true)
?.MapToDto();
2021-11-13 03:21:59 +00:00
}
2021-11-14 01:19:28 +00:00
[HttpGet]
2021-11-16 06:27:28 +00:00
public BookmarkDto? GetBookmark(int bookmarkId) {
return this.bookmarkService
.GetBookmark(this.userId, bookmarkId)
?.MapToDto();
2021-11-14 01:19:28 +00:00
}
2021-11-13 03:21:59 +00:00
[HttpPost]
2021-11-16 06:27:28 +00:00
public BookmarkDto? CreateBookmark(string title, string url, string? notes,
2021-11-13 03:21:59 +00:00
int bookmarkGroupId) {
2021-11-16 06:27:28 +00:00
return this.bookmarkService
.CreateBookmark(this.userId, title, url, notes, bookmarkGroupId)
?.MapToDto();
2021-11-16 05:44:16 +00:00
}
[HttpPost]
2021-11-16 06:27:28 +00:00
public BookmarkContainerDto? CreateBookmarkContainer(string title) {
return this.bookmarkContainerService
.CreateBookmarkContainer(this.userId, title)
?.MapToDto();
2021-11-14 01:19:28 +00:00
}
2021-11-13 03:21:59 +00:00
}
}