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)
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)
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) })
def api_get_restaurant(name): data = main.get_restaurant(name) if not data: abort(404) return jsonify(data)
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})