HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
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