public async Task <ActionResult> PostStarred(StarListRequest request) { var list = await _context.ItemLists.Where(il => il.AccessCode == request.AccessCode).FirstAsync(); var listAccessCode = list.AccessCode; if (listAccessCode != request.AccessCode) { return(BadRequest("Invalid request: pass")); } try { var tokenBearerEmail = TokenBearerValueGetter.getValue(Request, "email"); var userId = await _context.Users.Where(u => u.Email == tokenBearerEmail) .Select(u => u.Id) .FirstAsync(); var userList = new UserList() { UserId = userId, ListId = list.Id }; _context.UserLists.Add(userList); await _context.SaveChangesAsync(); return(Ok("Starred a list")); } catch { return(BadRequest("Invalid request")); } }
public async Task <ActionResult> DeleteStarred(StarListRequest request) { var list = await _context.ItemLists.Where(il => il.AccessCode == request.AccessCode).FirstAsync(); var listAccessCode = list.AccessCode; if (listAccessCode != request.AccessCode) { return(BadRequest("Invalid request: pass")); } try { var userId = UserIdGetter.getIdFromToken(Request, _context); var userListToDelete = await _context.UserLists.Where(ul => ul.ListId == list.Id && ul.UserId == userId).FirstAsync(); _context.UserLists.Remove(userListToDelete); await _context.SaveChangesAsync(); return(Ok("Unstarred a list")); } catch { return(BadRequest("Not logged in")); } }