You've already forked hotpocket
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:
38
services/packages/soa/hotpocket_soa/dto/accounts.py
Normal file
38
services/packages/soa/hotpocket_soa/dto/accounts.py
Normal 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)
|
||||
Reference in New Issue
Block a user