vpc_user/user_api/call2api.py
2025-11-11 15:09:54 +03:00

64 lines
1.9 KiB
Python

from aiohttp import ClientSession
from json import loads
import asyncio
from db import read, write
CONFIG = asyncio.run(read())
global url_prefix
url_prefix = CONFIG['system_api_url']
async def call(api_url, data, pre=True, fix=True):
url = (url_prefix + api_url) if pre else api_url
async with ClientSession() as session:
async with session.post(url, json=data) as response:
text = await response.text()
try:
json = loads(text)
if 'detail' in json:
return json['detail']
else:
return json
except:
if fix:
return text.replace('"', '')
else:
return text
async def check_user_token(token, username, user_token):
data = {'token': token, 'username': username, 'user_token': user_token}
return await call('api/check_user_token/', data)
async def user_in_db(token, username=None, creator_id=None, tg_id=None, ds_id=None, mine_name=None):
data = {'token': token}
if username:
data['username'] = username
if creator_id:
data['creator_id'] = creator_id
if tg_id:
data['tg_id'] = tg_id
if ds_id:
data['ds_id'] = ds_id
if mine_name:
data['mine_name'] = mine_name
return await call('api/user_in_db/', data)
async def transfer_coins(token, src_username, dst_username, amount):
data = {'token': token, 'src_username': src_username, 'dst_username': dst_username, 'amount': amount}
return await call('api/transfer_coins/', data)
async def get_stats(token):
return await call('api/get_stats/', token)
async def create_invoice(token, dst_username, amount=None):
data = {'token': token, 'dst_username': dst_username}
if amount:
data['amount'] = amount
return await call('api/create_invoice/', data)
async def delete_invoice(token, invoice_id):
data = {'token': token, 'invoice_id': invoice_id}
return await call('api/delete_invoice/', data)
async def get_invoice(token, invoice_id):
data = {'token': token, 'invoice_id': invoice_id}
return await call('api/get_invoice/', data)