Пример #1
0
def post_register_name(
        session, snap_name,
        registrant_comment=None, is_private=False, store=None):

    json = {
        'snap_name': snap_name,
    }

    if registrant_comment:
        json['registrant_comment'] = registrant_comment

    if is_private:
        json['is_private'] = is_private

    if store:
        json['store'] = store

    response = cache.get(
        REGISTER_NAME_URL,
        headers=get_authorization_header(session),
        json=json,
        method='POST')

    if authentication.is_macaroon_expired(response.headers):
        raise MacaroonRefreshRequired

    return process_response(response)
Пример #2
0
def snap_screenshots(snap_id, session, data=None, files=None):
    method = None
    files_array = None
    headers = get_authorization_header(session)
    headers['Accept'] = 'application/json'

    if data:
        method = 'PUT'

        files_array = []
        if files:
            for f in files:
                files_array.append(
                    (f.filename, (f.filename, f.stream, f.mimetype))
                )
        else:
            # API requires a multipart request, but we have no files to push
            # https://github.com/requests/requests/issues/1081
            files_array = {'info': ('', data['info'])}
            data = None

    screenshot_response = cache.get(
        SCREENSHOTS_QUERY_URL.format(snap_id=snap_id),
        headers=headers,
        data=data,
        method=method,
        files=files_array
    )

    if authentication.is_macaroon_expired(screenshot_response.headers):
        raise MacaroonRefreshRequired

    return process_response(screenshot_response)
Пример #3
0
def get_media(media_id):
    url = ''.join([API_URL, '/media/', str(media_id)])
    response = cache.get(url, {})

    if not response.ok:
        return None

    return response.json()
Пример #4
0
def get_user(user_id):
    url = ''.join([API_URL, '/users/', str(user_id)])
    response = cache.get(url, {})

    if not response.ok:
        return None

    return response.json()
Пример #5
0
def get_feed():
    """"""
    response = cache.get(
        'https://admin.insights.ubuntu.com/?tag=Snap&feed=rss', {})

    if not response.ok:
        return None

    return response.text
Пример #6
0
def get_snap_info(snap_name, session):
    response = cache.get(
        SNAP_INFO_URL.format(snap_name=snap_name),
        headers=get_authorization_header(session)
    )

    if authentication.is_macaroon_expired(response.headers):
        raise MacaroonRefreshRequired

    return process_response(response)
Пример #7
0
def get_agreement(session):
    headers = get_authorization_header(session)

    agreement_response = cache.get(
        AGREEMENT_URL,
        headers
    )

    if authentication.is_macaroon_expired(agreement_response.headers):
        raise MacaroonRefreshRequired

    return agreement_response.json()
Пример #8
0
def get_account(session):
    headers = get_authorization_header(session)

    response = cache.get(
        url=ACCOUNT_URL,
        method='GET',
        headers=headers
    )

    if authentication.is_macaroon_expired(response.headers):
        raise MacaroonRefreshRequired

    return process_response(response)
Пример #9
0
def snap_metadata(snap_id, session, json=None):
    method = "PUT" if json is not None else None

    metadata_response = cache.get(
        METADATA_QUERY_URL.format(snap_id=snap_id),
        headers=get_authorization_header(session),
        json=json,
        method=method
    )

    if authentication.is_macaroon_expired(metadata_response.headers):
        raise MacaroonRefreshRequired

    return process_response(metadata_response)
Пример #10
0
def get_publisher_metrics(session, json):
    authed_metrics_headers = PUB_METRICS_QUERY_HEADERS.copy()
    auth_header = get_authorization_header(session)['Authorization']
    authed_metrics_headers['Authorization'] = auth_header

    metrics_response = cache.get(
        SNAP_PUB_METRICS_URL,
        headers=authed_metrics_headers,
        json=json
    )

    if authentication.is_macaroon_expired(metrics_response.headers):
        raise MacaroonRefreshRequired

    return process_response(metrics_response)
Пример #11
0
def post_agreement(session, agreed):
    headers = get_authorization_header(session)

    json = {
        'latest_tos_accepted': agreed
    }
    agreement_response = cache.get(
        AGREEMENT_URL,
        headers,
        json
    )

    if authentication.is_macaroon_expired(agreement_response.headers):
        raise MacaroonRefreshRequired

    return process_response(agreement_response)
Пример #12
0
def post_username(session, username):
    headers = get_authorization_header(session)
    json = {
        'short_namespace': username
    }
    username_response = cache.get(
        url=ACCOUNT_URL,
        headers=headers,
        json=json,
        method='PATCH'
    )

    if authentication.is_macaroon_expired(username_response.headers):
        raise MacaroonRefreshRequired

    if username_response.status_code == 204:
        return {}
    else:
        return process_response(username_response)
Пример #13
0
def get_articles(tags=TAGS, per_page=12, page=1, exclude=None):
    url_parts = [
        API_URL,
        '/posts?tags=',
        TAGS,
        '&per_page=',
        str(per_page),
        '&page=',
        str(page),
    ]

    if exclude:
        url_parts = url_parts + ['&exclude=', str(exclude)]

    url = ''.join(url_parts)

    response = cache.get(url, {})
    total_pages = response.headers.get('X-WP-TotalPages')

    return response.json(), total_pages
Пример #14
0
def get_promoted_snaps():
    promoted_response = cache.get(PROMOTED_QUERY_URL,
                                  headers=PROMOTED_QUERY_HEADERS)

    return process_response(promoted_response)
Пример #15
0
def get_featured_snaps():
    featured_response = cache.get(FEATURE_SNAPS_URL,
                                  headers=SEARCH_QUERY_HEADERS)

    return process_response(featured_response)
Пример #16
0
def get_public_metrics(snap_name, json):
    metrics_response = cache.get(SNAP_METRICS_URL.format(snap_name=snap_name),
                                 headers=METRICS_QUERY_HEADERS,
                                 json=json)

    return process_response(metrics_response)
Пример #17
0
def get_searched_snaps(snap_searched, size, page):
    searched_response = cache.get(SNAP_SEARCH_URL.format(
        snap_name=snap_searched, size=size, page=page),
                                  headers=SEARCH_QUERY_HEADERS)

    return process_response(searched_response)
Пример #18
0
def get_snap_details(snap_name, snap_channel):
    details_response = cache.get(SNAP_DETAILS_URL.format(
        snap_name=snap_name, snap_channel=snap_channel),
                                 headers=DETAILS_QUERY_HEADERS)

    return process_response(details_response)
Пример #19
0
def get_article(slug):
    url = ''.join([API_URL, '/posts?slug=', slug, '&tags=', TAGS])

    response = cache.get(url, {})

    return response.json()