password in env

This commit is contained in:
Lei PAN
2026-03-05 21:24:07 +01:00
parent 945388bdb5
commit b224c75ad0
2 changed files with 143 additions and 54 deletions
+100 -39
View File
@@ -1,6 +1,7 @@
import datetime
import logging
import time
import os
from pymongo import MongoClient
@@ -25,7 +26,22 @@ CONTACT_LIST_SERIAL_MAP = "CONTACT_LIST_SERIAL_MAP"
class MongoDbManager:
def __init__(self):
client = MongoClient(MONGO_DB_URL, username='appointment', password='Rdv@20222021', authSource='appointment')
# Get username and password from environment variables
mongo_username = os.getenv("MONGO_USERNAME")
mongo_password = os.getenv("MONGO_PASSWORD")
# Validate that environment variables exist
if not mongo_username or not mongo_password:
raise ValueError(
"MONGO_USERNAME and MONGO_PASSWORD environment variables must be set"
)
client = MongoClient(
MONGO_DB_URL,
username=mongo_username,
password=mongo_password,
authSource="appointment",
)
self.db = client.appointment
self.logger = logging.getLogger("mongoDb")
@@ -36,8 +52,13 @@ class MongoDbManager:
def insert_reserve_result(self, collection_name, reserve: ReserveResultPojo):
try:
collection_to_use = self.db[collection_name]
collection_to_use.replace_one(filter={'_id': reserve.id, }, replacement=reserve.to_firestore_dict(),
upsert=True)
collection_to_use.replace_one(
filter={
"_id": reserve.id,
},
replacement=reserve.to_firestore_dict(),
upsert=True,
)
except Exception as Error:
self.logger.info(Error)
@@ -83,8 +104,14 @@ class MongoDbManager:
result_list.append(ContactPojo.from_firestore_dict(document))
return result_list
def save_links_to_validate(self, link: str, mail_address: str, model: str,
_all_contact_list: list, _used_ip: str = ""):
def save_links_to_validate(
self,
link: str,
mail_address: str,
model: str,
_all_contact_list: list,
_used_ip: str = "",
):
collection_to_use = self.db[LINKS_TO_VALIDATE]
updated_at = time.strftime("%H:%M:%S", time.localtime())
_ip_country = "FR"
@@ -95,32 +122,42 @@ class MongoDbManager:
_ip_country = _contact.ip_country
if len(mail_address) > 0:
collection_to_use.replace_one(filter={'_id': mail_address, }, replacement={
u'url': link,
u'email': mail_address,
u'serial': serial,
u'model': model,
u'ip_country': _ip_country,
u'_used_ip': _used_ip,
"updated_at": updated_at
},
upsert=True)
collection_to_use.replace_one(
filter={
"_id": mail_address,
},
replacement={
"url": link,
"email": mail_address,
"serial": serial,
"model": model,
"ip_country": _ip_country,
"_used_ip": _used_ip,
"updated_at": updated_at,
},
upsert=True,
)
else:
collection_to_use.replace_one(filter={'_id': link, }, replacement={
u'url': link,
u'serial': serial,
u'model': model,
u'ip_country': _ip_country,
u'_used_ip': _used_ip,
"updated_at": updated_at
},
upsert=True)
collection_to_use.replace_one(
filter={
"_id": link,
},
replacement={
"url": link,
"serial": serial,
"model": model,
"ip_country": _ip_country,
"_used_ip": _used_ip,
"updated_at": updated_at,
},
upsert=True,
)
def get_code_for_email(self, email: str):
collection_name = DESTINATION_EMAIL_LIST
try:
collection_to_use = self.db[collection_name]
mailDocument = collection_to_use.find_one(filter={'_id': email})
mailDocument = collection_to_use.find_one(filter={"_id": email})
if mailDocument is not None:
return MailAddress.from_firestore_dict(mailDocument).password
else:
@@ -134,7 +171,9 @@ class MongoDbManager:
_cursor = self.db[_collection_name]
registered_user_list = []
for document in _cursor.find():
registered_user_list.append(RegisteredUserPojo.from_firestore_dict(document))
registered_user_list.append(
RegisteredUserPojo.from_firestore_dict(document)
)
return registered_user_list
def get_destination_emails(self) -> list:
@@ -167,8 +206,18 @@ class MongoDbManager:
self.logger.info(error)
return link_list
def link_validated_for_result(self, link: str, linkPojo: LinkPojo, state=True, is_duplicated=False,
is_invalid=False, segement_position=1, ua="", model="", timestamp_in_s: list = None):
def link_validated_for_result(
self,
link: str,
linkPojo: LinkPojo,
state=True,
is_duplicated=False,
is_invalid=False,
segement_position=1,
ua="",
model="",
timestamp_in_s: list = None,
):
if timestamp_in_s is None:
timestamp_in_s = []
print("link_validated_for_result() called with url = " + link)
@@ -181,7 +230,10 @@ class MongoDbManager:
print("link_validated_for_result() called with id = " + _id)
collection_name = str(datetime.date.today())
print("link_validated_for_result() called with collection_name = " + collection_name)
print(
"link_validated_for_result() called with collection_name = "
+ collection_name
)
collection = self.db[collection_name]
validated_at = time.strftime("%H:%M:%S", time.localtime())
@@ -190,18 +242,27 @@ class MongoDbManager:
validated_by = "Invalid"
if is_duplicated:
validated_by = "Double"
collection.find_one_and_update({'_id': _id}, {
"$set": {"url_validated": state, "validated_at": validated_at, "id": _id, "email": linkPojo.email,
"url": link,
"validated_by_model": model,
"serial": linkPojo.serial,
"validated_by_ua": ua,
"timestamp_in_s": "-".join(str(x) for x in timestamp_in_s),
"validated_by": validated_by}},
upsert=True)
collection.find_one_and_update(
{"_id": _id},
{
"$set": {
"url_validated": state,
"validated_at": validated_at,
"id": _id,
"email": linkPojo.email,
"url": link,
"validated_by_model": model,
"serial": linkPojo.serial,
"validated_by_ua": ua,
"timestamp_in_s": "-".join(str(x) for x in timestamp_in_s),
"validated_by": validated_by,
}
},
upsert=True,
)
# remove the link from db
collection_to_use = self.db[LINKS_TO_VALIDATE]
collection_to_use.delete_one({'_id': linkPojo.email})
collection_to_use.delete_one({"_id": linkPojo.email})
MONGO_STORE_MANAGER = MongoDbManager()