From 2dc43c3c53b9bb8c608a79c83555697e1c4cfd7c Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 20 Jan 2025 15:34:49 -0500 Subject: [PATCH] api: added external_accounts to /me --- mastodon/models/email.py | 2 ++ users/api.py | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/mastodon/models/email.py b/mastodon/models/email.py index a6e2cda1..9b9fdc0f 100644 --- a/mastodon/models/email.py +++ b/mastodon/models/email.py @@ -15,6 +15,8 @@ _code_ttl = 60 * 15 class EmailAccount(SocialAccount): + url = None + def sync(self, skip_graph=False, sleep_hours=0) -> bool: return True diff --git a/users/api.py b/users/api.py index a5ac3ccf..0de425f4 100644 --- a/users/api.py +++ b/users/api.py @@ -1,11 +1,20 @@ from ninja import Schema +from ninja.schema import Field from common.api import * +from mastodon.models.common import SocialAccount + + +class ExternalAccountSchema(Schema): + platform: str + handle: str + url: str | None class UserSchema(Schema): url: str - external_acct: str | None + external_acct: str | None = Field(deprecated=True) + external_accounts: list[ExternalAccountSchema] display_name: str avatar: str username: str @@ -18,12 +27,14 @@ class UserSchema(Schema): tags=["user"], ) def me(request): + accts = SocialAccount.objects.filter(user=request.user) return 200, { "username": request.user.username, "url": settings.SITE_INFO["site_url"] + request.user.url, "external_acct": ( request.user.mastodon.handle if request.user.mastodon else None ), + "external_accounts": accts, "display_name": request.user.display_name, "avatar": request.user.avatar, }