166 lines
4.7 KiB
Python
Executable File
166 lines
4.7 KiB
Python
Executable File
from functools import partial
|
|
|
|
from app.core.minio_client import MinioClient
|
|
from app.models import (
|
|
CategoryModel,
|
|
ClassificationModel,
|
|
CredentialModel,
|
|
FeedbackModel,
|
|
FileModel,
|
|
MapProjectionSystemModel,
|
|
MapsetHistoryModel,
|
|
MapsetModel,
|
|
MapSourceModel,
|
|
NewsModel,
|
|
OrganizationModel,
|
|
RefreshTokenModel,
|
|
RegionalModel,
|
|
RoleModel,
|
|
SourceUsageModel,
|
|
UserModel,
|
|
)
|
|
from app.repositories import (
|
|
CategoryRepository,
|
|
ClassificationRepository,
|
|
CredentialRepository,
|
|
FeedbackRepository,
|
|
FileRepository,
|
|
MapProjectionSystemRepository,
|
|
MapsetHistoryRepository,
|
|
MapsetRepository,
|
|
MapSourceRepository,
|
|
NewsRepository,
|
|
OrganizationRepository,
|
|
RegionalRepository,
|
|
RoleRepository,
|
|
SourceUsageRepository,
|
|
TokenRepository,
|
|
UserRepository,
|
|
)
|
|
from app.services import (
|
|
AuthService,
|
|
CategoryService,
|
|
CountService,
|
|
ClassificationService,
|
|
CredentialService,
|
|
FeedbackService,
|
|
FileService,
|
|
MapProjectionSystemService,
|
|
MapsetHistoryService,
|
|
MapsetService,
|
|
MapSourceService,
|
|
NewsService,
|
|
OrganizationService,
|
|
RegionalService,
|
|
RoleService,
|
|
UserService,
|
|
)
|
|
|
|
|
|
class Factory:
|
|
organization_repository = staticmethod(partial(OrganizationRepository, OrganizationModel, MapsetModel))
|
|
role_repository = staticmethod(partial(RoleRepository, RoleModel))
|
|
user_repository = staticmethod(partial(UserRepository, UserModel))
|
|
token_repository = staticmethod(partial(TokenRepository, RefreshTokenModel))
|
|
news_repository = staticmethod(partial(NewsRepository, NewsModel))
|
|
file_repository = staticmethod(partial(FileRepository, FileModel))
|
|
credential_repository = staticmethod(partial(CredentialRepository, CredentialModel))
|
|
map_source_repository = staticmethod(partial(MapSourceRepository, MapSourceModel))
|
|
map_projection_system_repository = staticmethod(partial(MapProjectionSystemRepository, MapProjectionSystemModel))
|
|
category_repository = staticmethod(partial(CategoryRepository, CategoryModel))
|
|
classification_repository = staticmethod(partial(ClassificationRepository, ClassificationModel))
|
|
regional_repository = staticmethod(partial(RegionalRepository, RegionalModel))
|
|
mapset_repository = staticmethod(partial(MapsetRepository, MapsetModel))
|
|
mapset_history_repository = staticmethod(partial(MapsetHistoryRepository, MapsetHistoryModel))
|
|
map_source_usage_repository = staticmethod(partial(SourceUsageRepository, SourceUsageModel))
|
|
feedback_repository = staticmethod(partial(FeedbackRepository, FeedbackModel))
|
|
|
|
def get_auth_service(
|
|
self,
|
|
):
|
|
return AuthService(
|
|
user_repository=self.user_repository(),
|
|
token_repository=self.token_repository(),
|
|
)
|
|
|
|
def get_organization_service(
|
|
self,
|
|
):
|
|
return OrganizationService(self.organization_repository())
|
|
|
|
def get_role_service(
|
|
self,
|
|
):
|
|
return RoleService(self.role_repository())
|
|
|
|
def get_user_service(
|
|
self,
|
|
):
|
|
return UserService(self.user_repository(), self.role_repository())
|
|
|
|
def get_news_service(
|
|
self,
|
|
):
|
|
return NewsService(self.news_repository())
|
|
|
|
def get_file_service(
|
|
self,
|
|
):
|
|
return FileService(self.file_repository(), MinioClient())
|
|
|
|
def get_credential_service(
|
|
self,
|
|
):
|
|
return CredentialService(self.credential_repository())
|
|
|
|
def get_map_source_service(
|
|
self,
|
|
):
|
|
return MapSourceService(self.map_source_repository())
|
|
|
|
def get_map_projection_system_service(
|
|
self,
|
|
):
|
|
return MapProjectionSystemService(self.map_projection_system_repository())
|
|
|
|
def get_category_service(
|
|
self,
|
|
):
|
|
return CategoryService(self.category_repository())
|
|
|
|
def get_classification_service(
|
|
self,
|
|
):
|
|
return ClassificationService(self.classification_repository())
|
|
|
|
def get_regional_service(
|
|
self,
|
|
):
|
|
return RegionalService(self.regional_repository())
|
|
|
|
def get_mapset_service(
|
|
self,
|
|
):
|
|
return MapsetService(
|
|
self.mapset_repository(),
|
|
self.mapset_history_repository(),
|
|
self.map_source_usage_repository(),
|
|
self.get_file_service(),
|
|
)
|
|
|
|
def get_mapset_history_service(
|
|
self,
|
|
):
|
|
return MapsetHistoryService(self.mapset_history_repository())
|
|
|
|
def get_feedback_service(
|
|
self,
|
|
):
|
|
return FeedbackService(self.feedback_repository())
|
|
|
|
def get_count_service(
|
|
self,
|
|
):
|
|
# No repository dependencies needed for aggregated counts for now
|
|
return CountService()
|