116 lines
4.4 KiB
Python
116 lines
4.4 KiB
Python
import base64
|
|
import hashlib
|
|
import json
|
|
|
|
from .base_api import BaseAPI
|
|
|
|
|
|
class OperatorAPI(BaseAPI):
|
|
def login(self, operator_user, operator_password):
|
|
endpoint = f"{self.api_tenant_login_url}/operator/login"
|
|
nonce = self._post(endpoint, {
|
|
"login": operator_user
|
|
}).get('nonce')
|
|
|
|
# get token
|
|
salted_password = str(hashlib.sha256(hashlib.sha256(operator_password.encode()).hexdigest().encode() + nonce.encode()).hexdigest())
|
|
|
|
self.token = self._post(endpoint, {
|
|
"login": operator_user,
|
|
"password": salted_password
|
|
}).get('token')
|
|
|
|
aa = base64.b64decode(self.token.split(".")[1] + "===")
|
|
decoded_token = json.loads(aa.decode("utf-8"))
|
|
self.url = decoded_token["url"]["api"]
|
|
|
|
def login_as_user(self, tenant_id, tenant_user_id):
|
|
endpoint = f"{self.api_tenant_login_url}/operator/tenant/{tenant_id}/user/{tenant_user_id}/login"
|
|
return self._get(endpoint)
|
|
|
|
def create_user(self, tenant_id, params):
|
|
endpoint = f"{self.url}/tenant/{tenant_id}/user"
|
|
return self._post(endpoint, params).get('data')
|
|
|
|
def get_user(self, tenant_id, tenant_user_id):
|
|
endpoint = f"{self.url}/tenant/{tenant_id}/user/{tenant_user_id}"
|
|
return self._get(endpoint).get('data')
|
|
|
|
def get_users(self, tenant_id):
|
|
endpoint = f"{self.url}/tenant/{tenant_id}/user"
|
|
return self._get(endpoint).get('data')
|
|
|
|
def get_license_packages(self, tenant_id):
|
|
endpoint = f"{self.url}/tenant/{tenant_id}/operator_license_package"
|
|
return self._get(endpoint).get('data')
|
|
|
|
def get_package_agreements(self, tenant_id):
|
|
endpoint = f"{self.url}/tenant/{tenant_id}/tenant_package_agreement"
|
|
return self._get(endpoint).get('data')
|
|
|
|
def create_package_activation_request(self, tenant_id, params):
|
|
endpoint = f"{self.url}/tenant/{tenant_id}/package_activation_request"
|
|
return self._post(endpoint, params).get('data')
|
|
|
|
def create_tenant(self, params):
|
|
endpoint = f"{self.url}/tenant"
|
|
return self._post(endpoint, params).get('data')[0]
|
|
|
|
def get_tenants(self):
|
|
endpoint = f"{self.url}/tenant"
|
|
return self._get(endpoint).get('data')
|
|
|
|
def get_ddi(self, tenant_id):
|
|
endpoint = f"{self.url}/tenant/{tenant_id}/ddi"
|
|
return self._get(endpoint).get('data')
|
|
|
|
def create_ddi(self, tenant_id, params):
|
|
endpoint = f"{self.url}/tenant/{tenant_id}/ddi"
|
|
return self._post(endpoint, params).get('data')[0]
|
|
|
|
def get_tenant_telco_networks(self, tenant_id):
|
|
endpoint = f"{self.url}/tenant/{tenant_id}/telco_network"
|
|
return self._get(endpoint).get('data')
|
|
|
|
def create_tenant_telco_network(self, tenant_id, params):
|
|
endpoint = f"{self.url}/tenant/{tenant_id}/telco_network"
|
|
return self._post(endpoint, params).get('data')
|
|
|
|
def get_operator_routing(self):
|
|
endpoint = f"{self.url}/operator_routing"
|
|
return self._get(endpoint).get('data')
|
|
|
|
def create_operator_routing(self, params):
|
|
endpoint = f"{self.url}/operator_routing"
|
|
return self._post(endpoint, params).get('data')
|
|
|
|
def create_operator_gateway(self, params):
|
|
endpoint = f"{self.url}/operator_gateway"
|
|
return self._post(endpoint, params).get('data')
|
|
|
|
def get_operator_gateways(self):
|
|
endpoint = f"{self.url}/operator_gateway"
|
|
return self._get(endpoint).get('data')
|
|
|
|
def create_operator_gateway_normalization(self, operator_gateway_id, params):
|
|
endpoint = f"{self.url}/operator_gateway/{operator_gateway_id}/normalization"
|
|
return self._post(endpoint, params).get('data')
|
|
|
|
def get_operator_gateway_normalization(self, operator_gateway_id):
|
|
endpoint = f"{self.url}/operator_gateway/{operator_gateway_id}/normalization"
|
|
return self._get(endpoint).get('data')
|
|
|
|
def delete_operator_gateway_normalization(self, operator_gateway_id, normalization_id):
|
|
endpoint = f"{self.url}/operator_gateway/{operator_gateway_id}/normalization/{normalization_id}"
|
|
return self._delete(endpoint)
|
|
|
|
def get_speech_integrations(self):
|
|
endpoint = f"{self.url}/text_to_speech/integration"
|
|
return self._get(endpoint).get('data')
|
|
|
|
def add_speech_integration(self, params):
|
|
endpoint = f"{self.url}/tenant/speech/integration"
|
|
return self._post(endpoint, params).get('data')
|
|
|
|
|