示例#1
0
 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))
示例#2
0
  def list_handler_method(self, *args):
    list_id = args[0]
    list_id = long(list_id)
    my_list = TodoList.get_by_id(list_id)
    if not my_list:
      self.not_found()
      return

    args = list(args)
    args[0] = my_list
    return method(self, *args)
示例#3
0
 def get(self, account_id, todo_list_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_list_dict = todo_list.to_dict(exclude=['account', 'created', 'updated'])
         self.response.out.write(json.dumps(todo_list_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))
示例#4
0
 def get(self, account_id, todo_list_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_items = TodoItem.query(TodoItem.todo_list == todo_list.key,
                                     ancestor=todo_list.key).order(-TodoItem.created)
         todo_items_array = []
         for item in todo_items:
             item_dict = item.to_dict(exclude=['created', 'updated', 'todo_list'])
             item_dict['id'] = item.key.id()
             todo_items_array.append(item_dict)
         result = {'todo_items': todo_items_array}
         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))
示例#5
0
 def post(self, account_id, todo_list_id):
     self.response.headers['Content-Type'] = 'application/json'
     try:
         data = json.loads(self.request.body)
         items = data.get('items', [data])
         account = Account.get_by_id(int(account_id))
         todo_list = TodoList.get_by_id(id=int(todo_list_id), parent=account.key)
         item_array = []
         for item_data in items:
             item = TodoItem(text=item_data.get('text'), status=item_data.get('status'), todo_list=todo_list.key,
                             parent=todo_list.key)
             item.put()
             item_array.append({'id': item.key.id()})
         result = {'items': item_array}
         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))