can export accepted infos

This commit is contained in:
2024-06-02 11:36:48 +02:00
parent a0024702ed
commit ad733aa9b3
5 changed files with 212 additions and 3 deletions
+61
View File
@@ -0,0 +1,61 @@
from dataclasses import dataclass
from dataclasses_json import dataclass_json
from db.mongo_manager import MongoDbManager
from models import ReserveResultPojo
@dataclass_json
@dataclass
class AcceptedResultPojo:
def __init__(self, msg: str, slot_position, sim_position, passport, email, name, phone, ccid: str, url,
created_at: str, validated_at: str):
self.message = msg
self.slot_position = slot_position
self.sim_position = sim_position
self.passport = "{}".format(passport)
self.email = email
self.name = name
self.phone = phone
self.ccid = ccid
self.url = url
self.created_at = created_at
self.validated_at = validated_at
self.mail_password = ""
self.account_password = ""
self.store = ""
self.time = ""
def __repr__(self):
return str(self.__dict__)
def get_accepted_result_from(reserve_pojo: ReserveResultPojo, mongo_db_manager: MongoDbManager,
all_contact_list) -> AcceptedResultPojo:
if reserve_pojo.lastName is None or len(reserve_pojo.lastName) == 0:
for _contact in all_contact_list:
if _contact.mail == reserve_pojo.mail:
reserve_pojo.lastName = _contact.last_name
reserve_pojo.firstName = _contact.first_name
reserve_pojo.phone = _contact.phone
reserve_pojo.passport = _contact.passport
if reserve_pojo is None:
# send email even there are no reserve info
return AcceptedResultPojo("", slot_position=0, sim_position=0,
passport="", email="", phone="",
name="", ccid="",
url="", created_at="", validated_at="")
else:
toReturn = AcceptedResultPojo(reserve_pojo.message, slot_position=reserve_pojo.slot_position,
sim_position=reserve_pojo.sim_position,
passport=reserve_pojo.passport, email=reserve_pojo.email,
phone=reserve_pojo.phone,
name="{} {}".format(reserve_pojo.lastName, reserve_pojo.firstName),
ccid=reserve_pojo.ccid,
url=reserve_pojo.url, created_at=reserve_pojo.created_at,
validated_at=reserve_pojo.validated_at)
toReturn.mail_password = mongo_db_manager.get_code_for_email(reserve_pojo.email)
return toReturn
+54
View File
@@ -0,0 +1,54 @@
class RegisteredUserPojo:
phone: str
city: str
last_name: str
first_name: str
mail: str
address: str
zip_code: str
password: str = None
def __init__(self, phone_number: str, last_name: str, first_name: str, mail: str,
address: str = "",
zip_code: str = None, city: str = None):
self.phone = "0" + str(int(phone_number))
self.city = city
self.last_name = last_name
self.first_name = first_name
self.address = address
self.mail = mail
self.zip_code = zip_code
def __repr__(self):
return "last_name:{}, first_name:{}, email:{}, password:{}".format(self.last_name, self.first_name, self.mail,
self.password)
def to_firestore_dict(self):
dest = {
u'phone': self.phone,
u'city': self.city,
u'last_name': self.last_name,
u'first_name': self.first_name,
u'mail': self.mail,
u'address': self.address,
u'zip_code': self.zip_code,
u'password': self.password
}
return dest
@staticmethod
def from_firestore_dict(source):
address = source['address']
phone = source['phone']
zip_code = source['zip_code']
city = source['city']
email = source['mail']
last_name = source['last_name']
first_name = source['first_name']
result = RegisteredUserPojo(address=address, phone_number=phone, city=city, zip_code=zip_code,
mail=email,
last_name=last_name, first_name=first_name)
if 'password' in source:
result.password = source['password']
return result