class FilesWrapper(object): def __init__(self, db, *args, **kwargs): self.storage = GridFS(db) self.comments_wrapper = CommentsWrapper(db) def list(self): """ Returns are list of files. """ uuids = {f.uuid: {'name': f.filename, 'uuid': f.uuid, 'comments': 0, 'version': f.version} for f in self.storage.find()} comments = self.comments_wrapper.get_grouped_counts(uuids.keys()) def _up(uuid, count): uuids[uuid]['comments'] = count return uuids[uuid] return [_up(*c) for c in comments] def get(self, uuid, version=0): """ Return selected file or None if they does not exists. """ try: return self.storage.get_version(uuid=uuid, version=version) except NoFile: return None def add(self, file): """ Save file into storage. Give him uuid. """ uuid = unicode(uuid4()) self.storage.put(file, filename=file.filename, uuid=uuid, version=0) return uuid
def __init__(self, db, *args, **kwargs): self.storage = GridFS(db) self.comments_wrapper = CommentsWrapper(db)