TIF_E41253310/Backend/app/routers/prodi.py

51 lines
1.2 KiB
Python

from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from typing import List
from app.config.database import get_db
from app.controllers.prodi import ProdiController
from app.schemas.prodi import (
ProdiCreate,
ProdiUpdate,
ProdiResponse,
)
router = APIRouter(
tags=["Prodi"]
)
@router.get("/", response_model=List[ProdiResponse])
def get_all_prodi(db: Session = Depends(get_db)):
return ProdiController.get_all(db)
@router.get("/{prodi_id}", response_model=ProdiResponse)
def get_prodi(prodi_id: int, db: Session = Depends(get_db)):
return ProdiController.get_by_id(db, prodi_id)
@router.post("/", response_model=ProdiResponse, status_code=201)
def create_prodi(
prodi: ProdiCreate,
db: Session = Depends(get_db)
):
return ProdiController.create(db, prodi)
@router.put("/{prodi_id}", response_model=ProdiResponse)
def update_prodi(
prodi_id: int,
prodi: ProdiUpdate,
db: Session = Depends(get_db)
):
return ProdiController.update(db, prodi_id, prodi)
@router.delete("/{prodi_id}")
def delete_prodi(
prodi_id: int,
db: Session = Depends(get_db)
):
ProdiController.delete(db, prodi_id)
return {"message": "Data prodi berhasil dihapus"}