public IActionResult Put(long id, [FromBody] TodoUpdateModel todo) { if (todo == null) { return(BadRequest("Todo is null.")); } Todo.Domain.Todo todoToUpdate = _dataService.Get(id); if (todoToUpdate == null) { return(NotFound("The Todo record couldn't be found.")); } var user = _userDataService.GetByEmail(User.Identity.Name); if (_userDataService.CanUserManageTodo(user, todoToUpdate)) { _dataService.Update(todoToUpdate, new Todo.Domain.Todo { Text = todo.Text, IsDone = todo.IsDone }); return(NoContent()); } else { return(Unauthorized()); } }
public IActionResult Get(long id) { Todo.Domain.Todo todo = _dataService.Get(id); if (todo == null) { return(NotFound("Todo couldn't be found.")); } var user = _userDataService.GetByEmail(User.Identity.Name); if (user.UserRole == 1) { return(Ok(todo.Text)); } else { if (_userDataService.CanUserManageTodo(user, todo)) { return(Ok(todo.Text)); } else { return(Unauthorized()); } } }
public bool CanUserManageTodo(User user, Todo.Domain.Todo todo) { var userList = _todoContext.TodoList.FirstOrDefault(u => u.UserId == user.UserId); if (userList != null) { return(userList.TodoListId == todo.TodoListId); } else { return(false); } }
public IActionResult Post([FromBody] TodoPostModel todo) { var user = _userDataService.GetByEmail(User.Identity.Name); if (user.UserRole == 1) { return(BadRequest("Administrator cannot create new todo")); } if (todo == null) { return(BadRequest("Todo is null.")); } var newTodo = new Todo.Domain.Todo { Text = todo.Text, IsDone = false, TodoListId = _userDataService.GetUsersTodoListId(_userDataService.GetByEmail(User.Identity.Name)) }; _dataService.Add(newTodo); return(CreatedAtRoute( "GetTodo", new { Id = newTodo.TodoId }, todo)); }