Spaces:
Sleeping
Sleeping
| from fastapi import APIRouter | |
| from uuid import uuid4 | |
| from datetime import datetime | |
| from ..models.request_models import ( | |
| LeaveRequest, | |
| PermitRequest, | |
| PresenceRequest | |
| ) | |
| from ..data.dummy_data import ( | |
| employee_db, | |
| leave_db, | |
| permit_db, | |
| presence_db | |
| ) | |
| router = APIRouter() | |
| def find_employee(employee_id: str): | |
| for emp in employee_db: | |
| if emp["employee_id"] == employee_id: | |
| return emp | |
| return None | |
| def get_employee_by_id(employee_id: str): | |
| employee = find_employee(employee_id) | |
| if not employee: | |
| return {} | |
| # raise HTTPException( | |
| # status_code=404, | |
| # detail="Employee not found" | |
| # ) | |
| remaining_leave = ( | |
| employee["annual_leave_quota"] | |
| - employee["annual_leave_used"] | |
| ) | |
| return { | |
| **employee, | |
| "remaining_leave": remaining_leave | |
| } | |
| # ========================= | |
| # LEAVE | |
| # ========================= | |
| def get_leave(): | |
| return leave_db | |
| def create_leave(data: LeaveRequest): | |
| item = { | |
| "id": str(uuid4()), | |
| **data.dict(), | |
| "created_at": datetime.now() | |
| } | |
| leave_db.append(item) | |
| return { | |
| "message": "Leave created successfully", | |
| "data": item | |
| } | |
| # ========================= | |
| # PERMIT | |
| # ========================= | |
| def get_permit(): | |
| return permit_db | |
| def create_permit(data: PermitRequest): | |
| item = { | |
| "id": str(uuid4()), | |
| **data.dict(), | |
| "created_at": datetime.now() | |
| } | |
| permit_db.append(item) | |
| return { | |
| "message": "Permit created successfully", | |
| "data": item | |
| } | |
| # ========================= | |
| # PRESENCE | |
| # ========================= | |
| def get_presence(): | |
| return presence_db | |
| def create_presence(data: PresenceRequest): | |
| item = { | |
| "id": str(uuid4()), | |
| **data.dict(), | |
| "created_at": datetime.now() | |
| } | |
| presence_db.append(item) | |
| return { | |
| "message": "Presence created successfully", | |
| "data": item | |
| } |