diff --git a/api/src/alembic.ini b/api/alembic.ini similarity index 100% rename from api/src/alembic.ini rename to api/alembic.ini diff --git a/api/src/api/models.py b/api/src/api/models.py index 39a1edb..9aa03d4 100644 --- a/api/src/api/models.py +++ b/api/src/api/models.py @@ -1,7 +1,6 @@ """Describes models used in the project""" from typing import List, Union -from api.databases import Base from geoalchemy2 import Geography from sqlalchemy import ( Boolean, @@ -18,6 +17,8 @@ from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.types import LargeBinary +from .databases import Base + class City(Base): """City model""" diff --git a/api/src/auth/config.py b/api/src/auth/config.py index e5c3ff6..a88fcb5 100644 --- a/api/src/auth/config.py +++ b/api/src/auth/config.py @@ -1,5 +1,5 @@ -from api.config import EMAIL, EMAIL_PASSWORD from fastapi_mail import ConnectionConfig +from src.api.config import EMAIL, EMAIL_PASSWORD conf = ConnectionConfig( MAIL_USERNAME=EMAIL, diff --git a/api/src/auth/manager.py b/api/src/auth/manager.py index 76236e8..02e1833 100644 --- a/api/src/auth/manager.py +++ b/api/src/auth/manager.py @@ -2,15 +2,15 @@ from fastapi import Depends, Request -from api.config import SECRET -from auth.config import conf -from auth.exceptions import NicknameAlreadyTaken -from auth.models import User, get_user_db -from auth.schemas import CredentialsSchema, EmailSchema from fastapi_mail import FastMail, MessageSchema, MessageType from fastapi_users import BaseUserManager, IntegerIDMixin, exceptions, models, schemas from sqlalchemy import Integer from sqlalchemy.exc import IntegrityError +from src.api.config import SECRET +from src.auth.config import conf +from src.auth.exceptions import NicknameAlreadyTaken +from src.auth.models import User, get_user_db +from src.auth.schemas import CredentialsSchema, EmailSchema from starlette.responses import JSONResponse diff --git a/api/src/auth/models.py b/api/src/auth/models.py index 6342086..9fbdc62 100644 --- a/api/src/auth/models.py +++ b/api/src/auth/models.py @@ -1,11 +1,11 @@ from fastapi import Depends -from api.databases import Base, get_async_session from fastapi_users.db import SQLAlchemyBaseUserTable, SQLAlchemyUserDatabase from sqlalchemy import Column, Integer, String from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.sql.expression import text from sqlalchemy.sql.sqltypes import TIMESTAMP +from src.api.databases import Base, get_async_session class User(SQLAlchemyBaseUserTable[int], Base): diff --git a/api/src/auth/router/__init__.py b/api/src/auth/router/__init__.py index 8a68713..0b8a65f 100644 --- a/api/src/auth/router/__init__.py +++ b/api/src/auth/router/__init__.py @@ -1,7 +1,7 @@ from fastapi import APIRouter -from auth.schemas import UserCreate, UserOut, UserRead, UserUpdate -from auth.utils import auth_backend, fastapi_users +from src.auth.schemas import UserCreate, UserOut, UserRead, UserUpdate +from src.auth.utils import auth_backend, fastapi_users router = APIRouter(prefix="/api", tags=["auth"]) diff --git a/api/src/auth/router/auth.py b/api/src/auth/router/auth.py index 0b3995e..669fed1 100644 --- a/api/src/auth/router/auth.py +++ b/api/src/auth/router/auth.py @@ -3,13 +3,13 @@ from fastapi import APIRouter, Depends, HTTPException, Request, status from fastapi.openapi.models import Response -from auth.manager import UserManager -from auth.schemas import CredentialsSchema from fastapi_users import models from fastapi_users.authentication import AuthenticationBackend, Authenticator, Strategy from fastapi_users.manager import UserManagerDependency from fastapi_users.openapi import OpenAPIResponseType from fastapi_users.router.common import ErrorCode, ErrorModel +from src.auth.manager import UserManager +from src.auth.schemas import CredentialsSchema def get_auth_router( diff --git a/api/src/auth/utils.py b/api/src/auth/utils.py index 9589d2f..c7a4f88 100644 --- a/api/src/auth/utils.py +++ b/api/src/auth/utils.py @@ -1,8 +1,5 @@ from fastapi import APIRouter -from api.config import SECRET -from auth.manager import get_user_manager -from auth.models import User from fastapi_users import FastAPIUsers from fastapi_users.authentication import ( AuthenticationBackend, @@ -10,6 +7,9 @@ JWTStrategy, ) from sqlalchemy import Integer +from src.api.config import SECRET +from src.auth.manager import get_user_manager +from src.auth.models import User from .router.auth import get_auth_router diff --git a/api/src/main.py b/api/src/main.py index d59788c..06c90ed 100644 --- a/api/src/main.py +++ b/api/src/main.py @@ -2,9 +2,9 @@ from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware -from api.config import CORS_ORIGINS -from api.databases import create_db_and_tables, engine -from auth import router +from src.api.config import CORS_ORIGINS +from src.api.databases import create_db_and_tables, engine +from src.auth import router app = FastAPI() @@ -19,9 +19,9 @@ ) -@app.on_event("startup") -async def init_tables(): - await create_db_and_tables() +# @app.on_event("startup") +# async def init_tables(): +# await create_db_and_tables() # @app.on_event("startup") diff --git a/deployment/Dockerfile.backend b/deployment/Dockerfile.backend index 33d4aef..77715e3 100644 --- a/deployment/Dockerfile.backend +++ b/deployment/Dockerfile.backend @@ -10,4 +10,4 @@ COPY ./api/requirements/docker.txt ./requirements.txt RUN pip install --no-cache-dir --root-user-action=ignore --upgrade pip && \ pip install --no-cache-dir --root-user-action=ignore -r requirements.txt -CMD ["sh","-c","alembic upgrade head && uvicorn main:app --host 0.0.0.0 --port 8000 --reload"] +CMD ["sh","-c","alembic upgrade head && uvicorn src.main:app --host 0.0.0.0 --port 8000 --reload"] diff --git a/docker-compose.yml b/docker-compose.yml index 715aaee..22bfe2c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -28,9 +28,9 @@ services: condition: service_healthy restart: unless-stopped volumes: - - ./api/src:/api/ + - ./api/src:/api/src - ./api/migrations:/api/migrations - - ./api/src/alembic.ini:/api/alembic.ini + - ./api/alembic.ini:/api/alembic.ini ui: build: