Source code for backend.app.api.publications
from fastapi import APIRouter, Depends
from sqlmodel import Session
from backend.app.models.publication import Publication
from backend.database import get_db
publication_router = APIRouter(
prefix="/publications", tags=["Publications Referencing Datasets"]
)
[docs]
@publication_router.get("/")
async def get_publications(db: Session = Depends(get_db)):
"""
Retrieve all publications.
This endpoint retrieves all publications stored in the database.
:param db: The database session.
:type db: Session
:return: A list of all publications.
:rtype: list[Publication]
"""
return db.query(Publication).all()
[docs]
@publication_router.post("/")
async def create_publication(pub: Publication, db: Session = Depends(get_db)):
"""
Create a new publication.
This endpoint allows the creation of a new publication in the database.
:param pub: The publication information to be added.
:type pub: Publication
:param db: The database session.
:type db: Session
:return: The created publication.
:rtype: Publication
"""
db.add(pub)
db.commit()
db.refresh(pub)
return pub