From aa2704acc7526792c8fb0e8b3429c8b27bb9a9e9 Mon Sep 17 00:00:00 2001 From: Joseph Schorr Date: Thu, 10 Nov 2016 15:38:27 -0500 Subject: [PATCH] Add a test for operation name collisions and fix the one additional collision found --- endpoints/api/discovery.py | 12 ++++++++++-- endpoints/api/team.py | 2 +- static/js/services/roles-service.js | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/endpoints/api/discovery.py b/endpoints/api/discovery.py index a9faf9ae2..c688feb4e 100644 --- a/endpoints/api/discovery.py +++ b/endpoints/api/discovery.py @@ -65,6 +65,7 @@ def swagger_route_data(include_internal=False, compact=False): models = {} tags = [] tags_added = set() + operationIds = set() for rule in app.url_map.iter_rules(): endpoint_method = app.view_functions[rule.endpoint] @@ -125,13 +126,20 @@ def swagger_route_data(include_internal=False, compact=False): logger.debug('Unable to find method for %s in class %s', method_name, view_class) continue + operationId = method_metadata(method, 'nickname') operation_swagger = { - 'operationId': method_metadata(method, 'nickname'), + 'operationId': operationId, 'parameters': [], } - if operation_swagger['operationId'] is None: + + if operationId is None: continue + if operationId in operationIds: + raise Exception('Duplicate operation Id: %s' % operationId) + + operationIds.add(operationId) + if not compact: operation_swagger.update({ 'description': method.__doc__.strip() if method.__doc__ else '', diff --git a/endpoints/api/team.py b/endpoints/api/team.py index 361337b84..d1ef774ac 100644 --- a/endpoints/api/team.py +++ b/endpoints/api/team.py @@ -361,7 +361,7 @@ class InviteTeamMember(ApiResource): @path_param('teamname', 'The name of the team') class TeamPermissions(ApiResource): """ Resource for listing the permissions an org's team has in the system. """ - @nickname('getTeamPermissions') + @nickname('getOrganizationTeamPermissions') def get(self, orgname, teamname): """ Returns the list of repository permissions for the org's team. """ permission = AdministerOrganizationPermission(orgname) diff --git a/static/js/services/roles-service.js b/static/js/services/roles-service.js index 89def37ab..b192e715d 100644 --- a/static/js/services/roles-service.js +++ b/static/js/services/roles-service.js @@ -80,7 +80,7 @@ angular.module('quay').factory('RolesService', ['UtilService', 'Restangular', 'A 'teamname': entityName }; - ApiService.getTeamPermissions(null, params).then(function(resp) { + ApiService.getOrganizationTeamPermissions(null, params).then(function(resp) { callback(resp.permissions); }, errorHandler); } else if (entityKind == 'robot') {