|
from services.recommend_app.buildin.buildin_retrieval import BuildInRecommendAppRetrieval |
|
from services.recommend_app.database.database_retrieval import DatabaseRecommendAppRetrieval |
|
from services.recommend_app.recommend_app_base import RecommendAppRetrievalBase |
|
from services.recommend_app.recommend_app_type import RecommendAppType |
|
from services.recommend_app.remote.remote_retrieval import RemoteRecommendAppRetrieval |
|
|
|
|
|
class RecommendAppRetrievalFactory: |
|
@staticmethod |
|
def get_recommend_app_factory(mode: str) -> type[RecommendAppRetrievalBase]: |
|
match mode: |
|
case RecommendAppType.REMOTE: |
|
return RemoteRecommendAppRetrieval |
|
case RecommendAppType.DATABASE: |
|
return DatabaseRecommendAppRetrieval |
|
case RecommendAppType.BUILDIN: |
|
return BuildInRecommendAppRetrieval |
|
case _: |
|
raise ValueError(f"invalid fetch recommended apps mode: {mode}") |
|
|
|
@staticmethod |
|
def get_buildin_recommend_app_retrieval(): |
|
return BuildInRecommendAppRetrieval |
|
|