예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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)
예제 #4
0
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)