Coverage for webapp/endpoints/publisher/packages.py: 65%
23 statements
« prev ^ index » next coverage.py v7.10.5, created at 2025-08-26 22:06 +0000
« prev ^ index » next coverage.py v7.10.5, created at 2025-08-26 22:06 +0000
1# Packages
2import flask
3from canonicalwebteam.store_api.publishergw import PublisherGW
4from canonicalwebteam.exceptions import (
5 StoreApiError,
6 StoreApiResponseErrorList,
7 StoreApiResponseError,
8 StoreApiResourceNotFound,
9)
10from flask.json import jsonify
12# Local
13from webapp.helpers import api_publisher_session
14from webapp.decorators import exchange_required, login_required
16publisher_gateway = PublisherGW("snap", api_publisher_session)
19@login_required
20@exchange_required
21def get_package_metadata(snap_name):
22 try:
23 package_metadata = publisher_gateway.get_package_metadata(
24 flask.session, snap_name
25 )
26 return jsonify({"data": package_metadata, "success": True})
27 except StoreApiResourceNotFound:
28 return (jsonify({"error": "Package not found", "success": False}), 404)
29 except StoreApiResponseErrorList as error:
30 return (
31 jsonify(
32 {
33 "error": "Error occurred while fetching snap metadata.",
34 "errors": error.errors,
35 "success": False,
36 }
37 ),
38 error.status_code,
39 )
40 except StoreApiResponseError as error:
41 return (
42 jsonify(
43 {
44 "error": "Error occurred while fetching snap metadata.",
45 "success": False,
46 }
47 ),
48 error.status_code,
49 )
50 except StoreApiError:
51 return (
52 jsonify(
53 {
54 "error": "Error occurred while fetching snap metadata.",
55 "success": False,
56 }
57 ),
58 500,
59 )
60 except Exception:
61 return (jsonify({"error": "Unexpected error", "success": False}), 500)