def save(self, uuid, data): """ Save data and resolve the path for the children """ if 'slug' not in data: raise InvalidDataFormat("The data must contain a `slug` key: %s" % (data)) if not uuid: uuid = generate_uuid() if 'id' in data: data['_id'] = ObjectId(data['id']) del(data['id']) data['uuid'] = uuid self.resolve_parents(data) self.fix_paths(data) data['_id'] = self.get_collection().save(data) self.fix_children(data) self.normalize([data]) return data
def __init__(self, uuid=None, data=None): self.methods = {} self.uuid = uuid or generate_uuid() self.manager = None # set default values self.id = None self.path = None self.data = {} self.type = None self.enabled = True self.status = 0 self.created_at = datetime.datetime.now() self.updated_at = datetime.datetime.now() self.version = 1 self.revision = 1 self.deleted = False self.current = True self.set_uuid = None self.weight = 0 self.set = None if not data: return self.define(data)
def save(self, uuid, data): """ Save data and resolve the path for the children """ if 'slug' not in data: raise InvalidDataFormat("The data must contain a `slug` key: %s" % (data)) if not uuid: uuid = generate_uuid() data['uuid'] = uuid kwargs = { 'index': self.index, 'doc_type': 'node', 'body': data, # refresh=True, this is not ideal but required to have real time data inside the index 'refresh': True } if 'id' in data: kwargs['id'] = data['id'] del(data['id']) self.resolve_parents(data) self.fix_paths(data) res = self.client.index(**kwargs) data['id'] = res['_id'] self.fix_children(data) # self.normalize([data]) return data