class Storage(UizaBase): def __init__(self): self.connection = Connection( workspace_api_domain=uiza.workspace_api_domain, api_key=uiza.authorization) self.connection.url = set_url( workspace_api_domain=self.connection.workspace_api_domain, api_type=settings.uiza_api.storage.type, api_version=settings.uiza_api.storage.version, api_sub_url=settings.uiza_api.storage.sub_url) def list(self, **params): """ Override method list of Uizabase :param params: """ raise ClientException('Storage list method not found') def create(self, **data): """ Override method create of Uizabase :param params: """ raise ClientException('Storage create method not found') def delete(self, id): """ Override method create of Uizabase :param params: """ raise ClientException('Storage delete method not found') def add(self, **data): """ Add storage :param data: data body will be created """ data_body = dict(appId=uiza.app_id) data_body.update(data) result = self.connection.post(data=data_body) try: query = self.url_encode(params={ 'id': result[0].id, 'appId': uiza.app_id }, ) result = self.connection.get(query=query) except Exception: pass return result def remove(self, id): """ Remove storage :param id: id of storage """ result = self.connection.delete(dict(id=id, appId=uiza.app_id)) return result
def __init__(self): self.connection = Connection( workspace_api_domain=uiza.workspace_api_domain, api_key=uiza.authorization) self.connection.url = set_url( workspace_api_domain=self.connection.workspace_api_domain, api_type=settings.uiza_api.livestreaming.type, api_version=settings.uiza_api.livestreaming.version, api_sub_url=settings.uiza_api.livestreaming.sub_url)
class User(UizaBase): def __init__(self): self.connection = Connection( workspace_api_domain=uiza.workspace_api_domain, api_key=uiza.authorization) self.connection.url = set_url( workspace_api_domain=self.connection.workspace_api_domain, api_type=settings.uiza_api.user.type, api_version=settings.uiza_api.user.version, api_sub_url=settings.uiza_api.user.sub_url) def create(self, **data): """ Override method create of Uizabase :param params: """ raise ClientException('User create method not found') def delete(self, id): """ Override method create of Uizabase :param params: """ raise ClientException('User delete method not found') def change_password(self, user_id, old_password, new_password): """ Change password allows Admin or User update their current password. :param user_id: identifier of user need reset password :param old_password: current password :param new_password: new password (from a to Z, 6 to 25 characters) """ self.connection.url = '{}/changePassword'.format(self.connection.url) data_body = dict(userId=user_id, appId=uiza.app_id, oldPassword=old_password, newPassword=new_password) data = self.connection.post(data=data_body) return data def logout(self): """ Log out an user """ self.connection.url = '{}/logout'.format(self.connection.url) data = self.connection.post() return data
def __init__(self): self.connection = Connection(workspace_api_domain=uiza.workspace_api_domain, api_key=uiza.authorization) self.connection.url = set_url( workspace_api_domain=self.connection.workspace_api_domain, api_type=settings.uiza_api.category.type, api_version=settings.uiza_api.category.version, api_sub_url=settings.uiza_api.category.sub_url ) self.category_relation_entity_url = set_url( workspace_api_domain=self.connection.workspace_api_domain, api_type=settings.uiza_api.category.type, api_version=settings.uiza_api.category.version, api_sub_url='media/metadata/related/entity' ) self.category_relation_metadata_url = set_url( workspace_api_domain=self.connection.workspace_api_domain, api_type=settings.uiza_api.category.type, api_version=settings.uiza_api.category.version, api_sub_url='media/entity/related/metadata' )
class Live(UizaBase): def __init__(self): self.connection = Connection( workspace_api_domain=uiza.workspace_api_domain, api_key=uiza.authorization) self.connection.url = set_url( workspace_api_domain=self.connection.workspace_api_domain, api_type=settings.uiza_api.livestreaming.type, api_version=settings.uiza_api.livestreaming.version, api_sub_url=settings.uiza_api.livestreaming.sub_url) def list(self, **params): """ Override method list of Uizabase :param params: """ raise ClientException('Livestreaming list method not found') def get_regions(self): self.connection.url = set_url( workspace_api_domain=self.connection.workspace_api_domain, api_type=settings.uiza_api.livestreaming.type, api_version=settings.uiza_api.livestreaming.version, api_sub_url=settings.uiza_api.livestreaming.live_url) + "/region" result = self.connection.get() return result def start_feed(self, id): """ Start a live event :param id: identifier of event. """ self.connection.url = '{}/feed'.format(self.connection.url) result = self.connection.post(dict(id=id, appId=uiza.app_id)) return result def stop_feed(self, id): """ Stop a live event :param id: identifier of event. """ self.connection.url = '{}/feed'.format(self.connection.url) result = self.connection.put(dict(id=id, appId=uiza.app_id)) return result def get_view(self, id): """ Get a live view status :param id: event id has been created """ self.connection.url = '{}/tracking/current-view'.format( self.connection.url) query = self.url_encode(params={'id': id, 'appId': uiza.app_id}) result = self.connection.get(query=query) return result def list_recorded(self, id=None): """ List of recorded file after streamed """ self.connection.url = '{}/dvr'.format(self.connection.url) params = dict(appId=uiza.app_id) params.update(dict(id=id)) if id else params query = self.url_encode(params=params) result = self.connection.get(query=query) return result def convert_into_vod(self, id): """ Convert recorded file into VOD entity :param id: identifier of record (get from list record) """ self.connection.url = '{}/dvr/convert-to-vod'.format( self.connection.url) result = self.connection.post(dict(id=id, appId=uiza.app_id)) return result def delete(self, id): """ Delete a recorded file :param id: identifier of record (get from list record) """ self.connection.url = '{}/dvr'.format(self.connection.url) result = self.connection.delete(dict(id=id, appId=uiza.app_id)) return result
class Category(UizaBase): def __init__(self): self.connection = Connection(workspace_api_domain=uiza.workspace_api_domain, api_key=uiza.authorization) self.connection.url = set_url( workspace_api_domain=self.connection.workspace_api_domain, api_type=settings.uiza_api.category.type, api_version=settings.uiza_api.category.version, api_sub_url=settings.uiza_api.category.sub_url ) self.category_relation_entity_url = set_url( workspace_api_domain=self.connection.workspace_api_domain, api_type=settings.uiza_api.category.type, api_version=settings.uiza_api.category.version, api_sub_url='media/metadata/related/entity' ) self.category_relation_metadata_url = set_url( workspace_api_domain=self.connection.workspace_api_domain, api_type=settings.uiza_api.category.type, api_version=settings.uiza_api.category.version, api_sub_url='media/entity/related/metadata' ) def create_relation(self, entity_id, metadata_ids): """ Create relation for entity and category :param entity_id: identifier of entity :param metadata_ids: identifier of category """ self.connection.url = self.category_relation_metadata_url data_body = dict( entityId=entity_id, metadataIds=metadata_ids, appId=uiza.app_id ) result = self.connection.post(data_body) return result def create_relation_entity(self, entity_ids, metadata_id): """ Create relation for entity and category :param entity_ids: identifier of entity :param metadata_id: identifier of category """ self.connection.url = self.category_relation_entity_url data_body = dict( entityIds=entity_ids, metadataId=metadata_id, appId=uiza.app_id ) result = self.connection.post(data_body) return result def delete_relation(self, entity_id, metadata_ids): """ Delete relation for entity and category :param entity_id: identifier of entity :param metadata_ids: identifier of category """ self.connection.url = self.category_relation_metadata_url data_body = dict( entityId=entity_id, metadataIds=metadata_ids, appId=uiza.app_id ) result = self.connection.delete(data_body) return result def delete_relation_entity(self, entity_ids, metadata_id): """ Delete relation for entity and category :param entity_ids: identifier of entity :param metadata_id: identifier of category """ self.connection.url = self.category_relation_entity_url data_body = dict( entityIds=entity_ids, metadataId=metadata_id, appId=uiza.app_id ) result = self.connection.delete(data_body) return result
class Entity(UizaBase): def __init__(self): self.connection = Connection( workspace_api_domain=uiza.workspace_api_domain, api_key=uiza.authorization) self.connection.url = set_url( workspace_api_domain=self.connection.workspace_api_domain, api_type=settings.uiza_api.entity.type, api_version=settings.uiza_api.entity.version, api_sub_url=settings.uiza_api.entity.sub_url) def search(self, keyword): """ Search entity base on keyword entered :param keyword: keyword for search entity """ self.connection.url = '{}/search'.format(self.connection.url) params = dict(keyword=keyword, appId=uiza.app_id) query = self.url_encode(params=params) data = self.connection.get(query=query) return data def generate_iframe(self, entityId, api): """ Generate iframe entity base on keyword entered :param entityId: id of entity :param api: api iframe """ self.connection.url = '{}/iframe'.format(self.connection.url) params = dict(entityId=entityId, api=api, appId=uiza.app_id) query = self.url_encode(params=params) data = self.connection.get(query=query) return data def publish(self, id): """ Publish entity to CDN, use for streaming :param id: identifier of entity """ self.connection.url = '{}/publish'.format(self.connection.url) data = self.connection.post(data={'id': id, 'appId': uiza.app_id}) return data def get_status_publish(self, id): """ Get status publish entity :param id: identifier of entity """ self.connection.url = '{}/publish/status'.format(self.connection.url) query = self.url_encode(params={'id': id, 'appId': uiza.app_id}) data = self.connection.get(query=query) return data def get_media_tracking(self, **kwargs): """ Get media tracking :param progress: progress of entity. This is optional """ self.connection.url = '{}/tracking'.format(self.connection.url) params = dict(appId=uiza.app_id) if kwargs: params.update(kwargs) query = self.url_encode(params=params) data = self.connection.get(query=query) return data def get_media_upload_detail(self, id): """ Get media upload detail :param id: identifier of entity """ self.connection.url = '{}/tracking'.format(self.connection.url) query = self.url_encode(params={'id': id, 'appId': uiza.app_id}) data = self.connection.get(query=query) return data def get_aws_upload_key(self): """ Return the bucket temporary upload storage & key for upload :param appId: appId """ aws_sub_url = 'admin/app/config/aws' self.connection.url = set_url( workspace_api_domain=self.connection.workspace_api_domain, api_type=settings.uiza_api.entity.type, api_version=settings.uiza_api.entity.version, api_sub_url=aws_sub_url) query = self.url_encode(params={'appId': uiza.app_id}) data = self.connection.get(query=query) return data