コード例 #1
0
def handle_slack_request():
    import logging
    logging.error(flask.request.form['text'])
    command_text = flask.request.form['text']
    identifiers = command_text.split()
    available = [entry['identifier'] for entry in main.list_restaurants()]
    regions = ('ki', 'bmc', 'uu', 'uppsala', 'solna')

    text = ''
    for identifier in identifiers:
        if identifier not in available and identifier.lower() not in regions:
            text = f'*Available restaurants:*\n'
            for entry in main.list_restaurants():
                text += f'- {entry["name"]}: `{entry["identifier"]}`\n'
            break
        elif identifier.lower() in regions:
            if identifier.lower() in ('solna', 'ki'):
                new_ids = [
                    entry['identifier'] for entry in main.list_restaurants()
                    if entry['campus'] == 'Solna'
                ]
            else:
                new_ids = [
                    entry['identifier'] for entry in main.list_restaurants()
                    if entry['campus'] == 'Uppsala'
                ]
            for ident in new_ids:
                restaurant_data = dict(main.get_restaurant(ident))
                text += f'*{restaurant_data["title"]}*\n'
                for dish in restaurant_data['menu']:
                    text += f'- {dish}\n'
        else:
            restaurant_data = dict(main.get_restaurant(identifier))
            text += f'*{restaurant_data["title"]}*\n'
            for dish in restaurant_data['menu']:
                text += f'- {dish}\n'

    response = {
        "blocks": [{
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": text
            }
        }]
    }
    return flask.jsonify(response)
コード例 #2
0
def handle_slack_command():
    command_text = flask.request.form["text"]
    identifiers = command_text.split()
    available = [entry["identifier"] for entry in main.list_restaurants()]
    regions = ("ki", "bmc", "uu", "uppsala", "solna")

    text = ""
    for identifier in identifiers:
        if identifier in available:
            restaurant_data = dict(main.get_restaurant(identifier))
            text += f'*{restaurant_data["title"]}*\n'
            for dish in restaurant_data["menu"]:
                text += f"- {dish}\n"
        elif identifier.lower() in regions:
            if identifier.lower() in ("solna", "ki"):
                new_ids = [
                    entry["identifier"] for entry in main.list_restaurants()
                    if entry["campus"] == "Solna"
                ]
            else:
                new_ids = [
                    entry["identifier"] for entry in main.list_restaurants()
                    if entry["campus"] == "Uppsala"
                ]
            for ident in new_ids:
                restaurant_data = dict(main.get_restaurant(ident))
                text += f'*{restaurant_data["title"]}*\n'
                for dish in restaurant_data["menu"]:
                    text += f"- {dish}\n"
        else:
            text = list_identifiers()
            break
    if not identifiers:
        text = list_identifiers()

    response = {
        "blocks": [{
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": text
            }
        }]
    }
    return flask.jsonify(response)
コード例 #3
0
def get_restaurant(name):
    data = dict(main.get_restaurant(name))
    if not data:
        flask.abort(status=404)
    data["menu"] = [{"dish": entry} for entry in data["menu"]]
    return flask.jsonify({
        "restaurant":
        data,
        "url":
        flask.url_for("get_restaurant", name=name, _external=True)
    })
コード例 #4
0
def api_get_restaurant(name):
    data = main.get_restaurant(name)
    if not data:
        abort(404)
    return jsonify(data)
コード例 #5
0
ファイル: flask_app.py プロジェクト: andersmoldin/lunch-menu
def nbis_api_get_restaurant(name):
    data = main.get_restaurant(name)
    if not data:
        abort(status=404)
    data['menu'] = [{'dish': entry} for entry in data['menu']]
    return jsonify({'restaurant': data})