diff --git a/module_build_service/models.py b/module_build_service/models.py index 40e5f55c..c8245039 100644 --- a/module_build_service/models.py +++ b/module_build_service/models.py @@ -38,6 +38,8 @@ import module_build_service.messaging from sqlalchemy.orm import lazyload +from flask import url_for + # Just like koji.BUILD_STATES, except our own codes for modules. BUILD_STATES = { @@ -233,8 +235,7 @@ class ModuleBuild(RidaBase): 'state': self.state, 'state_name': INVERSE_BUILD_STATES[self.state], 'state_reason': self.state_reason, - 'state_url': '{}{}'.format(api_definition['module_build_query']['url'][0], - self.id), + 'state_url': url_for('module_build_query', id=self.id), 'scmurl': self.scmurl, 'owner': self.owner, 'time_submitted': self.time_submitted, diff --git a/module_build_service/views.py b/module_build_service/views.py index cfc19760..df359259 100644 --- a/module_build_service/views.py +++ b/module_build_service/views.py @@ -59,7 +59,7 @@ api_definition = { } }, 'module_build_query': { - 'url': ['/module-build-service/1/module-builds/', ''], + 'url': '/module-build-service/1/module-builds/', 'options': { 'methods': ['GET'], } @@ -261,7 +261,10 @@ class ModuleBuildAPI(MethodView): def register_v1_api(): """ Registers version 1 of Rida API. """ module_view = ModuleBuildAPI.as_view('module_builds') - for val in api_definition.values(): - app.add_url_rule(''.join(val['url']), view_func=module_view, **val['options']) + for key, val in api_definition.items(): + app.add_url_rule(val['url'], + endpoint=key, + view_func=module_view, + **val['options']) register_v1_api()