Skip to content

Commit 05dbee3

Browse files
committed
Added lint-imports rule not to import API layer from the business layer
1 parent 29c4a54 commit 05dbee3

File tree

5 files changed

+23
-14
lines changed

5 files changed

+23
-14
lines changed

pyproject.toml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,10 @@ source_modules = "app.business"
3535
forbidden_modules = "sqlalchemy"
3636
allow_indirect_imports = true
3737

38+
[[tool.importlinter.contracts]]
39+
name = "Do not import API layer from the persistence layer"
40+
type = "forbidden"
41+
source_modules = "app.datamgmt.dashboard"
42+
forbidden_modules = "app.blueprints.iris_user"
43+
allow_indirect_imports = true
44+

source/app/blueprints/rest/dashboard_routes.py

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

3434
from app.blueprints.rest.endpoints import endpoint_deprecated
3535
from app.blueprints.iris_user import iris_current_user
36-
from app.datamgmt.dashboard.dashboard_db import get_global_task, list_user_cases, list_user_reviews
36+
from app.datamgmt.dashboard.dashboard_db import get_global_task
37+
from app.datamgmt.dashboard.dashboard_db import list_user_cases
38+
from app.datamgmt.dashboard.dashboard_db import list_user_reviews
3739
from app.datamgmt.dashboard.dashboard_db import get_tasks_status
3840
from app.datamgmt.dashboard.dashboard_db import list_global_tasks
3941
from app.datamgmt.dashboard.dashboard_db import list_user_tasks
@@ -299,6 +301,7 @@ def gtask_delete(cur_id, caseid):
299301
@ac_api_requires()
300302
def list_own_cases():
301303
cases = list_user_cases(
304+
iris_current_user.id,
302305
request.args.get('show_closed', 'false', type=str).lower() == 'true'
303306
)
304307

@@ -308,7 +311,7 @@ def list_own_cases():
308311
@dashboard_rest_blueprint.route('/user/tasks/list', methods=['GET'])
309312
@ac_api_requires()
310313
def get_utasks():
311-
ct = list_user_tasks()
314+
ct = list_user_tasks(iris_current_user.id)
312315

313316
if ct:
314317
output = [c._asdict() for c in ct]
@@ -326,7 +329,7 @@ def get_utasks():
326329
@dashboard_rest_blueprint.route('/user/reviews/list', methods=['GET'])
327330
@ac_api_requires()
328331
def get_reviews():
329-
ct = list_user_reviews()
332+
ct = list_user_reviews(iris_current_user.id)
330333

331334
if ct:
332335
output = [c._asdict() for c in ct]

source/app/business/cases.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,11 @@ def cases_filter(current_user, pagination_parameters, name, case_identifiers, cu
8080

8181

8282
def cases_filter_by_user(show_all: bool):
83-
return list_user_cases(show_all)
83+
return list_user_cases(iris_current_user.id, show_all)
8484

8585

8686
def cases_filter_by_reviewer():
87-
return list_user_reviews()
87+
return list_user_reviews(iris_current_user.id)
8888

8989

9090
def cases_get_by_identifier(case_identifier) -> Cases:

source/app/business/tasks.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def tasks_filter(case_identifier, pagination_parameters: PaginationParameters) -
7474

7575

7676
def tasks_filter_by_user():
77-
return list_user_tasks()
77+
return list_user_tasks(iris_current_user.id)
7878

7979

8080
def tasks_update(task: CaseTasks, task_assignee_list):

source/app/datamgmt/dashboard/dashboard_db.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
from sqlalchemy import desc
2020

2121
from app import db
22-
from app.blueprints.iris_user import iris_current_user
2322
from app.models.models import CaseTasks
2423
from app.models.models import TaskAssignee
2524
from app.models.models import ReviewStatus
@@ -83,7 +82,7 @@ def get_tasks_status():
8382
return TaskStatus.query.all()
8483

8584

86-
def list_user_reviews():
85+
def list_user_reviews(user_identifier):
8786
ct = Cases.query.with_entities(
8887
Cases.case_id,
8988
Cases.name,
@@ -92,15 +91,15 @@ def list_user_reviews():
9291
).join(
9392
Cases.review_status
9493
).filter(
95-
Cases.reviewer_id == iris_current_user.id,
94+
Cases.reviewer_id == user_identifier,
9695
ReviewStatus.status_name != 'Reviewed',
9796
ReviewStatus.status_name != 'Not reviewed'
9897
).all()
9998

10099
return ct
101100

102101

103-
def list_user_tasks():
102+
def list_user_tasks(user_identifier):
104103
ct = CaseTasks.query.with_entities(
105104
CaseTasks.id.label("task_id"),
106105
CaseTasks.task_title,
@@ -123,7 +122,7 @@ def list_user_tasks():
123122
CaseTasks.status,
124123
).filter(and_(
125124
TaskAssignee.task_id == CaseTasks.id,
126-
TaskAssignee.user_id == iris_current_user.id
125+
TaskAssignee.user_id == user_identifier
127126
)).all()
128127

129128
return ct
@@ -172,14 +171,14 @@ def get_task_status(task_status_id):
172171
return ret
173172

174173

175-
def list_user_cases(show_all=False):
174+
def list_user_cases(user_identifier, show_all=False):
176175
if show_all:
177176
return Cases.query.filter(
178-
Cases.owner_id == iris_current_user.id
177+
Cases.owner_id == user_identifier
179178
).all()
180179

181180
return Cases.query.filter(
182-
Cases.owner_id == iris_current_user.id,
181+
Cases.owner_id == user_identifier,
183182
Cases.close_date == None
184183
).all()
185184

0 commit comments

Comments
 (0)