Skip to content

Commit 33ccd60

Browse files
committed
fix: Refactor services and repositories (dataset)
1 parent b5e36c8 commit 33ccd60

File tree

3 files changed

+52
-20
lines changed

3 files changed

+52
-20
lines changed

app/modules/dataset/repositories.py

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ def is_synchronized(self, dataset_id: int) -> bool:
8282
return True
8383
return False
8484

85+
'''
86+
Synchronised dataset
87+
'''
8588
def get_synchronized_datasets(self) -> List[DataSet]:
8689
return (
8790
self.model.query.join(DSMetaData)
@@ -90,18 +93,35 @@ def get_synchronized_datasets(self) -> List[DataSet]:
9093
.all()
9194
)
9295

93-
def get_unsynchronized_datasets(self) -> List[DataSet]:
96+
def get_synchronized_datasets_by_user(self, current_user_id: int) -> List[DataSet]:
9497
return (
9598
self.model.query.join(DSMetaData)
96-
.filter(DSMetaData.dataset_doi.is_(None))
99+
.filter(DataSet.user_id == current_user_id, DSMetaData.dataset_doi.isnot(None))
97100
.order_by(self.model.created_at.desc())
98101
.all()
99102
)
100103

101-
def get_synchronized_datasets_by_user(self, current_user_id: int) -> List[DataSet]:
104+
def get_synchronized_dataset_by_user(self, current_user_id: int, dataset_id: int) -> DataSet:
102105
return (
103106
self.model.query.join(DSMetaData)
104-
.filter(DataSet.user_id == current_user_id, DSMetaData.dataset_doi.isnot(None))
107+
.filter(DataSet.user_id == current_user_id, DataSet.id == dataset_id, DSMetaData.dataset_doi.isnot(None))
108+
.first()
109+
)
110+
111+
def count_synchronized_datasets(self) -> int:
112+
return (
113+
self.model.query.join(DSMetaData)
114+
.filter(DSMetaData.dataset_doi.isnot(None))
115+
.count()
116+
)
117+
118+
'''
119+
Unsynchronised dataset
120+
'''
121+
def get_unsynchronized_datasets(self) -> List[DataSet]:
122+
return (
123+
self.model.query.join(DSMetaData)
124+
.filter(DSMetaData.dataset_doi.is_(None))
105125
.order_by(self.model.created_at.desc())
106126
.all()
107127
)
@@ -121,20 +141,16 @@ def get_unsynchronized_dataset_by_user(self, current_user_id: int, dataset_id: i
121141
.first()
122142
)
123143

124-
def count_synchronized_datasets(self):
125-
return (
126-
self.model.query.join(DSMetaData)
127-
.filter(DSMetaData.dataset_doi.isnot(None))
128-
.count()
129-
)
130-
131144
def count_unsynchronized_datasets(self):
132145
return (
133146
self.model.query.join(DSMetaData)
134147
.filter(DSMetaData.dataset_doi.is_(None))
135148
.count()
136149
)
137150

151+
'''
152+
Top X datasets...
153+
'''
138154
def latest_synchronized(self) -> List[DataSet]:
139155
return (
140156
self.model.query.join(DSMetaData)

app/modules/dataset/routes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ def subdomain_index(doi):
242242
def get_unsynchronized_dataset(dataset_id):
243243

244244
# Get dataset
245-
dataset = dataset_service.get_unsynchronized_dataset(current_user.id, dataset_id)
245+
dataset = dataset_service.get_unsynchronized_dataset_by_user(current_user.id, dataset_id)
246246

247247
if not dataset:
248248
abort(404)

app/modules/dataset/services.py

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -70,30 +70,46 @@ def move_feature_models(self, dataset: DataSet):
7070
def is_synchronized(self, dataset_id: int) -> bool:
7171
return self.repository.is_synchronized(dataset_id)
7272

73+
'''
74+
Synchronised dataset
75+
'''
7376
def get_synchronized_datasets(self) -> List[DataSet]:
7477
return self.repository.get_synchronized_datasets()
7578

76-
def get_unsynchronized_datasets(self) -> List[DataSet]:
77-
return self.repository.get_unsynchronized_datasets()
78-
7979
def get_synchronized_datasets_by_user(self, current_user_id: int) -> List[DataSet]:
8080
return self.repository.get_synchronized_datasets_by_user(current_user_id)
8181

82+
def get_synchronized_dataset_by_user(self, current_user_id: int, dataset_id: int) -> DataSet:
83+
return self.repository.get_synchronized_dataset_by_user(current_user_id, dataset_id)
84+
85+
def count_synchronized_datasets(self) -> int:
86+
return self.repository.count_synchronized_datasets()
87+
88+
'''
89+
Unsynchronised dataset
90+
'''
91+
def get_unsynchronized_datasets(self) -> List[DataSet]:
92+
return self.repository.get_unsynchronized_datasets()
93+
8294
def get_unsynchronized_datasets_by_user(self, current_user_id: int) -> List[DataSet]:
8395
return self.repository.get_unsynchronized_datasets_by_user(current_user_id)
8496

85-
def get_unsynchronized_dataset(self, current_user_id: int, dataset_id: int) -> DataSet:
86-
return self.repository.get_unsynchronized_dataset(current_user_id, dataset_id)
97+
def get_unsynchronized_dataset_by_user(self, current_user_id: int, dataset_id: int) -> DataSet:
98+
return self.repository.get_unsynchronized_dataset_by_user(current_user_id, dataset_id)
99+
100+
def count_unsynchronized_datasets(self) -> int:
101+
return self.repository.count_unsynchronized_datasets()
102+
103+
'''
104+
Top X datasets...
105+
'''
87106

88107
def latest_synchronized(self) -> List[DataSet]:
89108
return self.repository.latest_synchronized()
90109

91110
def get_top_5_datasets_by_feature_model_count(self) -> List[DataSet]:
92111
return self.repository.get_top_5_datasets_by_feature_model_count()
93112

94-
def count_synchronized_datasets(self) -> int:
95-
return self.repository.count_synchronized_datasets()
96-
97113
def count_feature_models(self, dataset_id: int) -> int:
98114
dataset = self.repository.get_by_id(dataset_id)
99115
return dataset.feature_model_count

0 commit comments

Comments
 (0)