From e92821f361ca0241bb84ca0ed67628e89e82858d Mon Sep 17 00:00:00 2001 From: quirinecker Date: Fri, 2 Feb 2024 23:40:05 +0100 Subject: [PATCH] removed ip from the get data --- Pipfile | 1 + Pipfile.lock | 10 +++++++++- main.py | 13 +++++++++++-- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/Pipfile b/Pipfile index e59a21f..26e3f75 100644 --- a/Pipfile +++ b/Pipfile @@ -10,6 +10,7 @@ name = "pypi" [packages] flask = "*" waitress = "*" +flask-cors = "*" [dev-packages] diff --git a/Pipfile.lock b/Pipfile.lock index 88e9302..95b762f 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "55dd8ff3f43a47010e3f0f9497177fc8d3f6c58f3267432762ab355a03a60699" + "sha256": "bf145a7efea7bf54e12a44f98f5337716c953c98a41c5bed4b450576748ab614" }, "pipfile-spec": 6, "requires": { @@ -41,6 +41,14 @@ "markers": "python_version >= '3.8'", "version": "==3.0.1" }, + "flask-cors": { + "hashes": [ + "sha256:bc3492bfd6368d27cfe79c7821df5a8a319e1a6d5eab277a3794be19bdc51783", + "sha256:f268522fcb2f73e2ecdde1ef45e2fd5c71cc48fe03cffb4b441c6d1b40684eb0" + ], + "index": "pypi", + "version": "==4.0.0" + }, "itsdangerous": { "hashes": [ "sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44", diff --git a/main.py b/main.py index a20ec8f..bcdf40d 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,7 @@ from typing import Any from flask import Flask, json, request from dataclasses import dataclass +from flask_cors import CORS, cross_origin @dataclass class Score: @@ -8,7 +9,13 @@ class Score: username: str ip: str | None = None +@dataclass() +class ScoreDTO: + score: int + username: str + app = Flask(__name__) +cors = CORS(app) scores: list[Score] = [] @app.route('/') @@ -16,11 +23,13 @@ def root(): return 'This is the snakes backend for the leaderboard and should only be requested by the snakes webapp' @app.route('/score', methods = ['GET']) +@cross_origin() def get_score() -> str: - return json.dumps(scores) - + scoreDTOs = map(lambda score: ScoreDTO(score.score, score.username), scores) + return json.dumps(list(scoreDTOs)) @app.route('/score', methods = ['POST']) +@cross_origin() def add_score() -> str: body: Any | None = request.json