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

1# Packages 

2import flask 

3from canonicalwebteam.store_api.dashboard import Dashboard 

4from canonicalwebteam.store_api.devicegw import DeviceGW 

5from canonicalwebteam.exceptions import StoreApiError 

6 

7# Local 

8from webapp.helpers import api_session 

9from webapp.decorators import login_required 

10 

11dashboard = Dashboard(api_session) 

12device_gateway = DeviceGW("snap", api_session) 

13 

14 

15@login_required 

16def get_publicise_data(snap_name): 

17 snap_details = dashboard.get_snap_info(flask.session, snap_name) 

18 

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 

26 

27 is_released = len(snap_details["channel_maps_list"]) > 0 

28 

29 context = { 

30 "is_released": is_released, 

31 "trending": trending, 

32 "private": snap_details["private"], 

33 } 

34 

35 return flask.jsonify({"success": True, "data": context}) 

36 

37 

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)