init commit
This commit is contained in:
46
db/__init__.py
Normal file
46
db/__init__.py
Normal file
@@ -0,0 +1,46 @@
|
||||
from typing import List
|
||||
from pydantic import BaseModel, Field, TypeAdapter
|
||||
from uuid import UUID, uuid4
|
||||
import json
|
||||
|
||||
|
||||
class Record(BaseModel):
|
||||
id: UUID = Field(default_factory=uuid4)
|
||||
name: str | None = ''
|
||||
description:str | None = ''
|
||||
img_path: str | None = ''
|
||||
|
||||
|
||||
class DB:
|
||||
|
||||
records: List[Record] = []
|
||||
|
||||
path = ''
|
||||
|
||||
def __init__(self, path=''):
|
||||
if path != '':
|
||||
with open(path, 'r') as file:
|
||||
js_data = json.load(file)
|
||||
tmp = []
|
||||
for item in js_data:
|
||||
tmp.append(json.loads(item))
|
||||
js_data = tmp
|
||||
self.records = [Record(**model_data) for model_data in js_data]
|
||||
self.path = path
|
||||
|
||||
|
||||
def add_record(self, name='', description='', img_path=''):
|
||||
new_rec = Record(name=name, description=description, img_path=img_path)
|
||||
self.records.append(new_rec)
|
||||
with open(self.path, 'w') as file:
|
||||
model_list_json = [record.model_dump_json() for record in self.records]
|
||||
json.dump(model_list_json, file)
|
||||
|
||||
def edit_record(self, id):
|
||||
pass
|
||||
|
||||
|
||||
def delete_record(self, id):
|
||||
for i in range(len(self.records)):
|
||||
if self.records[i].id == id:
|
||||
self.records.pop(i)
|
||||
Reference in New Issue
Block a user