def on_get(self, req, resp): user = getUserInfoFromSession(req, resp) bfolder = req.get_param('folder') or 'inbox' if not bfolder in [ 'inbox', 'sent', 'draft', 'star', 'archive', 'spam', 'trash' ]: resp.body = falcon.HTTP_400 return bname = getUserMessageBox(user.get('uuid'), name=True) query = riak.RiakMapReduce(riakClient).add(bname) query.map( "function(v) { var data = JSON.parse(v.values[0].data); if(data.folder == '%s') { return [[v.key, data]]; } return []; }" % bfolder) query.reduce( "function(values) { return values.sort(function(a, b){return a[1].datetime<b[1].datetime}) }" ) results = query.run() output = [] if results: for result in results: data = result[1] data['key'] = result[0] output.append(data) resp.body = output
def on_put(self, req, resp, **kw): u = getUserInfoFromSession(req, resp) targetUser = User.query.filter_by(id=u.get('id')).first() data = get_params(req.stream, flat=False) if data and data.get('body'): targetUser.reports.append(data.get('body')) resp.status = falcon.HTTP_202 resp.body = {'message': 'OK'}
def on_post(self, req, resp, key): options = get_params(req.stream, False) folder = options.get('folder') message = options.get('message') user = getUserInfoFromSession(req, resp) mdb = getUserMessageBox(user.get('uuid')) mdb.delete(key) obj = mdb.new(key, message) obj.store() resp.body = {'message': 'updated'}
def on_get(self, req, resp): user = getUserInfoFromSession(req, resp) bfolder = req.get_param('folder') or 'inbox' if not bfolder in [ 'inbox', 'sent', 'draft', 'star', 'archive', 'spam', 'trash' ]: resp.body = falcon.HTTP_400 return mdb = getUserMessageBox(user.get('uuid')) resp.body = mdb.get_keys()
def on_put(self, req, resp): user = getUserInfoFromSession(req, resp) projectData = get_params(req.stream, flat=False) start, end, name, lead_id, description = None, None, None, None, None if projectData.get('start'): start = str(projectData.get('start')) if projectData.get('end'): end = str(projectData.get('end')) if projectData.get('name'): name = str(projectData.get('name')) if projectData.get('description'): description = str(projectData.get('description')) if projectData.get('lead_id'): lead_id = int(projectData.get('lead_id')) if start and end and name and lead_id: leader = User.query.filter_by(id=lead_id).first() creater = User.query.filter_by(id=user.get('id')).first() new = Project(start=start, name=name, end=end, lead=leader, creater=creater) if description: new.description = description repoName = name newRepoFolder = os.path.join(home, '.fearlessrepo', repoName) if not os.path.isdir(newRepoFolder): os.makedirs(newRepoFolder) new_repository = Repository.query.filter( Repository.name == repoName).first() if not new_repository: new_repository = Repository(name=repoName, path=newRepoFolder) # chars_section = Collection(name='Characters', path='chars') props_section = Collection(name='Props', path='props') sets_section = Collection(name='Sets', path='sets') sequences_section = Collection(name='Sequences', path='sequences') editorial_section = Collection(name='Editorial', path='editorial') resources_section = Collection(name='Resources', path='resources') new_repository.collections.append(chars_section) new_repository.collections.append(props_section) new_repository.collections.append(sets_section) new_repository.collections.append(sequences_section) new_repository.collections.append(editorial_section) new_repository.collections.append(resources_section) new.repositories.append(new_repository) req.session.add(new) resp.status = falcon.HTTP_201 req.session.flush() resp.body = {'message': 'OK'}
def on_get(self, req, resp, **kw): u = getUserInfoFromSession(req, resp) targetUser = User.query.filter_by(id=u.get('id')).first() resp.body = [{ 'id': i.id, 'body': i.body, 'datetime': i.created_on, 'tgs': i.tgs } for i in targetUser.reps[::-1][:5]]
def on_delete(self, req, resp, taskId): user = getUserInfoFromSession(req, resp) target = Task.query.filter(Task.id == taskId).first() if target: req.session.delete(target) resp.status = falcon.HTTP_202 resp.body = {'message': 'ok', 'info': 'task deleted'} else: resp.status = falcon.HTTP_404 resp.body = {'message': 'error', 'info': 'task not found'}
def on_get(self, req, resp): user = getUserInfoFromSession(req, resp) uid = user.get('id') projects = Project.query.filter( or_(Project.lead_id == uid, Project.director_id == uid, Project.creator_id == uid, Project.watchers.any(User.id == uid))).all() involving = Project.query.join(Task)\ .join(Task.resources).filter(Task.resources.any(User.id == uid)).all() data = list(set(projects + involving)) resp.body = data
def on_post(self, req, resp, assetId): '''Get asset thumbnails from riak''' try: target = Asset.query.filter_by(id=int(assetId)).scalar() except ValueError: resp.status = falcon.HTTP_404 return userInfo = getUserInfoFromSession(req, resp) from flib.tasks import process from flib.utils.defaults import ASSETS asset_folder = os.path.join(ASSETS, target.uuid) if not os.path.isdir(asset_folder): resp.status = falcon.HTTP_204 # empty content return version = req.get_param('version') command1= 'pull origin master' command2= 'pull origin master --tags' command3= 'checkout %s' % version arg1 = 'git --git-dir="{d}/.git" --work-tree="{d}" {c}'.format( d=asset_folder, c=command1) arg2 = 'git --git-dir="{d}/.git" --work-tree="{d}" {c}'.format( d=asset_folder, c=command2) arg3 = 'git --git-dir="{d}/.git" --work-tree="{d}" {c}'.format( d=asset_folder, c=command3) LOCK = os.path.join(asset_folder, 'LOCK') if os.path.isfile(LOCK): LD = pickle.load(open(LOCK, 'rb')) now = datetime.utcnow() locktime = LD.get('datetime') if locktime and (now-locktime).seconds < 15: ## 15 seconds is maximum time for checking out resp.status = falcon.HTTP_202 resp.body = {'message':'File is busy. try again'} return LD = {'datetime':datetime.utcnow(), 'user':userInfo.get('lastname')} pickle.dump(LD, open(LOCK, 'wb')) error1, result1 = process(arg1) ## pull error2, result2 = process(arg2) ## tags error3, result3 = process(arg3) ## checkout pstKey = '%s_poster_v%s' % (target.uuid, version.split('_')[1]) thmbKey = '%s_thmb_v%s' % (target.uuid, version.split('_')[1]) poster = os.path.join( 'uploads', target.uuid + '_poster_' + version.split('_')[1] + '.png') thumbnail = os.path.join( 'uploads', target.uuid + '_thmb_' + version.split('_')[1] + '.png') fid = target.uuid + '_preview_' + version.split('_')[1] fmt = 'mp4' preview = os.path.join('uploads', fid + '.' + fmt) if os.path.isfile(LOCK): os.remove(LOCK) resp.body = {'poster': poster, 'thumbnail': thumbnail, 'version': version, 'preview': preview}
def on_post(self, req, resp, taskId): user = getUserInfoFromSession(req, resp) uid = int(user.get('id')) reviewData = get_params(req.stream, flat=False) rew = reviewData.get('review') if rew: r = Review(content=rew, reviewer_id=uid, task_id=taskId) req.session.add(r) resp.status = falcon.HTTP_201 else: resp.status = falcon.HTTP_204
def on_post(self, req, resp, taskId): user = getUserInfoFromSession(req, resp) resources, depends, responsibles, effort, alternative_resources = list( ), list(), list(), 0, list() taskData = get_params(req.stream, flat=False) if taskData.get('resources'): resources = [int(i.get('id')) for i in taskData.get('resources')] if taskData.get('updatedResponsibles'): responsibles = taskData.get('updatedResponsibles') if taskData.get('depends'): depends = [int(i.get('id')) for i in taskData.get('depends')] if taskData.get('updatedAlternativeResources'): alternative_resources = taskData.get('updatedAlternativeResources') if taskData.get('updatedWatchers'): watchers = taskData.get('updatedWatchers') complete = int(taskData.get('complete')) effort = int(taskData.get('effort')) start = str(taskData.get('start')) end = str(taskData.get('end')) title = taskData.get('title') priority = taskData.get('priority') _id = int(taskData.get('id')) priority = int(taskData.get('priority')) target = Task.query.filter(Task.id == _id).first() if target: target.title = title target.start = start target.priority = priority target.end = end target.effort = effort if effort: target.complete = complete if resources: target.resources = [] for i in resources: resource = User.query.filter(User.id == i).first() if not resource in target.project.users: target.project.users.append(resource) if resource: target.resources.append(resource) if depends: target.depends = [] for i in depends: depend = Task.query.filter(Task.id == i).first() if depend: target.depends.append(depend) resp.body = {'message': 'Task Updated'} else: resp.status = falcon.HTTP_404 resp.body = {'message': 'Task Not Found'}
def on_get(self, req, resp, projId): user = getUserInfoFromSession(req, resp) sole = req.get_param('sole') tasks = Task.query.join(Project).filter_by(id=projId) isWatcher = any(Project.query.filter_by(id=projId).\ filter(Project.watchers.any(id=user.get('id'))).all()) if sole and not isWatcher: tasks = tasks.filter( or_(Task.resources.any(id=user.get('id')), Task.watchers.any(id=user.get('id')), Task.responsibles.any(id=user.get('id')), Task.project.has(lead_id=user.get('id')))) if tasks: data = [{ 'start': i.start, 'end': i.end, 'title': i.title, 'id': i.id, 'effort': i.effort, 'gauge': i.gauge, 'complete': i.complete, 'dependent_of': [{ 'title': j.title, 'id': j.id } for j in i.dependent_of], 'depends': [{ 'title': g.title, 'id': g.id } for g in i.depends], 'resources': [{ 'id': k.id, 'lastname': k.lastname } for k in i.resources], 'reviews': [{ 'id': h.id, 'reviewer': { 'id': h.reviewer.id, 'firstname': h.reviewer.firstname, 'lastname': h.reviewer.lastname, }, 'content': h.content } for h in i.reviews], } for i in tasks.all()] resp.body = data
def on_get(self, req, resp, **kw): args = req.path.split('/') table = args[3] u = getUserInfoFromSession(req, resp) # if not isAuthorizedTo(u.get('id'), 'see_%s'%table): # raise falcon.HTTPUnauthorized('Not Authorized', 'Permission Denied') key = req.get_param('key') or 'id' if key: key = key.replace('\\', '\\\\') listMe = req.get_param('list') table = table.title() show = req.get_param('show') start = req.get_param('s') end = req.get_param('e') filters_raw = req.get_param('filters') add = req.get_param('add') or '' add = add.split(',') tags = req.get_param_as_list('tags') or [] appendix = req.get_param_as_list('appendix') or [] filters = [] if filters_raw: filters += [{ i.split('=')[0]: i.split('=')[1], '_': '==' } for i in filters_raw.split(',') if '=' in i] filters += [{ i.split('>')[0]: i.split('>')[1], '_': '>' } for i in filters_raw.split(',') if '>' in i] filters += [{ i.split('<')[0]: i.split('<')[1], '_': '<' } for i in filters_raw.split(',') if '<' in i] get_count = req.get_param('count') sort = req.get_param('sort') if not sort: sort = 'desc' order_by = req.get_param('order_by') if not order_by: order_by = 'modified_on' try: if start: start = int(start) if end: end = int(end) except ValueError, e: print e start = 0 end = 10
def on_put(self, req, resp, projId): user = getUserInfoFromSession(req, resp) taskData = get_params(req.stream, flat=False) resources, depends, manager, effort = list(), list(), 0, 0 title = taskData.get('title') if taskData.get('effort'): effort = int(taskData.get('effort')) start = taskData.get('start') end = taskData.get('end') priority = taskData.get('priority') project = Project.query.filter_by(id=int(projId)).scalar() if Project.query.join(Task).filter_by(title=title).all(): resp.status = falcon.HTTP_203 resp.body = {'message': 'task already available'} return if not start: start = project.start else: start = str(start) newTask = Task(title=title, effort=effort, project_id=project.id, start=start) newTask.priority = priority if end: newTask.end = str(end) if taskData.get('resources'): resources = [int(i.get('id')) for i in taskData.get('resources')] if taskData.get('depends'): depends = [int(i.get('id')) for i in taskData.get('depends')] if taskData.get('manager'): manager = int(taskData.get('manager').get('id')) for i in resources: resource = User.query.filter(User.id == i).first() if resource: newTask.resources.append(resource) if manager: manager = User.query.filter(User.id == manager).first() if manager: newTask.responsibles.append(manager) for i in depends: depend = Task.query.filter(Task.id == i).first() if depend: newTask.depends.append(depend) #depend = session.query(Task).filter(Task.id==depends).first() # newTask.depends.append(depend) req.session.add(newTask) resp.body = {'message': 'OK'}
def on_put(self, req, resp, **kw): args = req.path.split('/') table = args[3].title() u = getUserInfoFromSession(req, resp) # if not isAuthorizedTo(u.get('id'), 'create_%s'%table): # raise falcon.HTTPUnauthorized('Not Authorized', 'Permission Denied') query_params = get_params(req.stream, flat=False) insert_cmd = '{t}(**query_params)'.format(t=table) new = eval(insert_cmd) # for i in query_params: # setattr(new, i, query_params.get(i)) resp.status = falcon.HTTP_201 req.session.add(new) data = repr(new) resp.body = data
def on_post(self, req, resp, key): options = get_params(req.stream, False) from_folder = options.get('from_folder') or req.get_param( 'from_folder') to_folder = options.get('to_folder') or req.get_param('to_folder') if not from_folder in [ 'inbox', 'sent', 'draft', 'star', 'archive', 'spam', 'trash' ]: resp.body = falcon.HTTP_400 return if not to_folder in [ 'inbox', 'sent', 'draft', 'star', 'archive', 'spam', 'trash' ]: resp.body = falcon.HTTP_400 return if to_folder == from_folder: resp.body = falcon.HTTP_201 return user = getUserInfoFromSession(req, resp) mdb = getUserMessageBox(user.get('uuid')) message = mdb.get(key) data = message.data # lets move # if data: # target_mdb = getUserMessageBox(user.get('uuid'), to_folder) # tobj = target_mdb.new(key, data) # tobj.store() # mdb.delete(key) # resp.body = falcon.HTTP_201 # resp.body = {'message':'MOVED'} # else: # resp.status = falcon.HTTP_404 # resp.body = {'message':'Not Found'} if data: data['folder'] = to_folder mdb.delete(key) obj = mdb.new(key, data) obj.store() resp.body = falcon.HTTP_201 resp.body = {'message': 'MOVED'} else: mdb.delete(key) resp.status = falcon.HTTP_404 resp.body = {'message': 'Not Found'}
def on_get(self, req, resp, key): user = getUserInfoFromSession(req, resp) bfolder = req.get_param('folder') or 'inbox' mdb = getUserMessageBox(user.get('uuid')) if not bfolder in [ 'inbox', 'sent', 'draft', 'star', 'archive', 'spam', 'trash' ]: resp.body = falcon.HTTP_400 return data = mdb.get(key) messages = [] for message in data.siblings: result = message.data try: result['key'] = key except TypeError: pass messages.append(result) resp.body = messages
def on_post(self, req, resp, projId): user = getUserInfoFromSession(req, resp) data = get_params(req.stream, flat=False) project = Project.query.filter(Project.id == int(projId)).first() if project: project.start = data.get('start') project.name = data.get('name') project.end = data.get('end') project.description = data.get('description') if data.get('leader'): project.lead_id = data.get('leader').get('id') project.watchers = [] if data.get('watchers'): for eachWatcherId in data.get('watchers'): _id = int(eachWatcherId.get('id')) watcher = User.query.filter(User.id == _id).first() project.watchers.append(watcher) resp.body = {'message': 'OK'} else: resp.status = falcon.HTTP_404
def on_put(self, req, resp): userInfo = getUserInfoFromSession(req, resp) data = get_params(req.stream, flat=False) name = data.get('name') repository_id = data.get('repository_id') parent_id = data.get('parent_id') template = data.get('template').lower() if name and repository_id: _uid = getUUID() newC = Collection( name=name, uuid=_uid, path=name, repository_id=repository_id, owner_id=userInfo.get('id')) if parent_id: newC.parent_id = parent_id if template: newC.template = template # if not os.path.isdir(newC.url): req.session.add(newC) req.session.flush() resp.body = {'message': 'OK', 'info': {'uuid': _uid}}
def on_get(self, req, resp, date): user = getUserInfoFromSession(req, resp) uid = int(user.get('id')) now = datetime.datetime.utcnow today = now().strftime('%Y-%m-%d') tomorrow = (now() + datetime.timedelta(hours=24)).strftime('%Y-%m-%d') if date == 'today': '''These are tasks that started today and not finished yet''' data = Task.query.filter(Task.resources.any(id=uid))\ .filter(Task.start <= now())\ .filter(Task.complete < 100).filter(Task.end > now()).all() elif date == 'before': '''These are tasks that should have been ended before nut not completed yet''' data = Task.query.filter(Task.resources.any(id=uid))\ .filter(Task.end <= now()).filter(Task.complete < 100).all() resp.body = [{ 'title': i.title, 'id': i.id, 'project': { 'id': i.project.id, 'name': i.project.name, } } for i in data]
def on_post(self, req, resp): user = getUserInfoFromSession(req, resp) message = get_params(req.stream, False) TO = None if message.get('to'): TO = req.session.query(User).filter_by( id=message.get('to').get('id')).first() FROM = req.session.query(User).filter_by( email=user.get('email')).first() _from = user.get('email') _from_fn = user.get('firstname') _from_ln = user.get('lastname') data = { 'to_s': { 'firstname_s': TO.firstname if TO else None, 'lastname_s': TO.lastname if TO else None, 'email_s': TO.email if TO else None, 'id': TO.id if TO else None, }, 'from_s': { 'firstname_s': FROM.firstname, 'lastname_s': FROM.lastname, 'email_s': FROM.email, 'id': FROM.id }, 'read': False, 'attachments': [], 'body_s': message.get('body'), 'subject_s': message.get('subject'), 'folder': 'sent', 'stared': False, 'flagged': False, 'datetime': time.time() } target_data = data.copy() bfolder = message.get('folder') or 'sent' if not bfolder in [ 'inbox', 'sent', 'draft', 'star', 'archive', 'spam', 'trash' ]: resp.body = falcon.HTTP_400 return if not TO or not message.get('subject') or message.get('draft'): bfolder = 'draft' target_data = {} data['folder'] = 'draft' if FROM and message.get('body'): key = getUUID() if data: from_mdb = getUserMessageBox(FROM.uuid) obj = from_mdb.new(key, data) obj.store() if target_data: to_mdb = getUserMessageBox(TO.uuid) target_data['folder'] = 'inbox' tobj = to_mdb.new(key, target_data) tobj.store() mail_body = misaka.html('_____\n %s \n_____' % message.get('body')) mail_subject = ('New message from %s: ' % FROM.firstname) + message.get('subject') sent = send_envelope.delay([TO.email], [], [], mail_subject, mail_body, FROM.email) if data: resp.body = {'message': data, 'key': key} else: resp.status = falcon.HTTP_201 else: resp.status = falcon.HTTP_400 resp.body = { 'message': 'error', 'info': 'subject, to and body needed.' }
def on_put(self, req, resp, repo): ''' Get data based on a file object or b64 data, save and commit it repo can be repository name or id. ''' cr = req.headers.get('CONTENT-RANGE') userInfo = getUserInfoFromSession(req, resp) uploader = userInfo.get('id') try: repo = int(repo) targetRepo = Repository.query.filter_by(id=repo).scalar() except ValueError: targetRepo = Repository.query.filter_by(name=repo).scalar() if not uploader: uploader = -1 targetRepo = Repository.query.filter_by(name='public').scalar() targetUser = User.query.filter_by(id=uploader).scalar() if not targetRepo: targetRepo = Repository.query.filter_by(name=repo).scalar() if not targetRepo: targetRepo = Repository( name=repo, path=os.path.join(public_repository_path, repo)) req.session.add(targetRepo) ''' When client sends md5, it means that there is probabaly an exsisting file with that md5 So we server doesnt need file data. Just need to link old data ''' _md5 = req.get_param('md5') tags = [] _tags = req.get_param('tags') if _tags: tags = [tag.strip() for tag in _tags.split(',')] _cid = req.get_param('collection_id') collection = None if _cid: collection = Collection.query.filter_by(repository=targetRepo)\ .filter_by(id=_cid).scalar() _cname = req.get_param('collection') if _cname: collection = Collection.query.filter_by(repository=targetRepo)\ .filter_by(name=_cname).scalar() if not collection: now = arrow.utcnow() today = now.format('YYYY-MM-DD') cpath = '%s.%s'%(userInfo.get('alias'), today) collection = Collection.query.filter_by(path=cpath)\ .filter_by(repository=targetRepo).scalar() if not collection: collection = Collection(path=cpath, repository=targetRepo) req.session.add(collection) _subpath = req.get_param('subpath') if _subpath: sub_collections = _subpath.strip().split('/')[:-1] _scp = None for sc in sub_collections: scdb = Collection.query.filter_by(repository=targetRepo)\ .filter_by(parent=_scp or collection).filter_by(name=sc).first() if not scdb: scdb = Collection(path=sc, parent=_scp or collection, repository=targetRepo) req.session.add(scdb) req.session.flush() _scp = scdb if sub_collections: collection = scdb ## set collection to last subpath folder body = req.stream b64 = req.get_param('b64') thumbnail = req.get_param('thmb') mt = req.get_param('multipart') mtname = None if mt: try: fs = cgi.FieldStorage(fp=req.stream, environ=req.env) except (ValueError, IOError): resp.status = falcon.HTTP_400 resp.body = {'message': 'Error in myltipart data'} return _cgi_data = fs['files[]'] body = _cgi_data.file if fs.has_key('thumbnail'): # thumbnails are dataURLs thumbnail = fs['thumbnail'].file.read() mtname = _cgi_data.filename attach_to = req.get_param('attach_to') if targetRepo and (body or _md5): if not mtname: name = req.get_param( 'name') or 'undefined.%s.raw' % _generate_id() else: name = mtname if name: name = slugify_filename(name) name = name.decode('utf-8') assetExt = name.split('.')[-1] content_type = contenttype(name) assetPath = name tempraryStoragePath = path.join(targetRepo.path, collection.path, name) #name = os.path.basename(tempraryStoragePath) if _md5: availableAsset = Asset.query.filter_by(key=_md5).join( Collection).filter_by(repository_id=targetRepo.id).first() if availableAsset: # create folder if not available checkPath(os.path.dirname(tempraryStoragePath)) if os.path.isfile(tempraryStoragePath): os.remove(tempraryStoragePath) os.symlink(availableAsset.full_path, tempraryStoragePath) bodyMd5 = _md5 else: resp.status = falcon.HTTP_404 return else: if body: bodyMd5 = safeCopyAndMd5( req, body, tempraryStoragePath, targetRepo.id, targetUser, b64=b64, content_range=cr) # in uploading progress if bodyMd5 in ['IN_PROGRESS', 'IN_PROGRESS_NEW']: resp.body = {'info': bodyMd5} resp.status = falcon.HTTP_206 return else: resp.status = falcon.HTTP_204 return fullname = name name = (name[:10] + '..') if len(name) > 10 else name asset = Asset.query.filter( Asset.repository == targetRepo).filter_by(collection=collection)\ .filter_by(fullname=fullname).scalar() resp.status = falcon.HTTP_200 if not asset: _uid = getUUID() asset = Asset(key=bodyMd5, version=1, repository=targetRepo, uuid=_uid, collection=collection, name=name, fullname=fullname, path=assetPath, ext=assetExt, owner_id=targetUser.id) req.session.add(asset) resp.status = falcon.HTTP_201 else: if not bodyMd5 == asset.key: asset.version += 1 asset.name = name asset.fullname = fullname asset.key = bodyMd5 # Asset descriptionspath asset.path = assetPath if req.get_param('description'): asset.description = req.get_param('description') if targetUser: asset.modifiers.append(targetUser) asset.users.append(targetUser) if thumbnail: # thumbnail is base64 format fmt = 'png' fid = asset.uuid + '_thmb_' + str(asset.version) result = os.path.join('uploads', fid + '.' + fmt) thmbpath = os.path.join(public_upload_folder, fid + '.' + fmt) thmb_data = decodestring(unquote(thumbnail).split(',')[1]) with open(thmbpath, 'wb') as f: f.write(thmb_data) if attach_to: parent_id = int(attach_to) parent = Asset.query.filter_by(id=parent_id).scalar() asset.attached_to.append(parent) task_id = req.get_param('task_id') if task_id: target_task = Task.query.filter_by(id=task_id).scalar() target_task.assets.append(asset) if tags: asset.tags += tags collection.tags += tags req.session.flush() resp.body = {'key': asset.key, 'id':asset.id, 'url': asset.url, 'fullname': asset.fullname, 'uuid': asset.uuid, 'name': asset.name, 'content_type': asset.content_type.split('/')[0], 'datetime': time.time()} #resp.body = "I am working" else: # lets consume the stream! while True: chunk = req.stream.read(2 ** 22) if not chunk: break resp.status = falcon.HTTP_400 resp.body = {'message': 'Something Wrong!'}
def on_delete(self, req, resp, id): target = Asset.query.filter_by(id=id).scalar() userInfo = getUserInfoFromSession(req, resp) if userInfo.get('id') == target.owner.id: req.session.delete(target) resp.status = falcon.HTTP_202