From a87e4784c1599a076cc9f61845c170494406efa6 Mon Sep 17 00:00:00 2001 From: Finn Cullen Date: Fri, 28 Feb 2025 17:23:38 -0500 Subject: [PATCH 1/6] Started on backend code --- .DS_Store | Bin 0 -> 6148 bytes backend/.DS_Store | Bin 0 -> 6148 bytes backend/api/.DS_Store | Bin 0 -> 6148 bytes backend/api/endpoints/command.py | 23 ++++++++++++++++++----- backend/data/data_models.py | 9 +++++++-- 5 files changed, 25 insertions(+), 7 deletions(-) create mode 100644 .DS_Store create mode 100644 backend/.DS_Store create mode 100644 backend/api/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d8c5ea70307e1bb3470de73ddb9530d911c7b734 GIT binary patch literal 6148 zcmeHKJ5EC}5S)cbM50NV(pTUHR+O9|7l7nZ5s?DXzlw8lG-f{q(IZ__1kFn8vDZ7c zJjL6$0BrR+JOK*;bGjqGe3+W=yHD({B1WY1j90v47(Vug-Eorrcfh$1*x?0xy#3}M z556Un0#ZNW71;UXh0oP-Qa}paz5@PzXmrP3I3~uYgG00c#2Le3oJTJ~ zY#t!?!ZDE%nkAK(RI3)llFoRmyk0maCLLDIht2jb+KfWd~u{Z)Qfo|YL&7@OmY6luZ;q}kPJ zcDX4|Co}WydDxh(&1?lH+J#|id`_R(LuH80Gu{tx$KwG@TTY5+667vyZzua0K5zL0 zl3%vJP0k#lv=op6Qa}nw0V(hc1=y%ztH(q|DIf);z*PZ$9~zw43&+IxbRfhC0KES1 zV;!>uu%VRPUN|Nq1M{Q;lj=2Mc+!z?Ro4s0#H5?Y%{ZrS_L@*UZb!aFxp_}ilmb%V zUV%k!*X;k#@R|Alo}`@=kOKco0blN3c3Zqs_14MDvDY^EE1Wgoa2nP@L5Ow?jCPC- f+woHrWnJSM&wJsR7-rbMZNUMalgP1qN==r2LwovKnes=5aN~_-)8J}3n*~qfX0<~w%)N< znL``{u+2+<2CM-r>5h2!Wo~}%KC`2Y91|^Sbhtu?Til?Xv40MD?uzUdk9cG5XMWr7 zy5V{p2Twd<$p`c#jkx3P8N2;4Z)SyihI{@75?@*6iFlxR1(_6(0#ZNFF}Vj6}3tMDezqZpS@{o@BioYU*>=3$fST2_@@fk zVtcXO@Zqwz&K}cyZJ}S%_eO5exkM`_Ml0qYZ^fryc*XZTZxW}9k Date: Mon, 3 Mar 2025 00:17:33 -0500 Subject: [PATCH 2/6] Finished backend tasks --- backend/api/middlewares/logger_middleware.py | 15 ++++++++++++++- backend/data/data_models.py | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/backend/api/middlewares/logger_middleware.py b/backend/api/middlewares/logger_middleware.py index 44daa5d..40f34af 100644 --- a/backend/api/middlewares/logger_middleware.py +++ b/backend/api/middlewares/logger_middleware.py @@ -1,7 +1,10 @@ +import time + from collections.abc import Callable from typing import Any from fastapi import Request, Response from starlette.middleware.base import BaseHTTPMiddleware +from ...utils.logging import logger_setup, logger_setup_file, logger_close, logger class LoggerMiddleware(BaseHTTPMiddleware): @@ -17,6 +20,16 @@ async def dispatch( @param call_next: Endpoint or next middleware to be called (if any, this is the next middleware in the chain of middlewares, it is supplied by FastAPI) @return Response from endpoint """ - # TODO:(Member) Finish implementing this method + logger_setup_file(enqueue = False, diagnose = True) + + logger.info(f"Request: {request.method} {request.url}") + + start_time = time.perf_counter() response = await call_next(request) + process_time = time.perf_counter() - start_time + + logger.info(f"Status: {response.status_code}") + logger.info(f"Headers: {response.headers}") + logger.info(f"Time: {process_time}") + return response diff --git a/backend/data/data_models.py b/backend/data/data_models.py index 6d57bb1..11f9d9f 100644 --- a/backend/data/data_models.py +++ b/backend/data/data_models.py @@ -35,7 +35,7 @@ def validate_params_format(self): if self.params is None and self.format is None: return self elif self.params is not None and self.format is not None: - if len(self.params.split(",")) == len(self.format.split()): + if len(self.params.split(",")) == len(self.format.split(",")): return self else: raise ValueError(f"Error: Params and format are not both None or have different numbers of comma seperated values.\n") From d2fe4c205c116fd9e33aa4eb1c24af66e876044f Mon Sep 17 00:00:00 2001 From: Finn Cullen Date: Thu, 6 Mar 2025 15:36:15 -0500 Subject: [PATCH 3/6] test --- .DS_Store | Bin 6148 -> 6148 bytes backend/api/endpoints/command.py | 10 +++++----- backend/api/middlewares/logger_middleware.py | 8 +++----- backend/data/.DS_Store | Bin 0 -> 6148 bytes backend/data/data_models.py | 5 ++--- 5 files changed, 10 insertions(+), 13 deletions(-) create mode 100644 backend/data/.DS_Store diff --git a/.DS_Store b/.DS_Store index d8c5ea70307e1bb3470de73ddb9530d911c7b734..d395557a474bcda0805d3e19048c083921a3d4be 100644 GIT binary patch delta 156 zcmZoMXfc=|&e%S&P;8=}q96+c0|O%ig8)NHadJ*letyoxjoJ|)K^6u*hIEEZh7yg{cCdiP%P|A>mEX50yDqyH&C}ButC%eAPk;BXY(S;Z9 diff --git a/backend/api/endpoints/command.py b/backend/api/endpoints/command.py index dbe5e1a..e744ee0 100644 --- a/backend/api/endpoints/command.py +++ b/backend/api/endpoints/command.py @@ -31,11 +31,11 @@ def create_command(payload: CommandRequest, db: Session = Depends(get_db)): @param payload: The data used to create an item @return returns a json object with field of "data" under which there is the payload now pulled from the database """ - newCommand = Command(**payload.model_dump()) - db.add(newCommand) + new_command = Command(**payload.model_dump()) + db.add(new_command) db.commit() - db.refresh(newCommand) - return {"data": newCommand} + db.refresh(new_command) + return {"data": new_command} @command_router.delete("/{id}", response_model=CommandListResponse) @@ -48,7 +48,7 @@ def delete_command(id: int, db: Session = Depends(get_db)): """ command = db.get(Command, id) - if not command: + if command is None: raise HTTPException(status_code=404, detail="Command not found") db.delete(command) diff --git a/backend/api/middlewares/logger_middleware.py b/backend/api/middlewares/logger_middleware.py index 40f34af..4d651bd 100644 --- a/backend/api/middlewares/logger_middleware.py +++ b/backend/api/middlewares/logger_middleware.py @@ -1,5 +1,4 @@ -import time - +from time import perftime from collections.abc import Callable from typing import Any from fastapi import Request, Response @@ -20,8 +19,6 @@ async def dispatch( @param call_next: Endpoint or next middleware to be called (if any, this is the next middleware in the chain of middlewares, it is supplied by FastAPI) @return Response from endpoint """ - logger_setup_file(enqueue = False, diagnose = True) - logger.info(f"Request: {request.method} {request.url}") start_time = time.perf_counter() @@ -30,6 +27,7 @@ async def dispatch( logger.info(f"Status: {response.status_code}") logger.info(f"Headers: {response.headers}") - logger.info(f"Time: {process_time}") + logger.info(f"Start Time: {start_time}") + logger.info(f"Process Time: {process_time}") return response diff --git a/backend/data/.DS_Store b/backend/data/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..38734ca2de71d90578b12a191d5ff30a57f26d5c GIT binary patch literal 6148 zcmeHKJ8Hu~5S@u#2;8`IxmU;y7U7)02atb(6aoc8igc=cE+5TrJ{W}TCXgn)ftj~E znx|!7q0xwlw%_Mhk+q04a6`FRn43K}pV>=h6bQ#VPI7>M$h&m2>c}_IdtuEgkdX>d0V;4;z`hR!Zden?K>u_g_y_=8 zBJGB?&l13531Cee1CfDgP=P_!95FQL$d|0EiDO{UMRWMjJXv!>Q9m8;FJ3NM0~x6R z6__fpi0#_?{~P?t{68geM+KA!1r*gxx&q`b_#;GW1zQV hY^)t`yeR65t?|4jj)6``-swR8445u7D)83|+yF)|6_)@2 literal 0 HcmV?d00001 diff --git a/backend/data/data_models.py b/backend/data/data_models.py index 11f9d9f..a8835a6 100644 --- a/backend/data/data_models.py +++ b/backend/data/data_models.py @@ -34,9 +34,8 @@ def validate_params_format(self): """ if self.params is None and self.format is None: return self - elif self.params is not None and self.format is not None: - if len(self.params.split(",")) == len(self.format.split(",")): - return self + elif self.params is not None and self.format is not None and len(self.params.split(",")) == len(self.format.split(",")): + return self else: raise ValueError(f"Error: Params and format are not both None or have different numbers of comma seperated values.\n") From 2b7e00b5a11a8c026c604685f2e487fc26bd6327 Mon Sep 17 00:00:00 2001 From: Finn Cullen Date: Thu, 6 Mar 2025 15:51:02 -0500 Subject: [PATCH 4/6] Implemented feedback from pull request --- .DS_Store | Bin 6148 -> 6148 bytes backend/api/middlewares/logger_middleware.py | 11 ++++++----- test/.DS_Store | Bin 0 -> 6148 bytes 3 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 test/.DS_Store diff --git a/.DS_Store b/.DS_Store index d395557a474bcda0805d3e19048c083921a3d4be..c91f8ab018c71c92ad5b9f7c51233f585eb8483c 100644 GIT binary patch delta 83 zcmZoMXfc=|#>B`mF;Q%yo+2ab!~pBb0*nnnMo+0A3quJ*Dnl_tNlI~YPEvk;&Spl& iQntJIMbrc8y delta 62 zcmZoMXfc=|#>CJ*F;Q%yo+2a5!~knXmdQMfrJJWQ7P3t&n7WyrgP#MaVDm!8@640= SMGP4kCfo2xZ;laJ!3+Q^fDvy1 diff --git a/backend/api/middlewares/logger_middleware.py b/backend/api/middlewares/logger_middleware.py index 4d651bd..6ebf1f2 100644 --- a/backend/api/middlewares/logger_middleware.py +++ b/backend/api/middlewares/logger_middleware.py @@ -1,9 +1,9 @@ -from time import perftime +from time import perf_counter from collections.abc import Callable from typing import Any from fastapi import Request, Response from starlette.middleware.base import BaseHTTPMiddleware -from ...utils.logging import logger_setup, logger_setup_file, logger_close, logger +from backend.utils.logging import logger class LoggerMiddleware(BaseHTTPMiddleware): @@ -21,13 +21,14 @@ async def dispatch( """ logger.info(f"Request: {request.method} {request.url}") - start_time = time.perf_counter() + start_time = perf_counter() + logger.info(f"Start Time: {start_time}") + response = await call_next(request) - process_time = time.perf_counter() - start_time + process_time = perf_counter() - start_time logger.info(f"Status: {response.status_code}") logger.info(f"Headers: {response.headers}") - logger.info(f"Start Time: {start_time}") logger.info(f"Process Time: {process_time}") return response diff --git a/test/.DS_Store b/test/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..4f594f88f057e68552da17e0e4b08cf538268d15 GIT binary patch literal 6148 zcmeHKyG{c^3>=e4M50NVa({t8SViFr_yLj}6%i>A{Z)JypT_v1DA6SqqCsQHo?V~k zRy)P{48Yc(!y~W+u%J8Q%frof48zC%uscqwuP2;)j~%wy0pQvfH-G5jO&;s zh|LqkUN|N)L$jn3lWH|$SkjqqRo4s0#H7P&_^>+JYC^F%o$qf^4(o}EQa}n^Dlp6K z()<4t{l@%%NzzUVNP&N)fXz40n>DXgy>)Uq@3oEoLid_)x*OL)VTg82jCRb8x8qe5 bWnJ?%pZCHsG3d+(ov5Dy*F`1;{#t<_Z1WXe literal 0 HcmV?d00001 From 87f52770baa40ee4e4f55a5af0b456da808c9e82 Mon Sep 17 00:00:00 2001 From: Finn Cullen Date: Thu, 6 Mar 2025 15:55:36 -0500 Subject: [PATCH 5/6] Implemented feedback from pull request --- .DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index c91f8ab018c71c92ad5b9f7c51233f585eb8483c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKOKQVF41H={5(tGXyPOjgdV?V(C+Gp%Iu1=~ND4_7-TCN!8p*|`UY8Ig&^(Pk zkZk~WSfGJf`)EE(UkA`kM`Hm>MMsr;6>ce3-vdE>nbng`&@s1Ci`um@B zPHb^T-4ER}^o4Jnu)&ez3)Xm}Zn5d7O;8v2C)4(5`k|_;?K>}(qS#k35DWwZ!N8R< zz&l%IIx~zh7zhS}fnNsnd`MKq?ARKXqk}_f0f-gdMQCd;p*6`dJGO?5P{c}!Rw~|N zh?UcyJTE)8hE@*o=0p6+UGpO4>0CdRbVxRgF&GF2h78==bguXRil5AAlRqqpSuhX` zTp0sWEuWVQzLejse_l`T+C+V&s%T!T28H(ECx8<@M;=Ph;z@1hWyjV~S5bc{C&rIJ MAtZ)i;2#+H0fcKTJ^%m! From d981daa1d2b66a09cc17b86f19c248e7bc225602 Mon Sep 17 00:00:00 2001 From: Finn Cullen Date: Thu, 6 Mar 2025 16:00:59 -0500 Subject: [PATCH 6/6] Removed all .DS_Store files --- backend/.DS_Store | Bin 6148 -> 0 bytes backend/api/.DS_Store | Bin 6148 -> 0 bytes backend/data/.DS_Store | Bin 6148 -> 0 bytes test/.DS_Store | Bin 6148 -> 0 bytes 4 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 backend/.DS_Store delete mode 100644 backend/api/.DS_Store delete mode 100644 backend/data/.DS_Store delete mode 100644 test/.DS_Store diff --git a/backend/.DS_Store b/backend/.DS_Store deleted file mode 100644 index 78eb4dc28e8f5b5ea18c97c70cc5960c5efe03d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKF=_)r43uIQhBPiy?ic)n#W*j>2jb+KfWd~u{Z)Qfo|YL&7@OmY6luZ;q}kPJ zcDX4|Co}WydDxh(&1?lH+J#|id`_R(LuH80Gu{tx$KwG@TTY5+667vyZzua0K5zL0 zl3%vJP0k#lv=op6Qa}nw0V(hc1=y%ztH(q|DIf);z*PZ$9~zw43&+IxbRfhC0KES1 zV;!>uu%VRPUN|Nq1M{Q;lj=2Mc+!z?Ro4s0#H5?Y%{ZrS_L@*UZb!aFxp_}ilmb%V zUV%k!*X;k#@R|Alo}`@=kOKco0blN3c3Zqs_14MDvDY^EE1Wgoa2nP@L5Ow?jCPC- f+woHrWnJSM&wJsR7-rbMZNUMalgP1qN==r2LwovKnes=5aN~_-)8J}3n*~qfX0<~w%)N< znL``{u+2+<2CM-r>5h2!Wo~}%KC`2Y91|^Sbhtu?Til?Xv40MD?uzUdk9cG5XMWr7 zy5V{p2Twd<$p`c#jkx3P8N2;4Z)SyihI{@75?@*6iFlxR1(_6(0#ZNFF}Vj6}3tMDezqZpS@{o@BioYU*>=3$fST2_@@fk zVtcXO@Zqwz&K}cyZJ}S%_eO5exkM`_Ml0qYZ^fryc*XZTZxW}9k=h6bQ#VPI7>M$h&m2>c}_IdtuEgkdX>d0V;4;z`hR!Zden?K>u_g_y_=8 zBJGB?&l13531Cee1CfDgP=P_!95FQL$d|0EiDO{UMRWMjJXv!>Q9m8;FJ3NM0~x6R z6__fpi0#_?{~P?t{68geM+KA!1r*gxx&q`b_#;GW1zQV hY^)t`yeR65t?|4jj)6``-swR8445u7D)83|+yF)|6_)@2 diff --git a/test/.DS_Store b/test/.DS_Store deleted file mode 100644 index 4f594f88f057e68552da17e0e4b08cf538268d15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKyG{c^3>=e4M50NVa({t8SViFr_yLj}6%i>A{Z)JypT_v1DA6SqqCsQHo?V~k zRy)P{48Yc(!y~W+u%J8Q%frof48zC%uscqwuP2;)j~%wy0pQvfH-G5jO&;s zh|LqkUN|N)L$jn3lWH|$SkjqqRo4s0#H7P&_^>+JYC^F%o$qf^4(o}EQa}n^Dlp6K z()<4t{l@%%NzzUVNP&N)fXz40n>DXgy>)Uq@3oEoLid_)x*OL)VTg82jCRb8x8qe5 bWnJ?%pZCHsG3d+(ov5Dy*F`1;{#t<_Z1WXe