def upload_image(): """ Upload an image to a list, return JSON. """ list_id = request.form.get("list_id") base64_str = request.form.get("file") if not list_id: return error(Error.EMPTY_LIST_ID, 400) if not base64_str: return error(Error.EMPTY_IMAGE, 400) if not List.has_access_to(g.user.netid, list_id): return error(Error.NO_ACCESS_TO_LIST, 400) decoded = base64.decodestring(base64_str) filename = str(uuid.uuid4()) + ".png" image_path = app.config['IMAGE_PATH'] + filename with open(image_path, "wb") as f: f.write(decoded) card = Card.add_card(list_id, filename, True) image_path = app.config['IMAGE_PATH'] + filename thread = Thread(target=async_ocr, args=[app, image_path, card.id]) thread.start() return ok({"created": True, "card": card.to_dict()})
def delete_list(list_id): """ Deletes a list. """ if not List.has_access_to(g.user.netid, list_id): return redirect(url_for('board')) List.delete_list_by_id(list_id) return jsonify({"deleted": True})
def list_(list_id): """ Returns all cards in the list specified by list id. """ if not List.has_access_to(g.user.netid, list_id): return error(Error.NO_ACCESS_TO_LIST) l = List.get_list_by_id(list_id).to_dict() cards = List.get_cards_by_list_id(list_id) l['cards'] = map(lambda x: x.to_dict(), cards) return ok({"list": l})
def add_card(): """ Adds a card to a list. """ content = request.form.get("content") list_id = request.form.get("list_id") if not content: return error(Error.EMPTY_CONTENT, 400) if not List.has_access_to(g.user.netid, list_id): return error(Error.NO_ACCESS_TO_BOARD, 400) card = Card.add_card(list_id, content) return ok({"created": True, "card": card.to_dict()})
def list_(list_id): """ Returns or deletes the list specified by list id. """ if not List.has_access_to(g.user.netid, list_id): return error(Error.NO_ACCESS_TO_LIST) if request.method == 'GET': l = List.get_list_by_id(list_id).to_dict() cards = List.get_cards_by_list_id(list_id) l['cards'] = map(lambda x: x.to_dict(), cards) return ok({"list": l}) if request.method == 'DELETE': List.delete_list_by_id(list_id) return ok({"deleted": True})
def add_card(): """ Adds a card specified by card content and list id. Returns the created card id. """ content = request.form.get("content") list_id = request.form.get("list_id") if not content: return error(Error.EMPTY_CONTENT, 400) elif not list_id: return error(Error.EMPTY_LIST_ID, 400) if not List.has_access_to(g.user.netid, list_id): return error(Error.NO_ACCESS_TO_BOARD, 400) card = Card.add_card(list_id, content) return ok({"created": True, "card": card.to_dict()})