def post(self, account_id, todo_list_id, todo_item_id): self.response.headers['Content-Type'] = 'application/json' try: account = Account.get_by_id(int(account_id)) todo_list = TodoList.get_by_id(id=int(todo_list_id), parent=account.key) item_data = json.loads(self.request.body) todo_iem = TodoItem.get_by_id(id=int(todo_item_id), parent=todo_list.key) if todo_iem: todo_iem.populate(**item_data) todo_iem.put() item_dict = todo_iem.to_dict(exclude=['created', 'updated', 'todo_list']) item_dict['id'] = todo_iem.key.id() self.response.out.write(json.dumps(item_dict)) else: result = {'error': 'Bad Request', 'message': 'Invalid todo item %s' % todo_item_id} self.response.set_status(400, json.dumps(result)) self.response.out.write(json.dumps(result)) except AttributeError as ae: result = {'error': 'Bad request', 'message': ae.message} self.response.set_status(400, json.dumps(result)) self.response.out.write(json.dumps(result)) except Exception as e: result = {'error': 'Unexpected error has occurred', 'message': e.message} self.response.set_status(500, json.dumps(result)) self.response.out.write(json.dumps(result))
def task_handler_method(self, my_list, task_id): task_id = long(task_id) task = TodoItem.get_by_id(task_id, parent=my_list) if not task: self.not_found() return return method(self, my_list, task)
def get(self, account_id, todo_list_id, todo_item_id): self.response.headers['Content-Type'] = 'application/json' try: account = Account.get_by_id(int(account_id)) todo_list = TodoList.get_by_id(id=int(todo_list_id), parent=account.key) todo_item = TodoItem.get_by_id(id=int(todo_item_id), parent=todo_list.key) todo_item_dict = todo_item.to_dict(exclude=['todo_list', 'created', 'updated']) self.response.out.write(json.dumps(todo_item_dict)) except Exception as e: result = {'error': 'Unexpected error has occurred', 'message': e.message} self.response.set_status(500, json.dumps(result)) self.response.out.write(json.dumps(result))