Simplify return stack
This commit is contained in:
parent
5ccc28516f
commit
c5403ca206
|
@ -4,7 +4,6 @@ using Microsoft.AspNetCore.Authorization;
|
|||
using Microsoft.AspNetCore.Mvc;
|
||||
using Start.Server.Data.Services.Interfaces;
|
||||
using Start.Server.Extensions;
|
||||
using Start.Server.Models;
|
||||
using Start.Shared;
|
||||
|
||||
namespace Start.Server.Controllers {
|
||||
|
@ -35,36 +34,32 @@ namespace Start.Server.Controllers {
|
|||
}
|
||||
|
||||
[HttpGet]
|
||||
public (BookmarkStatus, BookmarkContainerDto?) GetBookmarkContainer(int bookmarkContainerId) {
|
||||
(BookmarkStatus status, BookmarkContainer? container) = this.bookmarkContainerService
|
||||
.GetBookmarkContainer(this.userId, bookmarkContainerId, true, true);
|
||||
|
||||
return (status, container?.MapToDto());
|
||||
public BookmarkContainerDto? GetBookmarkContainer(int bookmarkContainerId) {
|
||||
return this.bookmarkContainerService
|
||||
.GetBookmarkContainer(this.userId, bookmarkContainerId, true, true)
|
||||
?.MapToDto();
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public (BookmarkStatus, BookmarkDto?) GetBookmark(int bookmarkId) {
|
||||
(BookmarkStatus status, Bookmark? bookmark) = this.bookmarkService
|
||||
.GetBookmark(this.userId, bookmarkId);
|
||||
|
||||
return (status, bookmark?.MapToDto());
|
||||
public BookmarkDto? GetBookmark(int bookmarkId) {
|
||||
return this.bookmarkService
|
||||
.GetBookmark(this.userId, bookmarkId)
|
||||
?.MapToDto();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public (BookmarkStatus, BookmarkDto?) CreateBookmark(string title, string url, string? notes,
|
||||
public BookmarkDto? CreateBookmark(string title, string url, string? notes,
|
||||
int bookmarkGroupId) {
|
||||
(BookmarkStatus status, Bookmark? bookmark) = this.bookmarkService
|
||||
.CreateBookmark(this.userId, title, url, notes, bookmarkGroupId);
|
||||
|
||||
return (status, bookmark?.MapToDto());
|
||||
return this.bookmarkService
|
||||
.CreateBookmark(this.userId, title, url, notes, bookmarkGroupId)
|
||||
?.MapToDto();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public (BookmarkStatus, BookmarkContainerDto?) CreateBookmarkContainer(string title) {
|
||||
(BookmarkStatus status, BookmarkContainer? container) = this
|
||||
.bookmarkContainerService.CreateBookmarkContainer(this.userId, title);
|
||||
|
||||
return (status, container?.MapToDto());
|
||||
public BookmarkContainerDto? CreateBookmarkContainer(string title) {
|
||||
return this.bookmarkContainerService
|
||||
.CreateBookmarkContainer(this.userId, title)
|
||||
?.MapToDto();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Start.Server.Data.Services.Interfaces;
|
||||
using Start.Server.Extensions;
|
||||
using Start.Server.Models;
|
||||
using Start.Shared;
|
||||
|
||||
namespace Start.Server.Data.Services {
|
||||
public class BookmarkContainerService : IBookmarkContainerService {
|
||||
|
@ -15,7 +13,7 @@ namespace Start.Server.Data.Services {
|
|||
this.db = dbContext;
|
||||
}
|
||||
|
||||
public (BookmarkStatus, BookmarkContainer?) GetBookmarkContainer(string userId,
|
||||
public BookmarkContainer? GetBookmarkContainer(string userId,
|
||||
int bookmarkContainerId, bool includeGroups = false, bool includeBookmarks = false) {
|
||||
BookmarkContainer? bookmarkContainer = this.db.BookmarkContainers
|
||||
.Where(bc => bc.BookmarkContainerId == bookmarkContainerId)
|
||||
|
@ -26,13 +24,13 @@ namespace Start.Server.Data.Services {
|
|||
.SingleOrDefault();
|
||||
|
||||
if (bookmarkContainer == null)
|
||||
return (BookmarkStatus.BookmarkDoesNotExist, null);
|
||||
return null;
|
||||
|
||||
if (!BookmarkOwnershipTools
|
||||
.IsBookmarkContainerOwner(this.db, userId, bookmarkContainerId))
|
||||
return (BookmarkStatus.OwnerDoesNotMatch, null);
|
||||
return null;
|
||||
|
||||
return (BookmarkStatus.OK, bookmarkContainer);
|
||||
return bookmarkContainer;
|
||||
}
|
||||
|
||||
public IList<BookmarkContainer> GetUserBookmarkContainers(string userId,
|
||||
|
@ -46,47 +44,47 @@ namespace Start.Server.Data.Services {
|
|||
.ToList();
|
||||
}
|
||||
|
||||
public (BookmarkStatus, BookmarkContainer?) CreateBookmarkContainer(string userId,
|
||||
public BookmarkContainer? CreateBookmarkContainer(string userId,
|
||||
string title) {
|
||||
// No need to worry about ownership here
|
||||
|
||||
BookmarkContainer newContainer = new(userId, title);
|
||||
this.db.BookmarkContainers.Add(newContainer);
|
||||
return (BookmarkStatus.OK, newContainer);
|
||||
return newContainer;
|
||||
}
|
||||
|
||||
public (BookmarkStatus, BookmarkContainer?) UpdateBookmarkContainer(string userId,
|
||||
public BookmarkContainer? UpdateBookmarkContainer(string userId,
|
||||
BookmarkContainer bookmarkContainer) {
|
||||
BookmarkContainer? exitingBookmarkContainer = this.db.BookmarkContainers
|
||||
.SingleOrDefault(bc => bc.BookmarkContainerId
|
||||
== bookmarkContainer.BookmarkContainerId);
|
||||
|
||||
if (exitingBookmarkContainer == null)
|
||||
return (BookmarkStatus.BookmarkDoesNotExist, null);
|
||||
|
||||
if (!BookmarkOwnershipTools
|
||||
if (exitingBookmarkContainer == null
|
||||
|| !BookmarkOwnershipTools
|
||||
.IsBookmarkContainerOwner(this.db, userId, bookmarkContainer.BookmarkContainerId))
|
||||
return (BookmarkStatus.OwnerDoesNotMatch, null);
|
||||
return null;
|
||||
|
||||
this.db.Entry(bookmarkContainer).State = EntityState.Modified;
|
||||
this.db.SaveChanges();
|
||||
|
||||
return (BookmarkStatus.OK, bookmarkContainer);
|
||||
return bookmarkContainer;
|
||||
}
|
||||
|
||||
public BookmarkStatus DeleteBookmarkContainer(string userId, int bookmarkContainerId) {
|
||||
public bool DeleteBookmarkContainer(string userId, int bookmarkContainerId) {
|
||||
BookmarkContainer? bookmarkContainer = this.db.BookmarkContainers
|
||||
.Where(bc => bc.BookmarkContainerId == bookmarkContainerId)
|
||||
.SingleOrDefault();
|
||||
|
||||
if (bookmarkContainer == null)
|
||||
return (BookmarkStatus.BookmarkDoesNotExist);
|
||||
return false;
|
||||
|
||||
if (!BookmarkOwnershipTools.IsBookmarkContainerOwner(this.db, userId, bookmarkContainerId))
|
||||
return BookmarkStatus.OwnerDoesNotMatch;
|
||||
return false;
|
||||
|
||||
this.db.BookmarkContainers.Remove(bookmarkContainer);
|
||||
this.db.SaveChanges();
|
||||
|
||||
return BookmarkStatus.OK;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,20 +15,17 @@ namespace Start.Server.Data.Services {
|
|||
this.db = dbContext;
|
||||
}
|
||||
|
||||
public (BookmarkStatus, BookmarkGroup?) GetBookmarkGroup(string userId,
|
||||
int bookmarkGroupId, bool includeBookmarks = false) {
|
||||
public BookmarkGroup? GetBookmarkGroup(string userId, int bookmarkGroupId,
|
||||
bool includeBookmarks = false) {
|
||||
BookmarkGroup? group = db.BookmarkGroups
|
||||
.Where(bg => bg.BookmarkGroupId == bookmarkGroupId)
|
||||
.If(includeBookmarks, q => q.Include(bg => bg.Bookmarks))
|
||||
.SingleOrDefault();
|
||||
|
||||
if (group == null)
|
||||
return (BookmarkStatus.BookmarkDoesNotExist, null);
|
||||
|
||||
if (!BookmarkOwnershipTools.IsBookmarkGroupOwner(db, userId, bookmarkGroupId))
|
||||
return (BookmarkStatus.OwnerDoesNotMatch, null);
|
||||
return null;
|
||||
|
||||
return (BookmarkStatus.OK, group);
|
||||
return group;
|
||||
}
|
||||
|
||||
public IList<BookmarkGroup> GetUserBookmarkGroups(string userId,
|
||||
|
@ -39,51 +36,55 @@ namespace Start.Server.Data.Services {
|
|||
.ToList();
|
||||
}
|
||||
|
||||
public (BookmarkStatus, BookmarkGroup?) CreateBookmarkGroup(string userId, string title,
|
||||
public BookmarkGroup? CreateBookmarkGroup(string userId, string title,
|
||||
string color, int bookmarkContainerId) {
|
||||
if (!BookmarkOwnershipTools
|
||||
.IsBookmarkContainerOwner(this.db, userId, bookmarkContainerId))
|
||||
return (BookmarkStatus.OwnerDoesNotMatch, null);
|
||||
return null;
|
||||
|
||||
BookmarkGroup newBookmarkGroup = new(title, color, bookmarkContainerId);
|
||||
this.db.BookmarkGroups.Add(newBookmarkGroup);
|
||||
this.db.SaveChanges();
|
||||
|
||||
return (BookmarkStatus.OK, newBookmarkGroup);
|
||||
return newBookmarkGroup;
|
||||
}
|
||||
|
||||
public (BookmarkStatus, BookmarkGroup?) UpdateBookmarkGroup(string userId,
|
||||
public BookmarkGroup? UpdateBookmarkGroup(string userId,
|
||||
BookmarkGroup bookmarkGroup) {
|
||||
BookmarkGroup? existingGroup = this.db.BookmarkGroups
|
||||
.SingleOrDefault(bg => bg.BookmarkGroupId == bookmarkGroup.BookmarkGroupId);
|
||||
|
||||
if (existingGroup == null)
|
||||
return (BookmarkStatus.BookmarkDoesNotExist, null);
|
||||
return null;
|
||||
|
||||
if (!BookmarkOwnershipTools
|
||||
.IsBookmarkGroupOwner(this.db, userId, bookmarkGroup.BookmarkGroupId))
|
||||
return (BookmarkStatus.OwnerDoesNotMatch, null);
|
||||
return null;
|
||||
|
||||
if (!BookmarkOwnershipTools
|
||||
.IsBookmarkContainerOwner(this.db, userId, bookmarkGroup.BookmarkContainerId))
|
||||
return null;
|
||||
|
||||
this.db.Entry(bookmarkGroup).State = EntityState.Modified;
|
||||
this.db.SaveChanges();
|
||||
|
||||
return (BookmarkStatus.OK, bookmarkGroup);
|
||||
return bookmarkGroup;
|
||||
}
|
||||
|
||||
public BookmarkStatus DeleteBookmarkGroup(string userId, int bookmarkGroupId) {
|
||||
public bool DeleteBookmarkGroup(string userId, int bookmarkGroupId) {
|
||||
BookmarkGroup? bookmarkGroup = this.db.BookmarkGroups
|
||||
.SingleOrDefault(bg => bg.BookmarkGroupId == bookmarkGroupId);
|
||||
|
||||
if (bookmarkGroup == null)
|
||||
return BookmarkStatus.BookmarkDoesNotExist;
|
||||
return false;
|
||||
|
||||
if (!BookmarkOwnershipTools.IsBookmarkGroupOwner(this.db, userId, bookmarkGroupId))
|
||||
return BookmarkStatus.OwnerDoesNotMatch;
|
||||
return false;
|
||||
|
||||
this.db.BookmarkGroups.Remove(bookmarkGroup);
|
||||
this.db.SaveChanges();
|
||||
|
||||
return BookmarkStatus.OK;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Security;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Start.Server.Data.Services.Interfaces;
|
||||
using Start.Server.Models;
|
||||
using Start.Shared;
|
||||
|
||||
namespace Start.Server.Data.Services {
|
||||
public class BookmarkService : IBookmarkService {
|
||||
|
@ -15,17 +12,12 @@ namespace Start.Server.Data.Services {
|
|||
this.db = dbContext;
|
||||
}
|
||||
|
||||
public (BookmarkStatus, Bookmark?) GetBookmark(string userId, int bookmarkId) {
|
||||
public Bookmark? GetBookmark(string userId, int bookmarkId) {
|
||||
if (!BookmarkOwnershipTools.IsBookmarkOwner(this.db, userId, bookmarkId))
|
||||
return (BookmarkStatus.OwnerDoesNotMatch, null);
|
||||
return null;
|
||||
|
||||
Bookmark? bookmark = this.db.Bookmarks
|
||||
return this.db.Bookmarks
|
||||
.SingleOrDefault(b => b.BookmarkId == bookmarkId);
|
||||
|
||||
if (bookmark == null)
|
||||
return (BookmarkStatus.BookmarkDoesNotExist, null);
|
||||
|
||||
return (BookmarkStatus.OK, bookmark);
|
||||
}
|
||||
|
||||
public IList<Bookmark> GetUserBookmarks(string userId) {
|
||||
|
@ -34,53 +26,54 @@ namespace Start.Server.Data.Services {
|
|||
.ToList();
|
||||
}
|
||||
|
||||
public (BookmarkStatus, Bookmark?) CreateBookmark(string userId, string title, string url, string? notes,
|
||||
public Bookmark? CreateBookmark(string userId, string title, string url, string? notes,
|
||||
int bookmarkGroupId) {
|
||||
if (!BookmarkOwnershipTools.IsBookmarkGroupOwner(this.db, userId, bookmarkGroupId))
|
||||
return (BookmarkStatus.OwnerDoesNotMatch, null);
|
||||
return null;
|
||||
|
||||
Bookmark newBookmark = new(title, url, bookmarkGroupId);
|
||||
|
||||
db.Bookmarks.Add(newBookmark);
|
||||
db.SaveChanges();
|
||||
|
||||
return (BookmarkStatus.OK, newBookmark);
|
||||
if (newBookmark.BookmarkId <= 0)
|
||||
return null;
|
||||
|
||||
return newBookmark;
|
||||
}
|
||||
|
||||
public (BookmarkStatus, Bookmark?) UpdateBookmark(string userId, Bookmark bookmark) {
|
||||
public Bookmark? UpdateBookmark(string userId, Bookmark bookmark) {
|
||||
Bookmark? existingBookmark = db.Bookmarks
|
||||
.SingleOrDefault(b => b.BookmarkId == bookmark.BookmarkId);
|
||||
|
||||
if (existingBookmark == null)
|
||||
return (BookmarkStatus.BookmarkDoesNotExist, null);
|
||||
|
||||
if (!BookmarkOwnershipTools.IsBookmarkOwner(this.db, userId, bookmark.BookmarkId))
|
||||
return (BookmarkStatus.OwnerDoesNotMatch, null);
|
||||
return null;
|
||||
|
||||
// Could be moving to a different group
|
||||
if (!BookmarkOwnershipTools
|
||||
.IsBookmarkGroupOwner(this.db, userId, bookmark.BookmarkGroupId))
|
||||
return (BookmarkStatus.OwnerDoesNotMatch, null);
|
||||
return null;
|
||||
|
||||
db.Entry(bookmark).State = EntityState.Modified;
|
||||
db.SaveChanges();
|
||||
|
||||
return (BookmarkStatus.OK, bookmark);
|
||||
return bookmark;
|
||||
}
|
||||
|
||||
public BookmarkStatus DeleteBookmark(string userId, int bookmarkId) {
|
||||
public bool DeleteBookmark(string userId, int bookmarkId) {
|
||||
Bookmark? bookmark = db.Bookmarks
|
||||
.SingleOrDefault(b => b.BookmarkId == bookmarkId);
|
||||
|
||||
if (bookmark == null)
|
||||
return BookmarkStatus.BookmarkDoesNotExist;
|
||||
return false;
|
||||
|
||||
if (!BookmarkOwnershipTools.IsBookmarkOwner(this.db, userId, bookmarkId))
|
||||
return BookmarkStatus.OwnerDoesNotMatch;
|
||||
return false;
|
||||
|
||||
db.Bookmarks.Remove(bookmark);
|
||||
db.SaveChanges();
|
||||
|
||||
return BookmarkStatus.OK;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,15 +5,15 @@ using Start.Shared;
|
|||
|
||||
namespace Start.Server.Data.Services.Interfaces {
|
||||
public interface IBookmarkContainerService {
|
||||
public (BookmarkStatus, BookmarkContainer?) GetBookmarkContainer(string userId,
|
||||
public BookmarkContainer? GetBookmarkContainer(string userId,
|
||||
int bookmarkContainerId, bool includeGroups = false, bool includeBookmarks = false);
|
||||
public IList<BookmarkContainer> GetUserBookmarkContainers(string userId,
|
||||
bool includeGroups = false, bool includeBookmarks = false);
|
||||
|
||||
public (BookmarkStatus, BookmarkContainer?) CreateBookmarkContainer(string userId,
|
||||
public BookmarkContainer? CreateBookmarkContainer(string userId,
|
||||
string title);
|
||||
public (BookmarkStatus, BookmarkContainer?) UpdateBookmarkContainer(string userId,
|
||||
public BookmarkContainer? UpdateBookmarkContainer(string userId,
|
||||
BookmarkContainer bookmarkContainer);
|
||||
public BookmarkStatus DeleteBookmarkContainer(string userId, int bookmarkContainerId);
|
||||
public bool DeleteBookmarkContainer(string userId, int bookmarkContainerId);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,15 +5,15 @@ using Start.Shared;
|
|||
|
||||
namespace Start.Server.Data.Services.Interfaces {
|
||||
public interface IBookmarkGroupService {
|
||||
public (BookmarkStatus, BookmarkGroup?) GetBookmarkGroup(string userId,
|
||||
public BookmarkGroup? GetBookmarkGroup(string userId,
|
||||
int bookmarkGroupId, bool includeBookmarks = false);
|
||||
public IList<BookmarkGroup> GetUserBookmarkGroups(string userId,
|
||||
bool includeBookmarks = false);
|
||||
|
||||
public (BookmarkStatus, BookmarkGroup?) CreateBookmarkGroup(string userId, string title,
|
||||
public BookmarkGroup? CreateBookmarkGroup(string userId, string title,
|
||||
string color, int bookmarkContainerId);
|
||||
public (BookmarkStatus, BookmarkGroup?) UpdateBookmarkGroup(string userId,
|
||||
public BookmarkGroup? UpdateBookmarkGroup(string userId,
|
||||
BookmarkGroup bookmarkGroup);
|
||||
public BookmarkStatus DeleteBookmarkGroup(string userId, int bookmarkGroupId);
|
||||
public bool DeleteBookmarkGroup(string userId, int bookmarkGroupId);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,12 +5,12 @@ using Start.Shared;
|
|||
|
||||
namespace Start.Server.Data.Services.Interfaces {
|
||||
public interface IBookmarkService {
|
||||
public (BookmarkStatus, Bookmark?) GetBookmark(string userId, int bookmarkId);
|
||||
public Bookmark? GetBookmark(string userId, int bookmarkId);
|
||||
public IList<Bookmark> GetUserBookmarks(string userId);
|
||||
|
||||
public (BookmarkStatus, Bookmark?) CreateBookmark(string userId, string title, string url,
|
||||
public Bookmark? CreateBookmark(string userId, string title, string url,
|
||||
string? notes, int bookmarkGroupId);
|
||||
public (BookmarkStatus, Bookmark?) UpdateBookmark(string userId, Bookmark bookmark);
|
||||
public BookmarkStatus DeleteBookmark(string userId, int bookmarkId);
|
||||
public Bookmark? UpdateBookmark(string userId, Bookmark bookmark);
|
||||
public bool DeleteBookmark(string userId, int bookmarkId);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
using System;
|
||||
namespace Start.Shared {
|
||||
public enum BookmarkStatus {
|
||||
OK = 1,
|
||||
BookmarkDoesNotExist = 2,
|
||||
OwnerDoesNotMatch = 3,
|
||||
UserDoesNotExist = 4
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue