sunatest / backend /pipedream /services /external_user_id_service.py
llama1's picture
Upload 781 files
5da4770 verified
import time
import random
import string
from ..protocols import ExternalUserIdGeneratorService
from ..domain.value_objects import ExternalUserId, AppSlug, ProfileName
class ExternalUserIdService:
def generate(self, account_id: str, app_slug: AppSlug, profile_name: ProfileName) -> ExternalUserId:
timestamp = int(time.time() * 1000)
random_suffix = ''.join(random.choices(string.ascii_lowercase + string.digits, k=8))
safe_profile_name = profile_name.value.lower().replace(' ', '_')
external_id = f"{account_id[:8]}_{app_slug.value}_{safe_profile_name}_{timestamp}_{random_suffix}"
return ExternalUserId(external_id)