Added the Services layer to the code to do the database operation

This commit is contained in:
Gustavo Henrique Santos Souza de Miranda
2025-06-05 13:28:16 -03:00
parent 0a9c2952ec
commit 8ad57b548f
7 changed files with 129 additions and 0 deletions
View File
+52
View File
@@ -0,0 +1,52 @@
from ..models.entry import Entry
from ..models.travel_diary import TravelDiary
class EntryService:
def __init__(self,session):
self.session = session
def create(self, travel_diary_id:int, title: str, text: str, date: str, ):
travel_diary = self.session.query(TravelDiary).filter(TravelDiary.id == travel_diary_id).first()
if not travel_diary:
return None
new_entry = Entry(title,text,date,travel_diary_id)
self.session.add(new_entry)
self.session.commit()
self.session.refresh(new_entry)
return new_entry
def read_by_id(self,entry_id:int):
entry = self.session.query(Entry).filter(Entry.id == entry_id).first()
return entry
def read_all(self):
entries = self.session.query(Entry).all()
return entries
def update(self,entry_src:Entry,entry_dst:Entry):
original:Entry = self.read_by_id(entry_src.id)
if original:
original.title = entry_dst.title
original.text = entry_dst.text
original.date = entry_dst.date
original.fk_TravelDiary_id = entry_dst.fk_TravelDiary_id
original.photos = entry_dst.photos
self.session.commit()
self.session.refresh(original)
return original
def delete(self,entry_src:Entry):
excluded = self.read_by_id(entry_src.id)
if excluded is not None:
self.session.delete(excluded)
self.session.commit()
return excluded
return None
+19
View File
@@ -0,0 +1,19 @@
from pilgrim.service.entry_service import EntryService
from pilgrim.service.travel_diary_service import TravelDiaryService
class ServiceManager:
def __init__(self):
self.session = None
def set_session(self, session):
self.session = session
def get_session(self):
return self.session
def get_entry_service(self):
if self.session is not None:
return EntryService(self.session)
return None
def get_travel_diary_service(self):
if self.session is not None:
return TravelDiaryService(self.session)
return None
@@ -0,0 +1,35 @@
from ..models.travel_diary import TravelDiary
class TravelDiaryService:
def __init__(self,session):
self.session = session
def create(self, name:str):
new_travel_diary = TravelDiary(name)
self.session.add(new_travel_diary)
self.session.commit()
self.session.refresh(new_travel_diary)
return new_travel_diary
def read_by_id(self, travel_id:int):
return self.session.query(TravelDiary).get(travel_id)
def read_all(self):
return self.session.query(TravelDiary).all()
def update(self, travel_diary_src:TravelDiary,travel_diary_dst:TravelDiary):
original = self.read_by_id(travel_diary_src.id)
if original is not None:
original.name = travel_diary_dst.name
self.session.commit()
self.session.refresh(original)
return original
def delete(self, travel_diary_src:TravelDiary):
excluded = self.read_by_id(travel_diary_src.id)
if excluded is not None:
self.session.delete(travel_diary_src)
self.session.commit()
return excluded
return None