copied from internal repo
This commit is contained in:
115
api/operator_api.py
Normal file
115
api/operator_api.py
Normal file
@@ -0,0 +1,115 @@
|
||||
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')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user