|
19 | 19 | from lib.core.reporter import Reporter |
20 | 20 | from lib.core.repositories import BaseManageableRepository |
21 | 21 | from lib.core.repositories import BaseReadOnlyRepository |
| 22 | +from lib.core.response import Response |
22 | 23 | from lib.core.serviceproviders import SuperannotateServiceProvider |
23 | 24 | from lib.core.usecases.base import BaseReportableUseCase |
24 | 25 | from lib.core.usecases.base import BaseUseCase |
@@ -1079,3 +1080,38 @@ def execute(self): |
1079 | 1080 | ) |
1080 | 1081 | self._response.data = invited, list(to_skip) |
1081 | 1082 | return self._response |
| 1083 | + |
| 1084 | + |
| 1085 | +class ListSubsetsUseCase(BaseReportableUseCase): |
| 1086 | + def __init__( |
| 1087 | + self, |
| 1088 | + reporter: Reporter, |
| 1089 | + project: ProjectEntity, |
| 1090 | + backend_client: SuperannotateServiceProvider, |
| 1091 | + ): |
| 1092 | + super().__init__(reporter) |
| 1093 | + self._project = project |
| 1094 | + self._backend_client = backend_client |
| 1095 | + |
| 1096 | + def validate_project(self): |
| 1097 | + if self._project.sync_status != constances.ProjectState.SYNCED.value: |
| 1098 | + raise AppException("Data is not synced.") |
| 1099 | + |
| 1100 | + response = self._backend_client.validate_saqul_query( |
| 1101 | + self._project.team_id, self._project.id, "_" |
| 1102 | + ) |
| 1103 | + error = response.get("error") |
| 1104 | + if error: |
| 1105 | + raise AppException(response["error"]) |
| 1106 | + |
| 1107 | + def execute(self) -> Response: |
| 1108 | + if self.is_valid(): |
| 1109 | + sub_sets_response = self._backend_client.list_sub_sets( |
| 1110 | + team_id=self._project.team_id, project_id=self._project.id |
| 1111 | + ) |
| 1112 | + if sub_sets_response.ok: |
| 1113 | + self._response.data = [] |
| 1114 | + else: |
| 1115 | + self._response.data = [] |
| 1116 | + |
| 1117 | + return self._response |
0 commit comments