Skip to content

Commit c548ef2

Browse files
committed
handle mongo errors
1 parent 1456a5e commit c548ef2

File tree

3 files changed

+21
-12
lines changed

3 files changed

+21
-12
lines changed

dao/audit.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import logging
22
from datetime import datetime
33

4+
from pymongo.collection import Collection
5+
from pymongo.errors import PyMongoError
6+
47
from sample_code.dao._base_mongo import BaseMongoDAO
58
from sample_code.settings import (
69
AUDIT_COLLECTION,
@@ -26,8 +29,11 @@ def __init__(
2629
mongoReplicaset=mongoReplicaset,
2730
)
2831

29-
def run_aggregation_query(collection, query, **kwargs):
30-
return collection.aggregate(query, **kwargs)
32+
def run_aggregation_query(collection: Collection, query: str, **kwargs):
33+
try:
34+
return collection.aggregate(query, **kwargs)
35+
except PyMongoError as exc:
36+
logger.error(str(exc))
3137

3238
def get_subscribers(self, auditRangeStart: datetime, auditRangeEnd: datetime):
3339
logger.info(

dao/reporting.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ def run_query(self, query):
2727
except SQLAlchemyError as e:
2828
error = str(e.__dict__["orig"])
2929
logger.error(error)
30-
return error
3130

3231
def create_reporting_table(self) -> None:
3332
logger.info("Initiate reporting table")

dao/usage.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
from pymongo import DESCENDING
55
from pymongo.collection import Collection
6+
from pymongo.errors import PyMongoError
67

78
from sample_code.dao._base_mongo import BaseMongoDAO
89
from sample_code.settings import COLLECTION, DATABASE, PASSWORD, USERNAME
@@ -33,18 +34,21 @@ def run_query(
3334
limit_results: bool = False,
3435
limit_count: int = 10,
3536
) -> list:
36-
if project is not None:
37-
db_query = collection.find(query, project)
38-
else:
39-
db_query = collection.find(query)
37+
try:
38+
if project is not None:
39+
db_query = collection.find(query, project)
40+
else:
41+
db_query = collection.find(query)
4042

41-
if sort:
42-
db_query.sort(sort_field, DESCENDING)
43+
if sort:
44+
db_query.sort(sort_field, DESCENDING)
4345

44-
if limit_results:
45-
db_query.limit(limit_count)
46+
if limit_results:
47+
db_query.limit(limit_count)
4648

47-
return [doc for doc in db_query]
49+
return [doc for doc in db_query]
50+
except PyMongoError as exc:
51+
logger.error(str(exc))
4852

4953
def get_subscriber_usage(
5054
self, subscriberId: str, effectiveDate: datetime, expiryDate: datetime

0 commit comments

Comments
 (0)