Chromium Code Reviews| Index: appengine/chrome_infra_packages/cipd/api.py |
| diff --git a/appengine/chrome_infra_packages/cipd/api.py b/appengine/chrome_infra_packages/cipd/api.py |
| index e8bc57c30ef8d43870a0c3f501657e92e8f4155b..879dcba7ac8732ea5c3dcedb2780ceb65a96d3e3 100644 |
| --- a/appengine/chrome_infra_packages/cipd/api.py |
| +++ b/appengine/chrome_infra_packages/cipd/api.py |
| @@ -220,6 +220,19 @@ class FetchPackageResponse(messages.Message): |
| ################################################################################ |
| +class ListPackagesResponse(messages.Message): |
| + """Results of listPackage call.""" |
| + |
| + status = messages.EnumField(Status, 1, required=True) |
| + error_message = messages.StringField(2, required=False) |
| + |
| + # For SUCCESS, names of the packages. |
| + packages = messages.StringField(3, repeated=True) |
| + |
| + |
| +################################################################################ |
| + |
| + |
| class RegisterPackageResponse(messages.Message): |
| """Results of registerPackage call.""" |
| status = messages.EnumField(Status, 1, required=True) |
| @@ -537,6 +550,26 @@ class PackageRepositoryApi(remote.Service): |
| status=Status.REGISTERED if registered else Status.ALREADY_REGISTERED, |
| package=package_to_proto(pkg)) |
| + # REVIEW: Should I be reusing the /package path with an additional prefix |
|
Vadim Sh.
2015/06/19 21:12:03
I think packages is ok. Consider also "GET /packag
estaab
2015/06/20 02:25:25
Done.
|
| + # parameter? I haven't done much RESTful API work before. |
| + @endpoints_method( |
| + endpoints.ResourceContainer( |
| + message_types.VoidMessage, |
| + prefix=messages.StringField(1, required=False)), |
| + ListPackagesResponse, |
| + http_method='GET', |
| + path='packages', |
| + name='listPackages') |
| + def list_packages(self, request): |
| + """Returns information about a package.""" |
| + prefix = request.prefix or '' |
| + |
| + pkgs = self.service.list_packages(prefix) |
| + caller = auth.get_current_identity() |
| + visible_pkgs = [p for p in pkgs if acl.can_fetch_package(p, caller)] |
| + |
| + return ListPackagesResponse(packages=visible_pkgs) |
| + |
| ### PackageInstance methods. |