This commit is contained in:
dderbentsov
2023-07-13 02:14:21 +03:00
parent bc339cefb9
commit 322f14c096
7 changed files with 86 additions and 14 deletions

View File

@@ -14,6 +14,6 @@ def create_app() -> FastAPI:
from personal_info.routers import persons
app.include(persons.router)
app.include_router(persons.router)
return app

View File

@@ -1,6 +1,6 @@
from functools import lru_cache
from typing import Optional
from os import getenv
from pydantic import BaseSettings, PostgresDsn
class Settings(BaseSettings):
@@ -11,5 +11,23 @@ def get_settings() -> Settings:
settings = Settings() # type: ignore
print('333333333333333333333333333333333333333333')
print(settings)
print(getenv("POSTGRES_DB"))
if (db := getenv("POSTGRES_DB")) is not None:
# settings.database_url = PostgresDsn.build(
# scheme="postgresql",
# user=settings.database_url.user,
# password=settings.database_url.password,
# host=settings.database_url.host,
# port=settings.database_url.port,
# path=f"/{db}",
# )
settings.database_url = PostgresDsn.build(
scheme="postgresql",
user='barbie',
password='redStar4,1',
host='localhost',
port='5432',
path=f"/{db}",
)
#CONTINUE
return settings

View File

@@ -9,8 +9,14 @@ class Person(BaseModel):
first_name: str
last_name: str
class PersonCreate(Person):
pass
class Config:
orm_mode = True
class PersonCreate(BaseModel):
first_name: str
last_name: str
class PersonDetail(Person):
pass
id: UUID4
first_name: str
last_name: str

View File

@@ -1,17 +1,20 @@
from fastapi import Depends
from fastapi.routing import APIRouter
from pydantic.types import UUID4
from typing import List, Optional
from personal_info.db import models
from personal_info.db.schemas import Person, PersonDetail
from personal_info.db.schemas import Person, PersonDetail, PersonCreate
from personal_info.services import PersonService, get_persons_service
router = APIrouter(prefix='/people')
router = APIRouter(prefix='/persons')
@router.get('/', response_model=List[Person])
async def list_persons(
persons_service: PersonService = Depends(get_persons_service),
) -> List[models.Person]:
print('=======================================')
print(persons_service.list())
return persons_service.list()
@router.get('/{person_id}', response_model=PersonDetail)

View File

@@ -11,9 +11,10 @@ class PersonService(BaseService[Person, PersonCreate, Any]):
def __init__(self, db_session: Session):
super(PersonService, self).__init__(Person, db_session)
def create(self, obj: PersonCreate) -> Person:
person: Person = Person()
self.db_session.add(person)
self.db_session.flush()
self.db_session.commit()
return person
# def create(self, obj: PersonCreate) -> Person:
# person: Person = Person()
# self.db_session.add(person)
# self.db_session.flush()
# self.db_session.commit()
# return person