def update_impl(Model, Message, itemId, request): item = ferris3.ToolChain(itemId) \ .ndb.get() \ .raise_if(None, ferris3.NotFoundException()) \ .ndb.check_kind(Model) \ .value() return ferris3.ToolChain(request) \ .messages.deserialize(item) \ .ndb.put() \ .messages.serialize(Message) \ .value()
def get_impl(Model, Message, itemId): return ferris3.ToolChain(itemId) \ .ndb.get() \ .raise_if(None, ferris3.NotFoundException()) \ .ndb.check_kind(Model) \ .messages.serialize(Message) \ .value()
def insert_with_keyname_impl(Model, Message, request): raw_model = ferris3.ToolChain(request) \ .messages.deserialize(Model) \ .value() # if keyname parameter is sent in request if request.keyname: raw_model.key = ndb.Key(Model, request.keyname) # set keyname if request.parent: parent_key = ndb.Key(urlsafe=request.parent) raw_model.key = ndb.Key(Model, request.keyname, parent=parent_key) # set parent_key raw_model.put() return ferris3.ToolChain(request) \ .value()
def searchable_list_impl(ListMessage, index, query, limit, sort, pageToken): def check_for_search_errors(data): if data.error: raise ferris3.BadRequestException("Search error: %s" % data.error) return ferris3.ToolChain(query) \ .search.search(index, sort=sort, limit=limit, page_token=pageToken) \ .tap(check_for_search_errors) \ .search.to_entities() \ .messages.serialize_list(ListMessage) \ .value()
def list_impl(ListMessage, query): return ferris3.ToolChain(query) \ .messages.serialize_list(ListMessage) \ .value()
def insert_impl(Model, Message, request): return ferris3.ToolChain(request) \ .messages.deserialize(Model) \ .ndb.put() \ .messages.serialize(Message) \ .value()
def delete_impl(Model, itemId): return ferris3.ToolChain(itemId) \ .ndb.key() \ .ndb.check_kind(Model) \ .ndb.delete() \ .value()
def paginated_list_impl(ListMessage, query, limit, pageToken): return ferris3.ToolChain(query) \ .ndb.paginate(limit=limit, page_token=pageToken) \ .messages.serialize_list(ListMessage) \ .value()