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