File: //home/arjun/projects/buyercall/buyercall/blueprints/email/utils/verify_email_identity.py
from buyercall.lib.util_boto3_s3 import download_file
from buyercall.blueprints.email.utils.urls_collector_from_string import UrlCollector
from buyercall.blueprints.email.utils.request_dispatcher import RequestDispatcher
from buyercall.blueprints.email.utils.email_parser import EmailParser
class EmailVerifier:
@staticmethod
def verify(bucket, email_key):
if not email_key or not bucket:
print(f'Error: Missing arguments. Bucket:{bucket}, Key: {email_key}')
return False
email_file = download_file(email_key, bucket)
if not email_file:
print('Error : Email file download failed')
return False
parsed_data = EmailParser().parse(email_file)
urls = UrlCollector.collect_urls(parsed_data.get('plain', ''))
verification_url = [url for url in urls if 'email-verification' in url]
if verification_url:
response = RequestDispatcher.request_retry(url=verification_url[0])
if response.get('success', False):
return True
else:
print('Verification email not found.')
return False