def marketer_blogs(marketer_id): # Use marketplace app url to retrieve marketer by id uri = 'marketers/{}'.format(marketer_id) try: response = _send_marketplace_api_request(MARKETPLACE_APP_URL, uri) except APIConnectionError as e: return api_response(str(e), 500) if response.status_code != 200: return api_error('Unable to get marketer.', response.status_code) marketer = json.loads(response.content.decode('utf-8')) # Use marketer url to call /marketplace/blogs url = marketer['url'] try: response = _send_marketplace_api_request(url, 'marketed/blogs', request.args) except APIConnectionError as e: return api_response(str(e), 500) if response.status_code == 200: # Add marketer name to each blog content = json.loads(response.content.decode('utf-8')) for item in content['_items']: item['marketer_name'] = marketer['name'] response_content = json.dumps(content) return api_response(response_content, response.status_code, json_dumps=False) else: return api_error('Unable to get blogs of marketers.', response.status_code)
def marketers(): # Use marketplace app url to retrieve marketers try: response = _send_marketplace_api_request(MARKETPLACE_APP_URL, 'marketers', request.args) except APIConnectionError as e: return api_response(str(e), 500) if response.status_code == 200: # Update picture_url - bit of a hack until we settle on a storage solution for the marketplace app url = MARKETPLACE_APP_URL if not url.endswith('/'): url = '{}/'.format(url) content = json.loads(response.content.decode('utf-8')) for item in content['_items']: if 'picture_url' in item.keys(): picture_url = item['picture_url'] picture_url = picture_url.replace("/api/", "") item['picture_url'] = url + picture_url else: item['picture_url'] = '' response_content = json.dumps(content) return api_response(response_content, response.status_code, json_dumps=False) else: return api_error('Unable to get marketers.', response.status_code)
def marketer_languages(): try: response = _send_marketplace_api_request(MARKETPLACE_APP_URL, 'languages', request.args) except APIConnectionError as e: return api_response(str(e), 500) if response.status_code == 200: content = json.loads(response.content.decode('utf-8')) response = [] for language_code in content: if language_code not in SUPPORTED_LANGUAGES['languages'].keys(): logger.warning( 'Language code {} not in SUPPORTED_LANGUAGES'.format( language_code)) continue response.append({ 'code': language_code, 'name': SUPPORTED_LANGUAGES['languages'][language_code] }) return api_response(response, 200) else: return api_error('Unable to get languages from marketplace.', response.status_code)
def blogs(): # Use marketplace app to retrieve blogs of all marketers try: response = _send_marketplace_api_request(MARKETPLACE_APP_URL, 'blogs', request.args) except APIConnectionError as e: return api_response(str(e), 500) if response.status_code == 200: return api_response(response.content, 200, json_dumps=False) else: return api_error('Unable to get blogs from marketplace.', response.status_code)