1
0
mirror of https://github.com/ijaric/voice_assistant.git synced 2025-05-24 14:33:26 +00:00

Review fix

This commit is contained in:
Григорич 2023-09-19 17:16:30 +03:00
parent cb98517f67
commit cf1a29d520
37 changed files with 55 additions and 70 deletions

View File

@ -1,27 +0,0 @@
from jose import JWTError, jwt
from pydantic import ValidationError
from fastapi import FastAPI, HTTPException, Security, status
from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer
from lib.api.schemas.entity import Token
from lib.app import settings as lib_app_settings
app = FastAPI()
settings = lib_app_settings.get_settings()
security = HTTPBearer()
def get_token_data(
authorization: HTTPAuthorizationCredentials = Security(security),
) -> Token:
token = authorization.credentials
try:
secret_key = settings.jwt_secret_key
payload = jwt.decode(token, secret_key, algorithms=["HS256"])
return Token(**payload)
except (JWTError, ValidationError):
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Could not validate credentials",
)

View File

@ -1,16 +1,15 @@
import logging
import uvicorn
import lib.app.app as app_module
from lib.app import settings as libs_app_settings
import uvicorn
from lib.app import settings as app_settings
logger = logging.getLogger(__name__)
app_instance = app_module.Application()
app = app_instance.create_app()
settings = libs_app_settings.get_settings()
settings = app_settings.get_settings()
if __name__ == "__main__":

View File

@ -10,7 +10,7 @@ services:
env_file:
- .env
ports:
- "${db_port}:5432"
- "${db_port}:{db_port}"
volumes:
- postgres_data:/var/lib/postgresql/data/
restart: always
@ -20,12 +20,12 @@ services:
api:
build:
context: .
container_name: fastapi
container_name: fastapi_app
image: fastapi_app
restart: always
entrypoint: ["/opt/app/entrypoint.sh"]
ports:
- "${server_port}:5432"
- "${server_port}:{server_port}"
depends_on:
- db
env_file:
@ -45,15 +45,6 @@ services:
networks:
- api_network
redis:
image: redis:7.0.11
restart: always
command: redis-server --bind 0.0.0.0
ports:
- "6379:6379"
networks:
- backend_network
volumes:
postgres_data:

View File

@ -10,7 +10,7 @@ services:
env_file:
- .env
ports:
- "127.0.0.1:${db_port}:5432"
- "127.0.0.1:${db_port}:{db_port}"
volumes:
- postgres_data:/var/lib/postgresql/data/
restart: always
@ -20,7 +20,7 @@ services:
api:
build:
context: .
container_name: fastapi
container_name: fastapi_app
image: fastapi_app
restart: always
entrypoint: ["/opt/app/entrypoint.sh"]
@ -43,13 +43,6 @@ services:
networks:
- api_network
redis:
image: redis:7.0.11
restart: always
command: redis-server --bind 0.0.0.0
networks:
- backend_network
volumes:
postgres_data:

View File

@ -1,7 +1,6 @@
import uuid
import sqlalchemy
from sqlalchemy import Column, DateTime
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.ext.declarative import declared_attr
@ -9,7 +8,7 @@ from sqlalchemy.ext.declarative import declared_attr
class BaseMixin:
@declared_attr
def id(cls):
return Column(
return sqlalchemy.Column(
UUID(as_uuid=True),
primary_key=True,
default=uuid.uuid4,
@ -19,8 +18,8 @@ class BaseMixin:
@declared_attr
def created_at(cls):
return Column(DateTime, server_default=sqlalchemy.func.now())
return sqlalchemy.Column(sqlalchemy.DateTime, server_default=sqlalchemy.sql.func.now())
@declared_attr
def updated_at(cls):
return Column(DateTime, server_default=sqlalchemy.func.now())
return sqlalchemy.Column(sqlalchemy.DateTime, server_default=sqlalchemy.sql.func.now())

View File

@ -0,0 +1,27 @@
import fastapi
from jose import JWTError, jwt
from pydantic import ValidationError
from lib.api import schemas as app_schemas
from lib.app import settings as app_settings
app = fastapi.FastAPI()
settings = app_settings.get_settings()
security = fastapi.security.HTTPBearer()
def get_token_data(
authorization: fastapi.security.HTTPAuthorizationCredentials = fastapi.Security(security),
) -> app_schemas.entity.Token:
token = authorization.credentials
try:
secret_key = settings.jwt_secret_key
payload = jwt.decode(token, secret_key, algorithms=["HS256"])
return app_schemas.entity.Token(**payload)
except (JWTError, ValidationError):
raise fastapi.HTTPException(
status_code=fastapi.status.HTTP_401_UNAUTHORIZED,
detail="Could not validate credentials",
)

View File

@ -1,9 +1,10 @@
import logging
import logging.config as logging_config
import fastapi
import lib.api.handlers as admin_api_handlers
import fastapi
from .logger import LOGGING
from .settings import get_settings

View File

@ -1,11 +1,10 @@
import typing
from lib.app import settings as app_settings
from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine
from sqlalchemy.orm import DeclarativeBase
from lib.app import settings as lib_app_settings
settings = lib_app_settings.get_settings()
settings = app_settings.get_settings()
# Создаём базовый класс для будущих моделей

View File

@ -1,10 +1,9 @@
import logging
import faker
import backend.user.handlers as user_handlers
import backend.user.repositories as user_repositories
import backend.user.services as user_services
import faker
logger = logging.getLogger(__name__)
@ -12,7 +11,9 @@ logger = logging.getLogger(__name__)
class App:
def __init__(self):
self._faker_client = faker.Faker()
self._user_faker_client2 = user_repositories.UserFakerClient2(self._faker_client)
self._user_faker_client2 = user_repositories.UserFakerClient2(
self._faker_client
)
self._user_service = user_services.UserService(self._user_faker_client2)
self._handler1 = user_handlers.UserHandler1(self._user_service)
@ -28,7 +29,7 @@ class App:
del self._faker_client
if __name__ == "__main__.py":
if __name__ == "__main__":
app = App()
try:
app.run()

View File

@ -33,5 +33,5 @@ def main() -> None:
exit(os.EX_SOFTWARE)
if __name__ == "__main__.py":
if __name__ == "__main__":
main()

View File

@ -1,7 +1,6 @@
import json
import aiohttp.web as aiohttp_web
import lib.utils.aiohttp as aiohttp_utils

View File

@ -4,11 +4,10 @@ import logging
import typing
import aiohttp.web as aiohttp_web
import typing_extensions
import lib.api.rest.v1.health as health_handlers
import lib.app.errors as app_errors
import lib.app.settings as app_settings
import typing_extensions
logger = logging.getLogger(__name__)
@ -103,7 +102,9 @@ class Application:
logger.info("HTTP server has been interrupted")
except BaseException as unexpected_error:
logger.exception("HTTP server failed to start")
raise app_errors.StartServerError("HTTP server failed to start") from unexpected_error
raise app_errors.StartServerError(
"HTTP server failed to start"
) from unexpected_error
async def dispose(self) -> None:
logger.info("Application is shutting down...")
@ -121,7 +122,9 @@ class Application:
if len(dispose_errors) != 0:
logger.error("Application has shut down with errors")
raise app_errors.DisposeError("Application has shut down with errors, see logs above")
raise app_errors.DisposeError(
"Application has shut down with errors, see logs above"
)
logger.info("Application has successfully shut down")