# from fastapi import APIRouter, Depends, HTTPException | |
# from sqlalchemy.orm import Session | |
# from models.user_info import UserInfo | |
# from config.database import get_db | |
# from typing import Optional | |
# from datetime import datetime | |
# router = APIRouter() | |
# # μ¬μ©μ μ‘°ν | |
# @router.get("/users/{user_id}") | |
# async def get_user(user_id: str, db: Session = Depends(get_db)): | |
# user = db.query(UserInfo).filter(UserInfo.id == user_id).first() | |
# if not user: | |
# raise HTTPException(status_code=404, detail="User not found") | |
# return user | |
# # μ¬μ©μ μμ± | |
# @router.post("/users") | |
# async def create_user( | |
# id: str, | |
# preferred_username: Optional[str] = None, | |
# mobile: Optional[str] = None, | |
# business_cd: Optional[str] = None, | |
# role_seq: Optional[int] = None, | |
# name: Optional[str] = None, | |
# email: Optional[str] = None, | |
# profile: Optional[str] = None, | |
# school_code: Optional[str] = None, | |
# grade: Optional[int] = None, | |
# class_name: Optional[str] = None, | |
# student_no: Optional[int] = None, | |
# creator_id: Optional[str] = None, | |
# creator_ip: Optional[str] = None, | |
# db: Session = Depends(get_db) | |
# ): | |
# new_user = UserInfo( | |
# id=id, | |
# preferred_username=preferred_username, | |
# mobile=mobile, | |
# business_cd=business_cd, | |
# role_seq=role_seq, | |
# name=name, | |
# email=email, | |
# profile=profile, | |
# school_code=school_code, | |
# grade=grade, | |
# class_name=class_name, | |
# student_no=student_no, | |
# created_at=datetime.now(), | |
# creator_id=creator_id, | |
# creator_ip=creator_ip, | |
# ) | |
# db.add(new_user) | |
# db.commit() | |
# db.refresh(new_user) | |
# return new_user | |
# # μ¬μ©μ λͺ©λ‘ μ‘°ν | |
# @router.get("/users") | |
# async def list_users(db: Session = Depends(get_db)): | |
# return db.query(UserInfo).all() | |
# # μ¬μ©μ μ λ°μ΄νΈ | |
# @router.put("/users/{user_id}") | |
# async def update_user( | |
# user_id: str, | |
# preferred_username: Optional[str] = None, | |
# mobile: Optional[str] = None, | |
# business_cd: Optional[str] = None, | |
# role_seq: Optional[int] = None, | |
# name: Optional[str] = None, | |
# email: Optional[str] = None, | |
# profile: Optional[str] = None, | |
# school_code: Optional[str] = None, | |
# grade: Optional[int] = None, | |
# class_name: Optional[str] = None, | |
# student_no: Optional[int] = None, | |
# updater_id: Optional[str] = None, | |
# updater_ip: Optional[str] = None, | |
# db: Session = Depends(get_db) | |
# ): | |
# user = db.query(UserInfo).filter(UserInfo.id == user_id).first() | |
# if not user: | |
# raise HTTPException(status_code=404, detail="User not found") | |
# # νλ μ λ°μ΄νΈ | |
# if preferred_username is not None: | |
# user.preferred_username = preferred_username | |
# if mobile is not None: | |
# user.mobile = mobile | |
# if business_cd is not None: | |
# user.business_cd = business_cd | |
# if role_seq is not None: | |
# user.role_seq = role_seq | |
# if name is not None: | |
# user.name = name | |
# if email is not None: | |
# user.email = email | |
# if profile is not None: | |
# user.profile = profile | |
# if school_code is not None: | |
# user.school_code = school_code | |
# if grade is not None: | |
# user.grade = grade | |
# if class_name is not None: | |
# user.class_name = class_name | |
# if student_no is not None: | |
# user.student_no = student_no | |
# user.updated_at = datetime.now() | |
# user.updater_id = updater_id | |
# user.updater_ip = updater_ip | |
# db.commit() | |
# db.refresh(user) | |
# return user | |
# # μ¬μ©μ μμ | |
# @router.delete("/users/{user_id}") | |
# async def delete_user(user_id: str, db: Session = Depends(get_db)): | |
# user = db.query(UserInfo).filter(UserInfo.id == user_id).first() | |
# if not user: | |
# raise HTTPException(status_code=404, detail="User not found") | |
# db.delete(user) | |
# db.commit() | |
# return {"message": "User deleted successfully"} | |