refs #0 The root commit.

This commit is contained in:
sbps-test user
2023-09-13 20:37:14 +03:00
commit 10eb607154
66 changed files with 1643 additions and 0 deletions

68
back/core/crud.py Normal file
View File

@@ -0,0 +1,68 @@
import os
from sqlalchemy.orm import Session
def add_item(db: Session, cls, item):
db_item = cls(**item.dict())
db.add(db_item)
db.commit()
db.refresh(db_item)
return db_item
def view_item(db: Session, cls, item_id: int):
return db.query(cls).filter(cls.id == item_id).first()
def edit_item(db: Session, cls, item_id: int, item):
db_item = db.query(cls).filter(cls.id == item_id).first()
for key, value in item.dict().items():
setattr(db_item, key, value)
db.commit()
db.refresh(db_item)
return db_item
def remove_item(db: Session, cls, item_id: int):
db_item = db.query(cls).filter(cls.id == item_id).first()
db.delete(db_item)
db.commit()
return db_item
def view_items(db: Session, cls, skip: int = 0, limit: int = 100):
return db.query(cls).offset(skip).limit(limit).all()
def add_file(db: Session, cls, item_id: int, field: str, file):
content = file.file.read()
if content:
file_path = os.path.join("media", file.filename)
else:
file_path = None
if file_path:
with open(file_path, "wb") as f:
f.write(content)
db_item = db.query(cls).filter(cls.id == item_id).first()
setattr(db_item, field, file_path)
db.commit()
db.refresh(db_item)
return db_item
def remove_file(db: Session, cls, item_id: int, field: str):
db_item = db.query(cls).filter(cls.id == item_id).first()
file_path = getattr(db_item, field)
if file_path:
os.remove(file_path)
setattr(db_item, field, None)
db.commit()
db.refresh(db_item)
return db_item