Wire up webhooks to the UI.

This commit is contained in:
yackob03 2013-11-15 17:45:37 -05:00
parent fe67bc3d25
commit ecc5f8fba7
7 changed files with 94 additions and 7 deletions

View file

@ -841,7 +841,7 @@ def webhook_view(webhook):
@api_login_required
@parse_repository_name
def create_webhook(namespace, repository):
permission = ModifyRepositoryPermission(namespace, repository)
permission = AdministerRepositoryPermission(namespace, repository)
if permission.can():
repo = model.get_repository(namespace, repository)
webhook = model.create_webhook(repo, request.get_json())
@ -849,6 +849,7 @@ def create_webhook(namespace, repository):
repo_string = '%s/%s' % (namespace, repository)
resp.headers['Location'] = url_for('get_webhook', repository=repo_string,
public_id=webhook.public_id)
return resp
abort(403) # Permissions denied
@ -858,7 +859,7 @@ def create_webhook(namespace, repository):
@api_login_required
@parse_repository_name
def get_webhook(namespace, repository, public_id):
permission = ModifyRepositoryPermission(namespace, repository)
permission = AdministerRepositoryPermission(namespace, repository)
if permission.can():
webhook = model.get_webhook(namespace, repository, public_id)
return jsonify(webhook_view(webhook))
@ -870,7 +871,7 @@ def get_webhook(namespace, repository, public_id):
@api_login_required
@parse_repository_name
def list_webhooks(namespace, repository):
permission = ModifyRepositoryPermission(namespace, repository)
permission = AdministerRepositoryPermission(namespace, repository)
if permission.can():
webhooks = model.list_webhooks(namespace, repository)
return jsonify({
@ -880,6 +881,19 @@ def list_webhooks(namespace, repository):
abort(403) # Permission denied
@app.route('/api/repository/<path:repository>/webhook/<public_id>',
methods=['DELETE'])
@api_login_required
@parse_repository_name
def delete_webhook(namespace, repository, public_id):
permission = AdministerRepositoryPermission(namespace, repository)
if permission.can():
model.delete_webhook(namespace, repository, public_id)
return make_response('No Content', 204)
abort(403) # Permission denied
@app.route('/api/filedrop/', methods=['POST'])
@api_login_required
def get_filedrop_url():