recommend_app_factory.py 1.0 KB

123456789101112131415161718192021222324
  1. from services.recommend_app.buildin.buildin_retrieval import BuildInRecommendAppRetrieval
  2. from services.recommend_app.database.database_retrieval import DatabaseRecommendAppRetrieval
  3. from services.recommend_app.recommend_app_base import RecommendAppRetrievalBase
  4. from services.recommend_app.recommend_app_type import RecommendAppType
  5. from services.recommend_app.remote.remote_retrieval import RemoteRecommendAppRetrieval
  6. class RecommendAppRetrievalFactory:
  7. @staticmethod
  8. def get_recommend_app_factory(mode: str) -> type[RecommendAppRetrievalBase]:
  9. match mode:
  10. case RecommendAppType.REMOTE:
  11. return RemoteRecommendAppRetrieval
  12. case RecommendAppType.DATABASE:
  13. return DatabaseRecommendAppRetrieval
  14. case RecommendAppType.BUILDIN:
  15. return BuildInRecommendAppRetrieval
  16. case _:
  17. raise ValueError(f"invalid fetch recommended apps mode: {mode}")
  18. @staticmethod
  19. def get_buildin_recommend_app_retrieval():
  20. return BuildInRecommendAppRetrieval