Files
GNX-mailEnterprise/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/trainingpeaks/provider.py
Iliyan Angelov c67067a2a4 Mail
2025-09-14 23:24:25 +03:00

52 lines
1.6 KiB
Python

from allauth.socialaccount.providers.base import ProviderAccount
from allauth.socialaccount.providers.oauth2.provider import OAuth2Provider
class TrainingPeaksAccount(ProviderAccount):
def get_profile_url(self):
return "https://app.trainingpeaks.com"
def get_avatar_url(self):
return None
def to_str(self):
name = (
self.account.extra_data.get("FirstName")
+ " "
+ self.account.extra_data.get("LastName")
)
if name != " ":
return name
return super(TrainingPeaksAccount, self).to_str()
class TrainingPeaksProvider(OAuth2Provider):
id = "trainingpeaks"
name = "TrainingPeaks"
account_class = TrainingPeaksAccount
def extract_uid(self, data):
return str(data["Id"])
def extract_common_fields(self, data):
extra_common = super(TrainingPeaksProvider, self).extract_common_fields(data)
firstname = data.get("FirstName")
lastname = data.get("LastName")
# fallback username as there is actually no Username in response
username = firstname.strip().lower() + "." + lastname.strip().lower()
name = " ".join(part for part in (firstname, lastname) if part)
extra_common.update(
username=data.get("username", username),
email=data.get("Email"),
first_name=firstname,
last_name=lastname,
name=name.strip(),
)
return extra_common
def get_default_scope(self):
return ["athlete:profile"]
provider_classes = [TrainingPeaksProvider]