55from ellar .core .modules import DynamicModule , ModuleBase
66from ellar .di import ProviderConfig
77
8+ from ellar_storage .controller import StorageController
89from ellar_storage .schemas import StorageSetup
910from ellar_storage .services import StorageService
1011from ellar_storage .storage import StorageDriver
@@ -23,14 +24,24 @@ class _StorageSetupKey(t.TypedDict):
2324class StorageModule (ModuleBase , IModuleSetup ):
2425 @classmethod
2526 def setup (
26- cls , default : t .Optional [str ] = None , ** kwargs : _StorageSetupKey
27+ cls ,
28+ default : t .Optional [str ] = None ,
29+ disable_storage_controller : bool = False ,
30+ ** kwargs : _StorageSetupKey ,
2731 ) -> DynamicModule :
28- schema = StorageSetup (storages = kwargs , default = default ) # type:ignore[arg-type]
32+ schema = StorageSetup (
33+ storages = kwargs , # type:ignore[arg-type]
34+ default = default ,
35+ disable_storage_controller = disable_storage_controller ,
36+ )
2937 return DynamicModule (
3038 cls ,
3139 providers = [
3240 ProviderConfig (StorageService , use_value = StorageService (schema )),
3341 ],
42+ controllers = []
43+ if schema .disable_storage_controller
44+ else [StorageController ],
3445 )
3546
3647 @classmethod
@@ -48,5 +59,8 @@ def __register_setup_factory(
4859 providers = [
4960 ProviderConfig (StorageService , use_value = StorageService (schema )),
5061 ],
62+ controllers = []
63+ if schema .disable_storage_controller
64+ else [StorageController ],
5165 )
5266 raise RuntimeError ("Could not find `STORAGE_CONFIG` in application config." )
0 commit comments