|
22 | 22 | from lib.core.usecases.base import BaseUseCase |
23 | 23 | from superannotate.logger import get_default_logger |
24 | 24 |
|
25 | | - |
26 | 25 | logger = get_default_logger() |
27 | 26 |
|
28 | 27 |
|
@@ -210,33 +209,31 @@ def __init__( |
210 | 209 | self._user = user |
211 | 210 | self._service = service |
212 | 211 |
|
213 | | - def validate_user( |
| 212 | + def validate_item_names( |
214 | 213 | self, |
215 | 214 | ): |
216 | | - |
217 | | - for c in self._project.users: |
218 | | - if c["user_id"] == self._user: |
219 | | - return True |
220 | | - |
221 | | - raise AppValidationException( |
222 | | - f"{self._user} is not a verified contributor for the {self._project.name}" |
223 | | - ) |
| 215 | + self._item_names = list(set(self._item_names)) |
224 | 216 |
|
225 | 217 | def execute(self): |
| 218 | + cnt_assigned = 0 |
| 219 | + total_count = len(self._item_names) |
226 | 220 | if self.is_valid(): |
227 | 221 | for i in range(0, len(self._item_names), self.CHUNK_SIZE): |
228 | | - is_assigned = self._service.assign_items( |
| 222 | + response = self._service.assign_items( |
229 | 223 | team_id=self._project.team_id, |
230 | 224 | project_id=self._project.id, |
231 | 225 | folder_name=self._folder.name, |
232 | 226 | user=self._user, |
233 | 227 | item_names=self._item_names[i : i + self.CHUNK_SIZE], # noqa: E203 |
234 | 228 | ) |
235 | | - if not is_assigned: |
236 | | - self._response.errors = AppException( |
237 | | - f"Cant assign {', '.join(self._item_names[i: i + self.CHUNK_SIZE])}" |
238 | | - ) |
239 | | - continue |
| 229 | + if not response.ok and response.error: # User not found |
| 230 | + self._response.errors += response.error |
| 231 | + return self._response |
| 232 | + |
| 233 | + cnt_assigned += response.data["successCount"] |
| 234 | + logger.info( |
| 235 | + f"Assigned {cnt_assigned}/{total_count} items to user {self._user}" |
| 236 | + ) |
240 | 237 | return self._response |
241 | 238 |
|
242 | 239 |
|
|
0 commit comments