def newBlibb(): name = request.form['bname'] desc = request.form['bdesc'] template = request.form['btemplate'] key = request.form['bkey'] user = get_user_name(key) image_id = request.form['bimage'] slug = request.form['slug'] write_access = request.form['write_access'] read_access = request.form['read_access'] # check if a blibb with that slug already exists blibb = Blibb.get_by_slug(user, slug) # return jsonify(blibb) if not blibb: res = {'error': 'None'} if is_valid_id(image_id): image = Picture.dump_image(image_id) else: image = 'blibb.png' new_id = Blibb.insert(user, name, slug, desc, template, image, read_access, write_access) res = {'id': new_id} else: res = {'error': 'Blibb with that slug already exists'} return jsonify(res)
def newItem(): bid = request.form['blibb_id'] key = request.form['login_key'] tags = request.form['tags'] app_token = request.form['app_token'] user = get_user_name(key) current_app.logger.info('labels: ' + str(user)) if is_valid_id(bid): b = Blibb.get_object({'_id': ObjectId(bid)}, {'u': 1, 't.i': 1}) controls = Blibb.get_controls_as_dict(b.get('t')) current_app.logger.info(controls) if Blibb.can_write(user, app_token, bid): # labels = Blibb.get_labels(b.get('t')) # current_app.logger.info('labels: ' + str(labels)) bitems = Blitem.get_items_from_request(controls, request) current_app.logger.info('items from request: ' + str(bitems)) blitem_id = Blitem.insert(bid, user, bitems, tags) if blitem_id: cond = {'_id': ObjectId(bid)} Blibb.inc_num_item(cond) Blitem.post_process(blitem_id, bitems) return blitem_id else: abort(401) return jsonify(Message.get('id_not_valid'))
def newTag(): target_id = None key = request.form['k'] user = get_user_name(key) target_id = request.form['i'] if Blitem.isOwner(target_id, user): tag = request.form['t'] Blitem.addTag(target_id, tag) return jsonify({'response': 'ok'})
def newTag(): target_id = None target = None key = request.form['k'] user = get_user_name(key) target_id = request.form['b'] if Blibb.can_write(target_id, user): tag = request.form['t'] target.addTag(target_id, tag) return json.dumps('ok')
def deleteBlitem(blitem_id=None, login_key=None): user = get_user_name(login_key) if user: if is_valid_id(blitem_id): if Blitem.can_write(user, blitem_id): current_app.logger.error(blitem_id) Blitem.remove({'_id': ObjectId(blitem_id)}) return jsonify({'response': 'deleted'}) abort(404) abort(401)
def add_controls(): template = request.form["template"] controls = request.form["controls"] key = request.form["login_key"] user = utils.get_user_name(key) res = "Something went wrong" current_app.logger.info("template: " + utils.cleanup(template)) current_app.logger.info("controls" + str(controls)) # if utils.is_valid_id(template): res = ControlTemplate.add_controls(utils.cleanup(template), controls, user) # else: # jsonify(Message.get('id_not_valid')) return jsonify({"result": res})
def newPicture(): e = Event('getImage.newPicture') pict = Picture() blibb = request.form['b'] key = request.form['k'] user = get_user_name(key) items = dict() r = pict.create(user, items, blibb) e.save() if r != 'null': return r else: abort(404)
def updateView(): blibb_id = request.form['blibb_id'] user = get_user_name(request.form['login_key']) view = request.form['viewName'] html = request.form['viewHtml'] # current_app.logger.info(user + ' ' + blibb_id + ' ' + view + ' ' + html) if is_valid_id(blibb_id): if Blibb.can_write(user, '', blibb_id): Blibb.update_view(blibb_id, user, view, html) return jsonify({'result': 'View Updated'}) else: abort(401) abort(404)
def upload(): current_app.logger.info('Upload Image') login_key = request.form.get('login_key', False) # app_token = request.form.get('app_token', False) app_user = request.form.get('u', False) if login_key: user = get_user_name(login_key) else: user = app_user if 'file' in request.files: file = request.files['file'] if is_image(file.filename): object_id = Picture.create(user, {}, file.filename) elif is_attachment(file.filename): object_id = Attachment.create(user, {}, file.filename) filename = secure_filename(object_id + '-' + file.filename) c = connect_s3() bucket_name = get_config_value('BUCKET') bucket = c.create_bucket(bucket_name) k = Key(bucket) k.key = user + '/' + filename k.set_metadata('owner', user) extension = os.path.splitext(filename)[1] k.content_type = file.content_type current_app.logger.info('Extension: ' + str(extension)) current_app.logger.info('file.content_type: ' + str(file.content_type)) if extension.lower() == '.jpg': k.content_type = 'image/jpeg' if extension.lower() == '.png': k.content_type = 'image/png' if extension.lower() == '.gif': k.content_type = 'image/gif' current_app.logger.info('Extension: ' + str(extension)) current_app.logger.info('file.content_type: ' + str(k.content_type)) k.set_contents_from_string(file.read()) k.make_public() url = 'http://%s/%s' % (bucket_name, k.key) current_app.logger.info( '########## url: ' + str(url) + ' ' + str(bucket) ) if is_image(file.filename): Picture.add_url(object_id, url) elif is_attachment(file.filename): object_id = Attachment.add_url(object_id, file.filename) return jsonify({'upload': url}) return jsonify({'upload': 'error'})
def newBookmark(song_id=None): e = Event('web.content.newBookmark') bk = Bookmark() t = request.form['title'] b = request.form['b'] bn = request.form['bn'] k = request.form['k'] user = get_user_name(k) url = request.form['url'] tags = [] if 'tags' in request.form: tags = request.form['tags'] bk_id = bk.insert(b, user, url, t, bn, tags) e.save() return jsonify({'result': str(bk_id)})
def newTemplate(): name = request.form["template_name"] desc = request.form["template_description"] key = request.form["login_key"] thumb = request.form["thumbnail"] user = utils.get_user_name(key) # check if that template exists filter = {"n": name, "u": user} current_app.logger.info(filter) template = ControlTemplate.get_object(filter, {"_id": 1}) if template is None: res = ControlTemplate.insert(name, desc, user, thumb) else: res = str(template.get("_id", "")) return jsonify({"result": res})
def new_control(): e = Event('web.new_control') key = request.form['login_key'] name = request.form['control_name'] ui = request.form['control_ui'] type = request.form['control_type'] read = request.form['control_read'] write = request.form['control_write'] button = request.form['control_button'] user = utils.get_user_name(key) cid = Control.insert(name, user, ui, type, read, write, button) res = {'id': cid} e.save() return jsonify(res)
def publishTemplate(): template_id = request.form["template_id"] key = request.form["login_key"] user = utils.get_user_name(key) template = ControlTemplate.get_by_id(template_id) owner = template["owner"] if owner == user: r = ControlTemplate.publish_default(template_id) if r: res = {"result": "ok"} else: res = {"error": "Publishing failed"} else: res = {"error": "Only the owner can publish"} return jsonify(res)
def loader_excel(): event = Event('web.content.loader_excel') key = request.form['login_key'] bid = request.form['blibb_id'] user = get_user_name(key) res = dict() file = request.files['file'] if file and allowed_file(file.filename): try: filename = secure_filename(file.filename) excel_file = os.path.join( get_config_value('UPLOAD_FOLDER'), filename ) file.save(excel_file) if is_valid_id(bid): fields = Blibb.get_fields(bid) excel_data = loader.excel_to_dict(excel_file, fields) current_app.logger.debug(excel_data) if len(excel_data): a = Blitem.bulk_insert(bid, user, excel_data) current_app.logger.debug(a) res['result'] = 'ok' else: res['error'] = 'No data found in file' else: if bid == '-1': res['error'] = 'create new blibb from file' res['error'] = 'Object Id is not valid' # except Exception, e: # current_app.logger.error(e) # res['error'] = 'Error processing spreadsheet' finally: if os.path.isfile(filename): os.unlink(filename) else: res['error'] = 'File was not uploaded' event.save() return jsonify(res)
def deleteBlibb(blibb_id=None, login_key=None): user = get_user_name(login_key) if is_valid_id(blibb_id): filter = {'_id': ObjectId(blibb_id), 'u': user} Blibb.remove(filter) return jsonify({'ret': 1})
def voteDown(blibb_id=None, page=1): item_id = request.form['item_id'] key = request.form['login_key'] user = get_user_name(key) r = Blitem.vote_down(item_id, user) return jsonify(r)
def fork(): key = request.form['login_key'] user = get_user_name(key) target_id = request.form['b'] Blibb.fork(target_id, user) return json.dumps('ok')
def get_all_templates(login_key=None): user = utils.get_user_name(login_key) templates = ControlTemplate.get_templates_by_user(user) return jsonify({"result": templates})