From ee59371378596c15b813093172db64f0665541c9 Mon Sep 17 00:00:00 2001 From: Jaap <33700526+GewoonJaap@users.noreply.github.com> Date: Thu, 29 Feb 2024 18:01:42 +0100 Subject: [PATCH 1/7] Add vehicle chargings and trips --- psa_car_controller/web/view/api.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/psa_car_controller/web/view/api.py b/psa_car_controller/web/view/api.py index d416d24..16eefb8 100644 --- a/psa_car_controller/web/view/api.py +++ b/psa_car_controller/web/view/api.py @@ -8,6 +8,11 @@ from psa_car_controller.psacc.application.car_controller import PSACarController from psa_car_controller.psacc.repository.db import Database from psa_car_controller.web.app import app +from psa_car_controller.psacc.repository.trips import Trips + +from psa_car_controller.psacc.application.charging import Charging +from psa_car_controller.psacc.model.charge import Charge + import json from psa_car_controller.web.tools.utils import convert_to_number_if_number_else_return_str @@ -181,6 +186,27 @@ def settings_section(section: str): APP.config.write_config() return json_response(config_section.json()) +@app.route('/get_vehicletrips') +def get_trips(): + try: + car = APP.myp.vehicles_list[0] + trips_by_vin = Trips.get_trips(Cars([car])) + trips = trips_by_vin[car.vin] + trips_as_dict = trips.get_trips_as_dict() + return FlaskResponse(json.dumps(trips_as_dict, default=str), mimetype='application/json') + except (IndexError, TypeError): + logger.debug("Failed to get trips, there is probably not enough data yet:", exc_info=True) + return FlaskResponse(json.dumps([]), mimetype='application/json') + + +@app.route('/get_vehiclechargings') +def get_chargings(): + try: + chargings = Charging.get_chargings() + return FlaskResponse (json.dumps(chargings, default=str), mimetype='application/json') + except (IndexError, TypeError): + logger.debug("Failed to get chargings, there is probably not enough data yet:", exc_info=True) + return FlaskResponse(json.dumps([]), mimetype='application/json') @app.route('/settings') def settings(): From 1d3833e7537f215b0f7ad2af8afe4900aa4adf3e Mon Sep 17 00:00:00 2001 From: Jaap <33700526+GewoonJaap@users.noreply.github.com> Date: Thu, 29 Feb 2024 18:03:43 +0100 Subject: [PATCH 2/7] Update psacc_api.md --- docs/psacc_api.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/psacc_api.md b/docs/psacc_api.md index c06bb41..e44aaaa 100644 --- a/docs/psacc_api.md +++ b/docs/psacc_api.md @@ -60,3 +60,11 @@ 15. Get battery SOH http://localhost:5000/battery/soh/YOURVIN + +16. Get the vehicle charging sessions + + http://localhost:5000/get_vehiclechargings + +17. Get the vehicle trips: + + http://localhost:5000/get_vehicletrips From 35ae6623576fdcaf8c5d10e9b6eb319d852ef2fa Mon Sep 17 00:00:00 2001 From: Jaap <33700526+GewoonJaap@users.noreply.github.com> Date: Sat, 2 Mar 2024 15:28:57 +0100 Subject: [PATCH 3/7] Update api.py --- psa_car_controller/web/view/api.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/psa_car_controller/web/view/api.py b/psa_car_controller/web/view/api.py index 16eefb8..469c23e 100644 --- a/psa_car_controller/web/view/api.py +++ b/psa_car_controller/web/view/api.py @@ -8,10 +8,10 @@ from psa_car_controller.psacc.application.car_controller import PSACarController from psa_car_controller.psacc.repository.db import Database from psa_car_controller.web.app import app +from psa_car_controller.psacc.model.car import Cars, Car from psa_car_controller.psacc.repository.trips import Trips from psa_car_controller.psacc.application.charging import Charging -from psa_car_controller.psacc.model.charge import Charge import json From 7a6eb81d8db9222807470158ba217d88b18f6670 Mon Sep 17 00:00:00 2001 From: Jaap <33700526+GewoonJaap@users.noreply.github.com> Date: Sat, 2 Mar 2024 15:31:05 +0100 Subject: [PATCH 4/7] Update api.py --- psa_car_controller/web/view/api.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/psa_car_controller/web/view/api.py b/psa_car_controller/web/view/api.py index 469c23e..87a1cf5 100644 --- a/psa_car_controller/web/view/api.py +++ b/psa_car_controller/web/view/api.py @@ -8,7 +8,7 @@ from psa_car_controller.psacc.application.car_controller import PSACarController from psa_car_controller.psacc.repository.db import Database from psa_car_controller.web.app import app -from psa_car_controller.psacc.model.car import Cars, Car +from psa_car_controller.psacc.model.car import Cars from psa_car_controller.psacc.repository.trips import Trips from psa_car_controller.psacc.application.charging import Charging From 11b07f68225a3560f915668f825b2afacbc996ed Mon Sep 17 00:00:00 2001 From: Jaap <33700526+GewoonJaap@users.noreply.github.com> Date: Tue, 19 Mar 2024 13:37:44 +0100 Subject: [PATCH 5/7] Add curl to enable Docker healthchecks --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 582aa54..83278b7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,8 +18,8 @@ COPY --from=builder /var/lib/apt /var/lib/apt COPY --from=builder /var/cache/apt/ /var/cache/apt/ COPY --from=builder /usr/local/lib /usr/local/lib COPY --from=builder /usr/local/bin/ /usr/local/bin/ -RUN apt-get install -y --no-install-recommends $PYTHON_DEP && \ +RUN apt-get install -y --no-install-recommends $PYTHON_DEP curl && \ apt-get clean ; \ rm -rf /var/lib/apt/lists/* COPY /docker_files/init.sh /init.sh -CMD /init.sh \ No newline at end of file +CMD /init.sh From d26c522e69886dd580a699bdf07c796cf1addfc4 Mon Sep 17 00:00:00 2001 From: Jaap <33700526+GewoonJaap@users.noreply.github.com> Date: Sat, 23 Mar 2024 11:07:59 +0100 Subject: [PATCH 6/7] Changes --- psa_car_controller/web/view/api.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/psa_car_controller/web/view/api.py b/psa_car_controller/web/view/api.py index 87a1cf5..45654c7 100644 --- a/psa_car_controller/web/view/api.py +++ b/psa_car_controller/web/view/api.py @@ -186,27 +186,27 @@ def settings_section(section: str): APP.config.write_config() return json_response(config_section.json()) -@app.route('/get_vehicletrips') +@app.route('/vehicles/trips') def get_trips(): try: car = APP.myp.vehicles_list[0] trips_by_vin = Trips.get_trips(Cars([car])) trips = trips_by_vin[car.vin] trips_as_dict = trips.get_trips_as_dict() - return FlaskResponse(json.dumps(trips_as_dict, default=str), mimetype='application/json') + return jsonify(trips_as_dict) except (IndexError, TypeError): logger.debug("Failed to get trips, there is probably not enough data yet:", exc_info=True) - return FlaskResponse(json.dumps([]), mimetype='application/json') + return jsonify([]) -@app.route('/get_vehiclechargings') +@app.route('/vehicles/chargings') def get_chargings(): try: chargings = Charging.get_chargings() - return FlaskResponse (json.dumps(chargings, default=str), mimetype='application/json') + return jsonify(chargings) except (IndexError, TypeError): logger.debug("Failed to get chargings, there is probably not enough data yet:", exc_info=True) - return FlaskResponse(json.dumps([]), mimetype='application/json') + return jsonify([]) @app.route('/settings') def settings(): From f14bd740bb9b93d2c305c05f84003ecaa975104e Mon Sep 17 00:00:00 2001 From: Jaap <33700526+GewoonJaap@users.noreply.github.com> Date: Sat, 23 Mar 2024 11:09:31 +0100 Subject: [PATCH 7/7] Readme --- docs/psacc_api.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/psacc_api.md b/docs/psacc_api.md index e44aaaa..8400c18 100644 --- a/docs/psacc_api.md +++ b/docs/psacc_api.md @@ -63,8 +63,8 @@ 16. Get the vehicle charging sessions - http://localhost:5000/get_vehiclechargings + http://localhost:5000/vehicles/chargings 17. Get the vehicle trips: - http://localhost:5000/get_vehicletrips + http://localhost:5000/vehicles/trips