aim.digifeeds.database.crud module

Digifeeds Crud operations

Operations that act on the digifeeds database

exception aim.digifeeds.database.crud.AlreadyExistsError[source]

Bases: Exception

exception aim.digifeeds.database.crud.NotFoundError[source]

Bases: Exception

aim.digifeeds.database.crud.add_item(db: Session, item: ItemCreate)[source]

Add an item to the database. All you need is a barcode.

Parameters:
  • db (sqlalchemy.orm.Session) – Digifeeds database session

  • item (schemas.ItemCreate) – Item object with a barcode

Returns:

Item object

Return type:

aim.digifeeds.database.models.Item

aim.digifeeds.database.crud.add_item_status(db: Session, item: Item, status: Status)[source]

Add a status to an item in the database

Parameters:
  • db (sqlalchemy.orm.Session) – Digifeeds database session

  • item (models.Item) – Item object

  • status (models.Status) – Status

Returns:

Item object

Return type:

aim.digifeeds.database.models.Item

aim.digifeeds.database.crud.clean(field, value)[source]
aim.digifeeds.database.crud.condition_given(field, value, operator, negation)[source]
aim.digifeeds.database.crud.delete_item(db: Session, barcode: str)[source]

Deletes a digifeeds item

Parameters:
  • db (sqlalchemy.orm.Session) – _description_

  • barcode (str) – Barcode of the item

Returns:

Item object

Return type:

aim.digifeeds.database.models.Item

aim.digifeeds.database.crud.get_item(db: Session, barcode: str)[source]

Get item from the database

Parameters:
  • db (sqlalchemy.orm.Session) – Digifeeds database session

  • barcode (str) – Barcode of the item

Returns:

Item object

Return type:

aim.digifeeds.database.models.Item

aim.digifeeds.database.crud.get_items(db: Session, limit: int, offset: int, filter: ItemFilters = None, query: str = None)[source]

Get Digifeed items from the database

Parameters:
  • db (sqlalchemy.orm.Session) – Digifeeds database session

  • filter (schemas.ItemFilters | None) – filter to apply to the list of items.

Returns:

Item object

Return type:

aim.digifeeds.database.models.Item

aim.digifeeds.database.crud.get_items_statement(filter: ItemFilters = None)[source]
aim.digifeeds.database.crud.get_items_total(db: Session, filter: ItemFilters = None, query: str = None)[source]
aim.digifeeds.database.crud.get_query_statement(query: str, stmnt)[source]
aim.digifeeds.database.crud.get_status(db: Session, name: str)[source]

Gets a given status from the database based on the name

Parameters:
  • db (sqlalchemy.orm.Session) – Digifeeds database session

  • name (str) – Name of the status

Returns:

Status object

Return type:

aim.digifeeds.database.models.Status

aim.digifeeds.database.crud.get_statuses(db: Session)[source]

Gets statuses from the database

Parameters:

db (sqlalchemy.orm.Session) – Digifeeds database session

Returns:

Status object

Return type:

aim.digifeeds.database.models.Status

aim.digifeeds.database.crud.is_date(field)[source]
aim.digifeeds.database.crud.show_query(stmnt)[source]

For debugging

aim.digifeeds.database.crud.update_hathifiles_timestamp(db: Session, item: Item, timestamp: datetime)[source]

Updates the hathifiles_timestamp field for an item and adds the in_hathifiles status

Parameters:
  • db (sqlalchemy.orm.Session) – Digifeeds database session

  • item (models.Item) – Item object

  • timestamp (datetime.datetime) – Hathifiles “rights_timestamp”

Returns:

Item object

Return type:

aim.digifeeds.database.models.Item