Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix: TT-220 adjustments according sonar suggestions
  • Loading branch information
Pablo authored and Pablo committed May 19, 2021
commit 9eb0e9678edb0f25759f7042487b95ab3d1a43de
4 changes: 2 additions & 2 deletions commons/data_access_layer/cosmos_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ def attach_context(data: dict, event_context: EventContext):

@staticmethod
def create_sql_date_range_filter(date_range: dict) -> str:
if 'start_date' and 'end_date' in date_range:
if 'start_date' in date_range and 'end_date' in date_range:
return """
AND ((c.start_date BETWEEN @start_date AND @end_date) OR
(c.end_date BETWEEN @start_date AND @end_date))
Expand Down Expand Up @@ -251,9 +251,9 @@ def find_all(
event_context: EventContext,
conditions: dict = None,
date_range: dict = None,
visible_only=True,
max_count=None,
offset=0,
visible_only=True,
mapper: Callable = None,
):
conditions = conditions if conditions else {}
Expand Down
5 changes: 4 additions & 1 deletion tests/time_tracker_api/projects/projects_model_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,10 @@ def test_find_all_projects_new_version(
project_repository.container.query_items = query_items_mock

result = project_repository.find_all(
event_context, {"customer_id": "1"}, ['id'], ['customer_id']
event_context=event_context,
conditions={"customer_id": "1"},
project_ids=['id'],
customer_ids=['customer_id'],
)
find_partition_key_value_mock.assert_called_once()
assert len(result) == 1
Expand Down
4 changes: 2 additions & 2 deletions time_tracker_api/activities/activities_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,10 +89,10 @@ def find_all_with_id_in_list(
def find_all(
self,
event_context: EventContext,
conditions: dict = None,
conditions,
activities_id: List = None,
visible_only=True,
max_count=0,
max_count=None,
offset=0,
mapper: Callable = None,
):
Expand Down
6 changes: 2 additions & 4 deletions time_tracker_api/projects/projects_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,14 +71,12 @@ def __init__(self):
def find_all(
self,
event_context: EventContext,
conditions: dict = None,
conditions,
project_ids: List[str] = None,
customer_ids: List[str] = None,
visible_only=True,
mapper: Callable = None,
):
params = self.generate_params(conditions) if conditions else []

query_builder = (
CosmosDBQueryBuilder()
.add_sql_where_equal_condition(conditions)
Expand All @@ -89,6 +87,7 @@ def find_all(
)
query_str = query_builder.get_query()
tenant_id_value = self.find_partition_key_value(event_context)
params = query_builder.get_parameters()
result = self.container.query_items(
query=query_str,
parameters=params,
Expand Down Expand Up @@ -117,7 +116,6 @@ def get_all(
max_count=kwargs.get('max_count', None)
)

# TODO: evaluate another approach in order that memory filtering will be make in Database instead
customers_id = [
customer.id
for customer in customers
Expand Down
14 changes: 1 addition & 13 deletions time_tracker_api/time_entries/time_entries_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,6 @@ def count(
date_range = date_range if date_range else {}

date_range_params = self.generate_params(date_range)
partition_key_value = self.find_partition_key_value(event_context)
params = self.generate_params(conditions)
params.extend(date_range_params)

Expand Down Expand Up @@ -153,19 +152,7 @@ def find_all(
mapper: Callable = None,
):
max_count = self.get_page_size_or(max_count)

params = [
{"name": "@offset", "value": offset},
{"name": "@limit", "value": max_count},
]

date_range = date_range if date_range else {}
date_range_params = (
self.generate_params(date_range) if date_range else []
)

params.extend(self.generate_params(conditions) if conditions else [])
params.extend(date_range_params)

query_builder = (
CosmosDBQueryBuilder()
Expand All @@ -181,6 +168,7 @@ def find_all(
)

query_str = query_builder.get_query()
params = query_builder.get_parameters()
tenant_id_value = self.find_partition_key_value(event_context)
result = self.container.query_items(
query=query_str,
Expand Down
2 changes: 1 addition & 1 deletion utils/extend_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,5 +99,5 @@ def create_custom_query_from_str(
return query_str


def create_list_from_str(data: str, delimiter: str = ",") -> str:
def create_list_from_str(data: str, delimiter: str = ",") -> list:
return [id for id in data.split(delimiter)] if data else []
6 changes: 6 additions & 0 deletions utils/query_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,12 @@ def __build_order_by(self):

def __build_date_range(self):
if self.date_range:
self.parameters.append(
{'name': '@start_date', 'value': self.date_range['start_date']}
)
self.parameters.append(
{'name': '@end_date', 'value': self.date_range['end_date']}
)
and_keyword = "AND " if len(self.where_conditions) > 0 else ""
return f"{and_keyword}((c.start_date BETWEEN @start_date AND @end_date) OR (c.end_date BETWEEN @start_date AND @end_date))"
else:
Expand Down