예제 #1
0
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()})
예제 #2
0
파일: list.py 프로젝트: CoCornell/CoCornell
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})
예제 #3
0
파일: card.py 프로젝트: CoCornell/CoCornell
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})
예제 #4
0
파일: card.py 프로젝트: CoCornell/CoCornell
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()})
예제 #5
0
파일: list.py 프로젝트: CoCornell/CoCornell
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})
예제 #6
0
파일: card.py 프로젝트: CoCornell/CoCornell
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()})