can insert accepted appointment to db
This commit is contained in:
@@ -4,6 +4,7 @@ import time
|
||||
|
||||
from pymongo import MongoClient
|
||||
|
||||
from models.AcceptedResultPojo import AcceptedResultPojo
|
||||
from models.LinkPojo import LinkPojo
|
||||
from models.ReserveResultPojo import ReserveResultPojo
|
||||
from models.contact_pojo import ContactPojo
|
||||
@@ -132,6 +133,13 @@ class MongoDbManager:
|
||||
print(error)
|
||||
return email_list
|
||||
|
||||
def insert_accepted_reserve(self, accepted_pojo: AcceptedResultPojo):
|
||||
try:
|
||||
collection_to_use = self.db[ACCEPTED_APPOINTMENT_LIST]
|
||||
collection_to_use.insert_one(accepted_pojo.to_firestore_dict())
|
||||
except Exception as Error:
|
||||
self.logger.info(Error)
|
||||
|
||||
def get_links_to_validate(self) -> list:
|
||||
collection_name = LINKS_TO_VALIDATE
|
||||
link_list = []
|
||||
|
||||
@@ -2,22 +2,21 @@ 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,
|
||||
def __init__(self, id, msg: str, slot_position, sim_position, passport, email, name, firstName, lastName, phone,
|
||||
ccid: str, url,
|
||||
created_at: str, validated_at: str):
|
||||
self.message = msg
|
||||
self.id = id
|
||||
self.slot_position = slot_position
|
||||
self.sim_position = sim_position
|
||||
self.passport = "{}".format(passport)
|
||||
self.email = email
|
||||
self.name = name
|
||||
self.firstName = firstName
|
||||
self.lastName = lastName
|
||||
self.phone = phone
|
||||
self.ccid = ccid
|
||||
self.url = url
|
||||
@@ -31,31 +30,21 @@ class AcceptedResultPojo:
|
||||
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
|
||||
def to_firestore_dict(self):
|
||||
dest = {
|
||||
u'id': self.id,
|
||||
u'phone': self.phone,
|
||||
u'firstName': self.firstName,
|
||||
u'lastName': self.lastName,
|
||||
u'message': self.message,
|
||||
u'email': self.email,
|
||||
u'passport': self.passport,
|
||||
u'url': self.url,
|
||||
u'ccid': self.ccid,
|
||||
u'store_type': self.store,
|
||||
u'accepted': 'ACCEPTED',
|
||||
u'created_at': self.created_at,
|
||||
u'appointment_time': self.time,
|
||||
u'validated_at': self.validated_at,
|
||||
}
|
||||
return dest
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
import datetime
|
||||
import glob
|
||||
import re
|
||||
|
||||
from db.mongo_manager import MONGO_STORE_MANAGER
|
||||
from models import AcceptedResultPojo
|
||||
from db.mongo_manager import MONGO_STORE_MANAGER, MongoDbManager
|
||||
from models.AcceptedResultPojo import AcceptedResultPojo
|
||||
from models.ReserveResultPojo import ReserveResultPojo
|
||||
|
||||
CONFIRMATION_SENTENCE = "Nous avons le plaisir de vous confirmer votre rendez-vous"
|
||||
TIME_REGEX = "([0-1]?[0-9]|2[0-3]):[0-5][0-9]"
|
||||
@@ -44,7 +46,7 @@ def get_appointment_info_from_id(info_list: list):
|
||||
for _item in _all_items:
|
||||
for _info in info_list:
|
||||
if _item.id == _info[0]:
|
||||
_accepted = AcceptedResultPojo.get_accepted_result_from(_item, MONGO_STORE_MANAGER, _all_contact_list)
|
||||
_accepted = get_accepted_result_from(_item, MONGO_STORE_MANAGER, _all_contact_list)
|
||||
_accepted.store = _info[1][0]
|
||||
_accepted.time = _info[1][1]
|
||||
accepted_appointments.append(_accepted)
|
||||
@@ -55,8 +57,48 @@ def get_appointment_info_from_id(info_list: list):
|
||||
return accepted_appointments
|
||||
|
||||
|
||||
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.email:
|
||||
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(id="", msg="", slot_position=0, sim_position=0,
|
||||
passport="", email="", phone="",
|
||||
name="", ccid="",
|
||||
url="", created_at="", validated_at="")
|
||||
else:
|
||||
toReturn = AcceptedResultPojo(id=reserve_pojo.id, msg=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),
|
||||
firstName=reserve_pojo.firstName, lastName=reserve_pojo.lastName,
|
||||
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
|
||||
|
||||
|
||||
def migre_accepted_appointment(day: str, accepted_appointments: list):
|
||||
# get successful item from firestore
|
||||
for accepted_pojo in accepted_appointments:
|
||||
accepted_pojo.day = day
|
||||
accepted_pojo.accepted_at = datetime.datetime.strptime(day, '%Y-%m-%d').timestamp()
|
||||
MONGO_STORE_MANAGER.insert_accepted_reserve(accepted_pojo)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
accepted_appointments = get_appointment_info_from_id(find_ids_from_results())
|
||||
migre_accepted_appointment("2024-06-01", accepted_appointments)
|
||||
for _accepted in accepted_appointments:
|
||||
print("""
|
||||
姓名:{} ({} {})
|
||||
|
||||
Reference in New Issue
Block a user