File size: 1,657 Bytes
89419ea | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
from __future__ import annotations
from dataclasses import dataclass
from ..database.models import Account
from .service_selection import UploadTarget
from .upload.cpa_upload import generate_token_json, upload_to_cpa
from .upload.sub2api_upload import upload_to_sub2api
from .upload.team_manager_upload import upload_to_team_manager
@dataclass
class UploadExecutionResult:
success: bool
provider: str
service_id: int
message: str
def upload_registered_account(account: Account, target: UploadTarget) -> UploadExecutionResult:
if account is None:
return UploadExecutionResult(False, target.provider, target.service_id, 'account_not_found')
if not account.access_token:
return UploadExecutionResult(False, target.provider, target.service_id, 'missing_access_token')
if target.provider == 'cpa':
ok, message = upload_to_cpa(
generate_token_json(account),
api_url=target.config_snapshot['api_url'],
api_token=target.config_snapshot['api_token'],
)
elif target.provider == 'sub2api':
ok, message = upload_to_sub2api(
[account],
target.config_snapshot['api_url'],
target.config_snapshot['api_key'],
)
elif target.provider == 'tm':
ok, message = upload_to_team_manager(
account,
target.config_snapshot['api_url'],
target.config_snapshot['api_key'],
)
else:
return UploadExecutionResult(False, target.provider, target.service_id, 'unsupported_provider')
return UploadExecutionResult(ok, target.provider, target.service_id, message)
|