def delete_todo_item(todo_id: str, item_id: str): is_valid_item_id = validate_id(todo_id) is_valid_id = validate_id(item_id) if not is_valid_item_id or not is_valid_id: raise HTTPException(status_code=HTTP_400_BAD_REQUEST, detail="ToDo or ToDo id is not valid.") item = delete_item(item_id) if item.deleted_count: return HTTPException(status_code=200) raise HTTPException(status_code=HTTP_404_NOT_FOUND, detail="ToDoItem not found")
def create_todo_item(todo_id, item: ToDoBaseItem): is_valid_item_id = validate_id(todo_id) is_valid_id = validate_id(item.todo_id) if not is_valid_item_id or not is_valid_id: raise HTTPException(status_code=HTTP_400_BAD_REQUEST, detail="ToDo or ToDo id is not valid.") todo = get_todo_by_id(todo_id) if not todo: raise HTTPException(status_code=404, detail="ToDo not found") return add_todo_item(item)
def update_todo_item(todo_id: str, item_id: str, todo_item_data: ToDoItem): is_valid_item_id = validate_id(todo_id) is_valid_model_id = validate_id(todo_item_data.todo_id) is_valid_id = validate_id(todo_id) if not all([is_valid_item_id, is_valid_id, is_valid_model_id]): raise HTTPException(status_code=HTTP_400_BAD_REQUEST, detail="ToDo or ToDo id is not valid.") item = update_item(item_id, todo_item_data) if not item: raise HTTPException(status_code=HTTP_404_NOT_FOUND, detail="ToDoItem not found") return item
def delete_todo(todo_id: str): is_valid_id = validate_id(todo_id) if not is_valid_id: raise HTTPException(status_code=HTTP_400_BAD_REQUEST, detail="ToDo id is not valid.") todo = remove_todo(todo_id) if todo.deleted_count: return HTTPException(status_code=200) raise HTTPException(status_code=HTTP_404_NOT_FOUND, detail="ToDo not found")
def get_todo(todo_id: str): is_valid_id = validate_id(todo_id) if not is_valid_id: raise HTTPException(status_code=HTTP_400_BAD_REQUEST, detail="ToDo id is not valid.") todo = get_todo_by_id(todo_id) if not todo: raise HTTPException(status_code=HTTP_404_NOT_FOUND, detail="ToDo not found") todo["items"] = get_todo_item_by_todo_id(todo_id) return todo
def update_todo(todo_id: str, todo_data: ToDoBase): is_valid_id = validate_id(todo_id) if not is_valid_id: raise HTTPException(status_code=HTTP_400_BAD_REQUEST, detail="ToDo id is not valid.") todo = change_todo(todo_id, todo_data) if not todo: raise HTTPException(status_code=HTTP_404_NOT_FOUND, detail="ToDo not found") return todo