51 lines
1.2 KiB
Python
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"} |