copied from internal repo

This commit is contained in:
Dragroth
2026-01-22 12:37:26 +01:00
parent a475364582
commit 7451b63f62
118 changed files with 17182 additions and 0 deletions

115
api/operator_api.py Normal file
View 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')