Skip to content
Snippets Groups Projects
Commit ee272773 authored by YAHYAOUI Firas's avatar YAHYAOUI Firas
Browse files

add: change API call from Open data to Flask server

parent d11c58f5
No related branches found
No related tags found
1 merge request!1Dev/client: add UI, make API call and log it to the console
Pipeline #19763 passed
......@@ -9,6 +9,7 @@
"version": "0.0.0",
"dependencies": {
"@tanstack/react-query": "^5.17.12",
"@types/node": "^20.11.3",
"bootstrap": "^5.3.2",
"react": "^18.2.0",
"react-bootstrap": "^2.9.2",
......@@ -1068,6 +1069,14 @@
"integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
"dev": true
},
"node_modules/@types/node": {
"version": "20.11.3",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.3.tgz",
"integrity": "sha512-nrlmbvGPNGaj84IJZXMPhQuCMEVTT/hXZMJJG/aIqVL9fKxqk814sGGtJA4GI6hpJSLQjpi6cn0Qx9eOf9SDVg==",
"dependencies": {
"undici-types": "~5.26.4"
}
},
"node_modules/@types/prop-types": {
"version": "15.7.11",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz",
......@@ -2900,6 +2909,11 @@
"react": ">=15.0.0"
}
},
"node_modules/undici-types": {
"version": "5.26.5",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
},
"node_modules/uri-js": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
......
......@@ -11,6 +11,7 @@
},
"dependencies": {
"@tanstack/react-query": "^5.17.12",
"@types/node": "^20.11.3",
"bootstrap": "^5.3.2",
"react": "^18.2.0",
"react-bootstrap": "^2.9.2",
......
flask
pytest
requests
flask-cors
\ No newline at end of file
import os
from flask import Flask
from flask import render_template
from flask import render_template, make_response
from flask import request, jsonify
from flask_cors import CORS
import requests
app = Flask(__name__, template_folder='dist', static_url_path='', static_folder='dist')
CORS(app)
basis_url = "https://open.tan.fr/ewp/"
@app.route("/")
......@@ -15,35 +17,42 @@ def hello():
@app.route('/get_nearest_stations/<lat>/<long>', methods=['GET'])
def get_nearest_stations(lat, long):
url = basis_url + f'arrets.json/{lat}/{long}'
return requests.get(url)
response = requests.get(url)
return make_response(response.json(), response.status_code)
@app.route('/get_all_stations/', methods=['GET'])
def get_all_stations():
url = basis_url + f'arrets.json/'
return requests.get(url)
response = requests.get(url)
return make_response(response.json(), response.status_code)
@app.route('/get_timetable/<codeArret>/<numLigne>/<sens>', methods=['GET'])
def get_timetable(codeArret, numLigne, sens):
url = basis_url + f'horairesarret.json/{codeArret}/{numLigne}/{sens}'
return requests.get(url)
response = requests.get(url)
return make_response(response.json(), response.status_code)
@app.route('/get_timetable_by_date/<codeArret>/<numLigne>/<sens>/<date>', methods=['GET'])
def get_timetable_by_date(codeArret, numLigne, sens, date):
url = basis_url + f'horairesarret.json/{codeArret}/{numLigne}/{sens}/{date}'
return requests.get(url)
response = requests.get(url)
return make_response(response.json(), response.status_code)
@app.route('/get_waitingtime_by_station/<codeArret>', methods=['GET'])
def get_waitingtime_by_station(codeArret):
url = basis_url + f'tempsattente.json/{codeArret}'
return requests.get(url)
response = requests.get(url)
return make_response(response.json(), response.status_code)
@app.route('/get_waitingtime_by_station_and_nbpasses/<codeArret>/<nombrePassages>', methods=['GET'])
def get_waitingtime_by_station_and_nbpasses(codeArret, nombrePassages):
url = basis_url + f'tempsattentelieu.json/{codeArret}/{nombrePassages}'
return requests.get(url)
response = requests.get(url)
return make_response(response.json(), response.status_code)
@app.route('/get_waitingtime_by_station_nbpasses_and_numline/<codeArret>/<nombrePassages>/<numLigne>', methods=['GET'])
def get_waitingtime_by_station_nbpasses_and_numline(codeArret, nombrePassages, numLigne):
url = basis_url + f'tempsattentelieu.json/{codeArret}/{nombrePassages}/{numLigne}'
return requests.get(url)
response = requests.get(url)
return make_response(response.json(), response.status_code)
if __name__ == "__main__":
......
......@@ -5,6 +5,9 @@ type FormulaireProps = {
selection: number;
};
const PORT = process.env.PORT || 5000;
const URL = `http://0.0.0.0:${PORT}`;
const Formulaire = ({ selection }: FormulaireProps) => {
const getFormsGroups = (selection: number) => {
switch (selection) {
......@@ -94,7 +97,7 @@ const Formulaire = ({ selection }: FormulaireProps) => {
const { isPending, isError, error, data } = useQuery({
queryKey: ["arrets"],
queryFn: async () => {
const result = await fetch("https://open.tan.fr/ewp/arrets.json");
const result = await fetch(`${URL}/get_all_stations/`);
return result.json();
},
});
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment