"""Api calls of ows_podcast enpoints.""" import datetime import requests from tests.integration.consts import api from tests.integration.consts import urls def get_by_ids_and_types(object_ids, object_types, sign_urls=True): """Get objects assets.""" params = { 'object_ids': ','.join(list(map(str, object_ids))), 'object_types': ','.join(list(map(str, object_types))) } if not sign_urls: params['signed_url_policy'] = 'unsigned_url' return requests.get(urls.ASSETS_BY_IDS_AND_TYPES, params=params) def get_by_ids_and_type(object_ids, object_type, sign_urls=True): """Get objects assets of.""" params = { 'object_ids': ','.join(list(map(str, object_ids))) } if not sign_urls: params['signed_url_policy'] = 'unsigned_url' return requests.get( urls.ASSETS_BY_IDS_AND_TYPE.format(object_type=object_type), params=params ) def get_upload_token(): """Get upload-token request.""" return requests.get(urls.UPLOAD_TOKEN, headers=api.REQUEST_HEADERS) def post(object_id, object_type, filename, original_filename, asset_type): """POST asset request.""" return requests.post(urls.POST_ASSET, json={ 'object_id': object_id, 'object_type': object_type, 'filename': filename, 'original_filename': original_filename, 'asset_type': asset_type }, headers=api.REQUEST_HEADERS) def post_status(filename, status, errors=None, timestamp=None): """POST asset status request.""" timestamp = timestamp or datetime.datetime.now().strftime('%Y-%m-%dT%H:%M:%S.%fZ') return requests.post(urls.ASSET_STATUS, json={ 'filename': filename, 'status': status, 'errors': errors, 'timestamp': timestamp }, headers=api.REQUEST_HEADERS) def post_final(filename, final_assets, status='encoding_completed', errors=None, timestamp=None): """POST asset final request.""" timestamp = timestamp or datetime.datetime.now().strftime('%Y-%m-%dT%H:%M:%S.%fZ') return requests.post(urls.ASSET_FINAL, json={ 'filename': filename, 'status': status, 'errors': errors, 'timestamp': timestamp, 'final_assets': final_assets }, headers=api.REQUEST_HEADERS) def delete(object_id, object_type, asset_type): """Delete asset request.""" return requests.delete(urls.DELETE_ASSET, params={ 'object_id': object_id, 'object_type': object_type, 'asset_type': asset_type }, headers=api.REQUEST_HEADERS) def get_status(filename, signed_url='unsigned_urls'): """Get asset status request.""" return requests.get( urls.ASSET_STATUS_FILENAME.format(filename=filename), headers=api.REQUEST_HEADERS )