add method for import data

This commit is contained in:
Thomas Peetz
2025-05-19 14:16:30 +02:00
parent 3197288eee
commit 20ed0b2f40
8 changed files with 387 additions and 8 deletions
+71
View File
@@ -1,4 +1,5 @@
from datetime import datetime
from typing import Any, AnyStr, Dict
from sqlalchemy import Column, ForeignKey, Integer, String, Boolean
from sqlalchemy.orm import relationship, mapped_column, Mapped
@@ -27,6 +28,18 @@ class Profile(Base, BaseMixin):
full_name += self.last_name
return full_name
def import_dict(self, import_data: Dict[AnyStr, Any]):
self.id = import_data['id']
self.created_date = import_data['created_date']
self.last_modified_date = import_data['last_modified_date']
self.version = import_data['version']
self.first_name = import_data['first_name']
self.last_name = import_data['last_name']
self.user_name = import_data['user_name']
self.email = import_data['email']
self.password = import_data['password']
self.enabled = import_data['enabled']
class Token(Base, BaseMixin):
__tablename__ = "token"
@@ -37,12 +50,31 @@ class Token(Base, BaseMixin):
profile_id = Column(String, ForeignKey("profile.id"), nullable=False)
profile = relationship("Profile", back_populates="tokens")
def import_dict(self, import_data: Dict[AnyStr, Any]):
self.id = import_data['id']
self.created_date = import_data['created_date']
self.last_modified_date = import_data['last_modified_date']
self.version = import_data['version']
self.token = import_data['token']
self.name = import_data['name']
self.last_used_date = import_data['last_used_date']
self.enabled = import_data['enabled']
self.profile_id = import_data['profile_id']
self.password = import_data['password']
class Permission(Base, BaseMixin):
__tablename__ = "permission"
name = Column(String, nullable=False)
assignments = relationship("Assignment")
def import_dict(self, import_data: Dict[AnyStr, Any]):
self.id = import_data['id']
self.created_date = import_data['created_date']
self.last_modified_date = import_data['last_modified_date']
self.version = import_data['version']
self.name = import_data['name']
class Assignment(Base, BaseMixin):
__tablename__ = "assignment"
@@ -51,12 +83,28 @@ class Assignment(Base, BaseMixin):
permission_id = Column(String, ForeignKey("permission.id"), nullable=False)
permission = relationship("Permission", back_populates="assignments")
def import_dict(self, import_data: Dict[AnyStr, Any]):
self.id = import_data['id']
self.created_date = import_data['created_date']
self.last_modified_date = import_data['last_modified_date']
self.version = import_data['version']
self.profile_id = import_data['profile_id']
self.permission_id = import_data['permission_id']
class ModuleData(Base, BaseMixin):
__tablename__ = "module_data"
module_name = Column(String, nullable=False)
import_data = Column(Boolean)
def import_dict(self, import_data: Dict[AnyStr, Any]):
self.id = import_data['id']
self.created_date = import_data['created_date']
self.last_modified_date = import_data['last_modified_date']
self.version = import_data['version']
self.module_name = import_data['module_name']
self.import_data = import_data['import_data']
class MailAccount(Base, BaseMixin):
__tablename__ = "mail_account"
@@ -67,6 +115,18 @@ class MailAccount(Base, BaseMixin):
password = Column(String)
start_tls = Column(Boolean)
def import_dict(self, import_data: Dict[AnyStr, Any]):
self.id = import_data['id']
self.created_date = import_data['created_date']
self.last_modified_date = import_data['last_modified_date']
self.version = import_data['version']
self.host = import_data['host']
self.port = import_data['port']
self.protocol = import_data['protocol']
self.user_name = import_data['user_name']
self.password = import_data['password']
self.start_tls = import_data['start_tls']
class Mail(Base, BaseMixin):
__tablename__ = "mail"
@@ -75,3 +135,14 @@ class Mail(Base, BaseMixin):
body: Mapped[str] = mapped_column()
sent_date: Mapped[datetime] = mapped_column()
received_date: Mapped[datetime] = mapped_column()
def import_dict(self, import_data: Dict[AnyStr, Any]):
self.id = import_data['id']
self.created_date = import_data['created_date']
self.last_modified_date = import_data['last_modified_date']
self.version = import_data['version']
self.folder = import_data['folder']
self.subject = import_data['subject']
self.body = import_data['body']
self.sent_date = import_data['sent_date']
self.received_date = import_data['received_date']