1818 PipelineStage ,
1919 MaxExecutionsReachedError ,
2020)
21- from helpers .database import start_db_session
21+ from helpers .database import Database
2222from helpers .logger import Logger , StableIdFilter
2323from helpers .parser import jsonify_pubsub
2424from .gbfs_utils import (
3434
3535
3636def fetch_all_gbfs_feeds () -> List [Gbfsfeed ]:
37- session = None
37+ db = Database ( database_url = os . getenv ( "FEEDS_DATABASE_URL" ))
3838 try :
39- session = start_db_session (os . getenv ( "FEEDS_DATABASE_URL" ))
40- gbfs_feeds = (
41- session .query (Gbfsfeed ).options (joinedload (Gbfsfeed .gbfsversions )).all ()
42- )
43- return gbfs_feeds
39+ with db . start_db_session () as session :
40+ gbfs_feeds = (
41+ session .query (Gbfsfeed ).options (joinedload (Gbfsfeed .gbfsversions )).all ()
42+ )
43+ return gbfs_feeds
4444 except Exception as e :
4545 logging .error (f"Error fetching all GBFS feeds: { e } " )
4646 raise e
4747 finally :
48- if session :
49- session .close ()
48+ pass
5049
5150
5251@functions_framework .cloud_event
@@ -92,7 +91,6 @@ def gbfs_validator_pubsub(cloud_event: CloudEvent):
9291 save_trace_with_error (trace , error_message , trace_service )
9392 return error_message
9493
95- session = None
9694 try :
9795 storage_client = storage .Client ()
9896 bucket = storage_client .bucket (BUCKET_NAME )
@@ -108,17 +106,16 @@ def gbfs_validator_pubsub(cloud_event: CloudEvent):
108106 try :
109107 snapshot = validator .create_snapshot (feed_id )
110108 validation_results = validator .validate_gbfs_feed (bucket )
111- session = start_db_session ( os .getenv ("FEEDS_DATABASE_URL" ))
112- save_snapshot_and_report ( session , snapshot , validation_results )
113-
109+ db = Database ( database_url = os .getenv ("FEEDS_DATABASE_URL" ))
110+ with db . start_db_session () as session :
111+ save_snapshot_and_report ( session , snapshot , validation_results )
114112 except Exception as e :
115113 error_message = f"Error validating GBFS feed: { e } "
116114 logging .error (f"{ error_message } \n Traceback:\n { traceback .format_exc ()} " )
117115 save_trace_with_error (trace , error_message , trace_service )
118116 return error_message
119117 finally :
120- if session :
121- session .close ()
118+ pass
122119
123120 trace .status = Status .SUCCESS
124121 trace_service .save (trace )
0 commit comments