BTHLABS-50: Safari Web extension

Co-authored-by: Tomek Wójcik <labs@tomekwojcik.pl>
Co-committed-by: Tomek Wójcik <labs@tomekwojcik.pl>
This commit is contained in:
2025-09-08 18:11:36 +00:00
committed by Tomek Wójcik
parent ffecf780ee
commit b6d02dbe78
184 changed files with 7536 additions and 163 deletions

View File

@@ -0,0 +1,38 @@
# -*- coding: utf-8 -*-
from __future__ import annotations
import urllib.parse
import uuid
import pydantic
from hotpocket_common.constants import AccessTokenOriginApp
from .base import ModelOut, Query
class AccessTokenOut(ModelOut):
key: str
origin: str
meta: dict
def get_parsed_origin(self) -> urllib.parse.SplitResult:
return urllib.parse.urlsplit(self.origin)
def get_origin_app(self) -> AccessTokenOriginApp | None:
parsed_origin = self.get_parsed_origin()
match parsed_origin.scheme:
case 'safari-web-extension':
return AccessTokenOriginApp.SAFARI_WEB_EXTENSION
case _:
return None
def get_origin_app_id(self) -> str:
return self.get_parsed_origin().netloc
class AccessTokensQuery(Query):
account_uuid: uuid.UUID
before: uuid.UUID | None = pydantic.Field(default=None)