Coverage for webapp/publisher/snaps/publicise_views.py: 52%
23 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-28 22:05 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-28 22:05 +0000
1# Packages
2import flask
3from canonicalwebteam.store_api.dashboard import Dashboard
4from canonicalwebteam.store_api.devicegw import DeviceGW
5from canonicalwebteam.exceptions import StoreApiError
7# Local
8from webapp.helpers import api_session
9from webapp.decorators import login_required
11dashboard = Dashboard(api_session)
12device_gateway = DeviceGW("snap", api_session)
15@login_required
16def get_publicise_data(snap_name):
17 snap_details = dashboard.get_snap_info(flask.session, snap_name)
19 try:
20 snap_public_details = device_gateway.get_item_details(
21 snap_name, api_version=2, fields=["trending", "private"]
22 )
23 trending = snap_public_details["snap"]["trending"]
24 except StoreApiError:
25 trending = False
27 is_released = len(snap_details["channel_maps_list"]) > 0
29 context = {
30 "is_released": is_released,
31 "trending": trending,
32 "private": snap_details["private"],
33 }
35 return flask.jsonify({"success": True, "data": context})
38@login_required
39def get_publicise(snap_name):
40 # If this fails, the page will 404
41 dashboard.get_snap_info(flask.session, snap_name)
42 return flask.render_template("store/publisher.html", snap_name=snap_name)