Skip to content

Commit

Permalink
Merge pull request #10 from morecleverer/main
Browse files Browse the repository at this point in the history
회원가입 db 연결
  • Loading branch information
morecleverer authored Dec 31, 2024
2 parents 9a00225 + fa101a8 commit ecbe558
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 38 deletions.
2 changes: 1 addition & 1 deletion snuvote/app/user/dto/responses.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Self
from pydantic import BaseModel

from snuvote.app.user.models import User
from snuvote.database.models import User


class MyProfileResponse(BaseModel):
Expand Down
8 changes: 0 additions & 8 deletions snuvote/app/user/models.py

This file was deleted.

2 changes: 1 addition & 1 deletion snuvote/app/user/service.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Annotated

from fastapi import Depends
from snuvote.app.user.models import User
from snuvote.database.models import User
from snuvote.app.user.store import UserStore


Expand Down
41 changes: 14 additions & 27 deletions snuvote/app/user/store.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,15 @@

from fastapi import Depends
from snuvote.app.user.errors import EmailAlreadyExistsError, UserUnsignedError, UserIdAlreadyExistsError
from snuvote.app.user.models import User
from snuvote.database.models import User

#아직 db 연결 구현 안했습니다.
#from wapang.database.connection import get_db_session
#from sqlalchemy import select, delete
#from sqlalchemy.orm import Session
#from sqlalchemy.ext.asyncio import AsyncSession
from snuvote.database.connection import get_db_session
from sqlalchemy import select, delete
from sqlalchemy.orm import Session

class UserStore:
def __init__(self) -> None:
self.id_counter = 0
self.store: dict[int, User] = {}
self.userid_index: dict[str, int] = {}
self.email_index: dict[str, int] = {}
def __init__(self, session: Annotated[Session, Depends(get_db_session)]) -> None:
self.session = session


def add_user(self, userid: str, password: str, email: str):
Expand All @@ -26,23 +21,15 @@ def add_user(self, userid: str, password: str, email: str):
if self.get_user_by_email(email):
raise EmailAlreadyExistsError()

self.id_counter += 1
user = User(
id=self.id_counter, userid=userid, password=password, email=email
)
self.store[user.id] = user
self.userid_index[user.userid] = user.id
self.email_index[user.email] = user.id
user = User(userid=userid, password=password, email=email)
self.session.add(user)
self.session.commit()

return user


def get_user_by_userid(self, userid: str) -> User | None:
user_id = self.userid_index.get(userid)
if not user_id:
return None
return self.store[user_id]

return self.session.scalar(select(User).where(User.userid == userid))

def get_user_by_email(self, email: str) -> User | None:
user_id = self.email_index.get(email)
if not user_id:
return None
return self.store[user_id]
return self.session.scalar(select(User).where(User.email == email))
2 changes: 1 addition & 1 deletion snuvote/app/user/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from starlette.status import HTTP_200_OK, HTTP_201_CREATED, HTTP_401_UNAUTHORIZED
from snuvote.app.user.dto.requests import UserSignupRequest
from snuvote.app.user.dto.responses import MyProfileResponse
from snuvote.app.user.models import User
from snuvote.database.models import User
from snuvote.app.user.service import UserService

user_router = APIRouter()
Expand Down

0 comments on commit ecbe558

Please sign in to comment.