File size: 2,005 Bytes
4ae0b03 |
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 50 51 52 53 54 55 |
import asyncio
from dotenv import load_dotenv
import os
import tempfile
import tarfile
import json
from pathlib import Path
from payments_py import Payments, Environment
from typing import Dict, List, Tuple, Optional
import httpx
import zipfile
import shutil
load_dotenv()
class Services:
def __init__(self):
self.payments = Payments(session_key=os.getenv("SESSION_KEY"), environment=Environment.appTesting, version="0.1.0", marketplace_auth_token=os.getenv("MARKETPLACE_AUTH_TOKEN"))
self.naptha_plan_did = os.getenv("NAPTHA_PLAN_DID")
self.wallet_address = os.getenv("WALLET_ADDRESS")
def show_credits(self):
response = self.payments.get_subscription_balance(self.naptha_plan_did, self.wallet_address)
creds = json.loads(response.content.decode())["balance"]
print('Credits: ', creds)
return creds
def get_service_url(self, service_did):
response = self.payments.get_service_details(service_did)
print('Service URL: ', response)
return response
def get_service_details(self, service_did):
response = self.payments.get_service_token(service_did)
result = json.loads(response.content.decode())
access_token = result['token']['accessToken']
proxy_address = result['token']['neverminedProxyUri']
return access_token, proxy_address
def get_asset_ddo(self, service_did):
response = self.payments.get_asset_ddo(service_did)
result = json.loads(response.content.decode())
service_name = result['service'][0]['attributes']['main']['name']
return service_name
def list_services(self):
response = self.payments.get_subscription_associated_services(self.naptha_plan_did)
service_dids = json.loads(response.content.decode())
service_names = []
for did in service_dids:
service_names.append(self.get_asset_ddo(did))
print('Services: ', service_names)
return service_names
|