1
0
mirror of https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git synced 2025-08-14 00:25:46 +02:00
Files
AdministrationItDepartmens/backend/app/routers/employees.py
2025-01-02 00:22:32 +06:00

48 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Employee routes"""
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from typing import List
from ..database import get_db
from ..crud import employees as employees_crud
from ..schemas.employee import EmployeeCreate, Employee
from ..utils.auth import get_password_hash
router = APIRouter()
@router.get("/employees/", response_model=List[Employee])
def get_employees(db: Session = Depends(get_db)):
"""Get all employees"""
try:
return employees_crud.get_employees(db)
except Exception as e:
raise HTTPException(
status_code=500,
detail=f"Ошибка при получении списка сотрудников: {str(e)}"
)
@router.post("/employees/", response_model=Employee)
def create_employee(employee: EmployeeCreate, db: Session = Depends(get_db)):
"""Create new employee"""
try:
# Check if employee already exists
db_employee = employees_crud.get_employee_by_lastname(db, employee.last_name)
if db_employee:
raise HTTPException(
status_code=400,
detail="Сотрудник с такой фамилией уже существует"
)
# Hash password
employee_dict = employee.model_dump()
employee_dict["password"] = get_password_hash(employee_dict["password"])
# Create employee
return employees_crud.create_employee(db=db, employee_data=employee_dict)
except HTTPException:
raise
except Exception as e:
raise HTTPException(
status_code=500,
detail=f"Ошибка при создании сотрудника: {str(e)}"
)