@@ -14,12 +14,17 @@ def __init__(self, module_name: str, db_type: Database):
1414
1515 def app_file (self ):
1616 return f"""from nest.core import PyNestFactory, Module
17- from .config import config
17+ from nest.core.database import DatabaseModule
18+ from .config import DATABASE_CONFIG
1819from .app_controller import AppController
1920from .app_service import AppService
2021
2122
22- @Module(imports=[], controllers=[AppController], providers=[AppService])
23+ @Module(
24+ imports=[DatabaseModule.for_root(**DATABASE_CONFIG)],
25+ controllers=[AppController],
26+ providers=[AppService],
27+ )
2328class AppModule:
2429 pass
2530
@@ -33,10 +38,6 @@ class AppModule:
3338)
3439
3540http_server = app.get_server()
36-
37- @http_server.on_event("startup")
38- def startup():
39- config.create_all()
4041"""
4142
4243 @abstractmethod
@@ -78,11 +79,11 @@ class {self.capitalized_module_name}(BaseModel):
7879"""
7980
8081 def entity_file (self ):
81- return f"""from src.config import config
82+ return f"""from nest.core.database import Base
8283from sqlalchemy import Column, Integer, String, Float
8384
8485
85- class { self .capitalized_module_name } (config. Base):
86+ class { self .capitalized_module_name } (Base):
8687 __tablename__ = "{ self .module_name } "
8788
8889 id = Column(Integer, primary_key=True, autoincrement=True)
@@ -93,20 +94,20 @@ class {self.capitalized_module_name}(config.Base):
9394 def service_file (self ):
9495 return f"""from .{ self .module_name } _model import { self .capitalized_module_name }
9596from .{ self .module_name } _entity import { self .capitalized_module_name } as { self .capitalized_module_name } Entity
96- from src.config import config
9797from nest.core.decorators.database import db_request_handler
9898from nest.core import Injectable
99+ from nest.core.database import DatabaseService
99100
100101
101102@Injectable
102103class { self .capitalized_module_name } Service:
103104
104- def __init__(self):
105- self.config = config
105+ def __init__(self, db: DatabaseService ):
106+ self.db = db
106107
107108 @db_request_handler
108109 def add_{ self .module_name } (self, { self .module_name } : { self .capitalized_module_name } ):
109- with self.config.get_session () as session:
110+ with self.db.session () as session:
110111 new_{ self .module_name } = { self .capitalized_module_name } Entity(
111112 **{ self .module_name } .dict()
112113 )
@@ -116,7 +117,7 @@ def add_{self.module_name}(self, {self.module_name}: {self.capitalized_module_na
116117
117118 @db_request_handler
118119 def get_{ self .module_name } (self):
119- with self.config.get_session () as session:
120+ with self.db.session () as session:
120121 return session.query({ self .capitalized_module_name } Entity).all()
121122
122123"""
@@ -208,12 +209,17 @@ def generate_project(self, project_name: str):
208209class AsyncORMTemplate (ORMTemplate , ABC ):
209210 def app_file (self ):
210211 return f"""from nest.core import PyNestFactory, Module
211- from .config import config
212+ from nest.core.database import DatabaseModule
213+ from .config import DATABASE_CONFIG
212214from .app_controller import AppController
213215from .app_service import AppService
214216
215217
216- @Module(imports=[], controllers=[AppController], providers=[AppService])
218+ @Module(
219+ imports=[DatabaseModule.for_root(**DATABASE_CONFIG)],
220+ controllers=[AppController],
221+ providers=[AppService],
222+ )
217223class AppModule:
218224 pass
219225
@@ -227,10 +233,6 @@ class AppModule:
227233)
228234
229235http_server = app.get_server()
230-
231- @http_server.on_event("startup")
232- async def startup():
233- await config.create_all()
234236
235237"""
236238
@@ -243,12 +245,12 @@ def requirements_file(self):
243245 pass
244246
245247 def entity_file (self ):
246- return f"""from src.config import config
248+ return f"""from nest.core.database import Base
247249from sqlalchemy import Integer, String
248250from sqlalchemy.orm import Mapped, mapped_column
249251
250252
251- class { self .capitalized_module_name } (config. Base):
253+ class { self .capitalized_module_name } (Base):
252254 __tablename__ = "{ self .module_name } "
253255
254256 id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
@@ -261,34 +263,36 @@ def service_file(self):
261263from .{ self .module_name } _entity import { self .capitalized_module_name } as { self .capitalized_module_name } Entity
262264from nest.core.decorators.database import async_db_request_handler
263265from nest.core import Injectable
266+ from nest.core.database import DatabaseService
264267
265268from sqlalchemy import select
266- from sqlalchemy.ext.asyncio import AsyncSession
267269
268270@Injectable
269271class { self .capitalized_module_name } Service:
270272
273+ def __init__(self, db: DatabaseService):
274+ self.db = db
275+
271276 @async_db_request_handler
272- async def add_{ self .module_name } (self, { self .module_name } : { self .capitalized_module_name } , session: AsyncSession):
273- new_{ self .module_name } = { self .capitalized_module_name } Entity(
274- **{ self .module_name } .dict()
275- )
276- session.add(new_{ self .module_name } )
277- await session.commit()
278- return new_{ self .module_name } .id
277+ async def add_{ self .module_name } (self, { self .module_name } : { self .capitalized_module_name } ):
278+ async with self.db.session() as session:
279+ new_{ self .module_name } = { self .capitalized_module_name } Entity(
280+ **{ self .module_name } .dict()
281+ )
282+ session.add(new_{ self .module_name } )
283+ await session.commit()
284+ return new_{ self .module_name } .id
279285
280286 @async_db_request_handler
281- async def get_{ self .module_name } (self, session: AsyncSession):
282- query = select({ self .capitalized_module_name } Entity)
283- result = await session.execute(query)
284- return result.scalars().all()
287+ async def get_{ self .module_name } (self):
288+ async with self.db.session() as session:
289+ query = select({ self .capitalized_module_name } Entity)
290+ result = await session.execute(query)
291+ return result.scalars().all()
285292"""
286293
287294 def controller_file (self ):
288- return f"""from nest.core import Controller, Get, Post, Depends
289- from sqlalchemy.ext.asyncio import AsyncSession
290- from src.config import config
291-
295+ return f"""from nest.core import Controller, Get, Post
292296
293297from .{ self .module_name } _service import { self .capitalized_module_name } Service
294298from .{ self .module_name } _model import { self .capitalized_module_name }
@@ -301,12 +305,12 @@ def __init__(self, {self.module_name}_service: {self.capitalized_module_name}Ser
301305 self.{ self .module_name } _service = { self .module_name } _service
302306
303307 @Get("/")
304- async def get_{ self .module_name } (self, session: AsyncSession = Depends(config.get_db) ):
305- return await self.{ self .module_name } _service.get_{ self .module_name } (session )
308+ async def get_{ self .module_name } (self):
309+ return await self.{ self .module_name } _service.get_{ self .module_name } ()
306310
307311 @Post("/")
308- async def add_{ self .module_name } (self, { self .module_name } : { self .capitalized_module_name } , session: AsyncSession = Depends(config.get_db) ):
309- return await self.{ self .module_name } _service.add_{ self .module_name } ({ self .module_name } , session )
312+ async def add_{ self .module_name } (self, { self .module_name } : { self .capitalized_module_name } ):
313+ return await self.{ self .module_name } _service.add_{ self .module_name } ({ self .module_name } )
310314 """
311315
312316 def settings_file (self ):
0 commit comments