can insert accepted appointment to db
This commit is contained in:
@@ -4,6 +4,7 @@ import time
|
|||||||
|
|
||||||
from pymongo import MongoClient
|
from pymongo import MongoClient
|
||||||
|
|
||||||
|
from models.AcceptedResultPojo import AcceptedResultPojo
|
||||||
from models.LinkPojo import LinkPojo
|
from models.LinkPojo import LinkPojo
|
||||||
from models.ReserveResultPojo import ReserveResultPojo
|
from models.ReserveResultPojo import ReserveResultPojo
|
||||||
from models.contact_pojo import ContactPojo
|
from models.contact_pojo import ContactPojo
|
||||||
@@ -132,6 +133,13 @@ class MongoDbManager:
|
|||||||
print(error)
|
print(error)
|
||||||
return email_list
|
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:
|
def get_links_to_validate(self) -> list:
|
||||||
collection_name = LINKS_TO_VALIDATE
|
collection_name = LINKS_TO_VALIDATE
|
||||||
link_list = []
|
link_list = []
|
||||||
|
|||||||
@@ -2,22 +2,21 @@ from dataclasses import dataclass
|
|||||||
|
|
||||||
from dataclasses_json import dataclass_json
|
from dataclasses_json import dataclass_json
|
||||||
|
|
||||||
from db.mongo_manager import MongoDbManager
|
|
||||||
from models import ReserveResultPojo
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass_json
|
|
||||||
@dataclass
|
|
||||||
class AcceptedResultPojo:
|
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):
|
created_at: str, validated_at: str):
|
||||||
self.message = msg
|
self.message = msg
|
||||||
|
self.id = id
|
||||||
self.slot_position = slot_position
|
self.slot_position = slot_position
|
||||||
self.sim_position = sim_position
|
self.sim_position = sim_position
|
||||||
self.passport = "{}".format(passport)
|
self.passport = "{}".format(passport)
|
||||||
self.email = email
|
self.email = email
|
||||||
self.name = name
|
self.name = name
|
||||||
|
self.firstName = firstName
|
||||||
|
self.lastName = lastName
|
||||||
self.phone = phone
|
self.phone = phone
|
||||||
self.ccid = ccid
|
self.ccid = ccid
|
||||||
self.url = url
|
self.url = url
|
||||||
@@ -31,31 +30,21 @@ class AcceptedResultPojo:
|
|||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return str(self.__dict__)
|
return str(self.__dict__)
|
||||||
|
|
||||||
|
def to_firestore_dict(self):
|
||||||
def get_accepted_result_from(reserve_pojo: ReserveResultPojo, mongo_db_manager: MongoDbManager,
|
dest = {
|
||||||
all_contact_list) -> AcceptedResultPojo:
|
u'id': self.id,
|
||||||
if reserve_pojo.lastName is None or len(reserve_pojo.lastName) == 0:
|
u'phone': self.phone,
|
||||||
for _contact in all_contact_list:
|
u'firstName': self.firstName,
|
||||||
if _contact.mail == reserve_pojo.mail:
|
u'lastName': self.lastName,
|
||||||
reserve_pojo.lastName = _contact.last_name
|
u'message': self.message,
|
||||||
reserve_pojo.firstName = _contact.first_name
|
u'email': self.email,
|
||||||
reserve_pojo.phone = _contact.phone
|
u'passport': self.passport,
|
||||||
reserve_pojo.passport = _contact.passport
|
u'url': self.url,
|
||||||
|
u'ccid': self.ccid,
|
||||||
if reserve_pojo is None:
|
u'store_type': self.store,
|
||||||
# send email even there are no reserve info
|
u'accepted': 'ACCEPTED',
|
||||||
return AcceptedResultPojo("", slot_position=0, sim_position=0,
|
u'created_at': self.created_at,
|
||||||
passport="", email="", phone="",
|
u'appointment_time': self.time,
|
||||||
name="", ccid="",
|
u'validated_at': self.validated_at,
|
||||||
url="", created_at="", validated_at="")
|
}
|
||||||
else:
|
return dest
|
||||||
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
|
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
|
import datetime
|
||||||
import glob
|
import glob
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from db.mongo_manager import MONGO_STORE_MANAGER
|
from db.mongo_manager import MONGO_STORE_MANAGER, MongoDbManager
|
||||||
from models import AcceptedResultPojo
|
from models.AcceptedResultPojo import AcceptedResultPojo
|
||||||
|
from models.ReserveResultPojo import ReserveResultPojo
|
||||||
|
|
||||||
CONFIRMATION_SENTENCE = "Nous avons le plaisir de vous confirmer votre rendez-vous"
|
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]"
|
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 _item in _all_items:
|
||||||
for _info in info_list:
|
for _info in info_list:
|
||||||
if _item.id == _info[0]:
|
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.store = _info[1][0]
|
||||||
_accepted.time = _info[1][1]
|
_accepted.time = _info[1][1]
|
||||||
accepted_appointments.append(_accepted)
|
accepted_appointments.append(_accepted)
|
||||||
@@ -55,8 +57,48 @@ def get_appointment_info_from_id(info_list: list):
|
|||||||
return accepted_appointments
|
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__':
|
if __name__ == '__main__':
|
||||||
accepted_appointments = get_appointment_info_from_id(find_ids_from_results())
|
accepted_appointments = get_appointment_info_from_id(find_ids_from_results())
|
||||||
|
migre_accepted_appointment("2024-06-01", accepted_appointments)
|
||||||
for _accepted in accepted_appointments:
|
for _accepted in accepted_appointments:
|
||||||
print("""
|
print("""
|
||||||
姓名:{} ({} {})
|
姓名:{} ({} {})
|
||||||
|
|||||||
Reference in New Issue
Block a user