|
- class Api::V1::Projects::WebhooksController < Api::V1::BaseController
- before_action :require_manager_above
- before_action :find_webhook, only: [:show, :update, :destroy, :tests, :hooktasks]
-
- def index
- # @result_object = Api::V1::Projects::Webhooks::ListService.call(@project, current_user&.gitea_token)
- @webhooks = @project.webhooks
- @webhooks = kaminari_paginate(@webhooks)
- end
-
- def create
- @result_object = Api::V1::Projects::Webhooks::CreateService.call(@project, webhook_params, current_user&.gitea_token)
- end
-
- def show
- @result_object = Api::V1::Projects::Webhooks::GetService.call(@project, params[:id], current_user&.gitea_token)
- end
-
- def update
- @result_object = Api::V1::Projects::Webhooks::UpdateService.call(@project, params[:id], webhook_params, current_user&.gitea_token)
- end
-
- def destroy
- @result_object = Api::V1::Projects::Webhooks::DeleteService.call(@project, params[:id], current_user&.gitea_token)
- if @result_object
- return render_ok
- else
- return render_error('删除失败!')
- end
- end
-
- def tests
- @result_object = Api::V1::Projects::Webhooks::TestsService.call(@project, params[:id], current_user&.gitea_token)
- if @result_object
- return render_ok
- else
- return render_error('推送失败!')
- end
- end
-
- def hooktasks
- @hooktasks = @webhook.tasks.where(is_delivered: true).order("delivered desc")
- @hooktasks = kaminari_paginate(@hooktasks)
- end
-
- private
- def webhook_params
- params.require(:webhook).permit(:active, :branch_filter, :http_method, :url, :content_type, :secret, events: [])
- end
-
- def find_webhook
- @webhook = Gitea::Webhook.find_by_id(params[:id])
- return render_not_found unless @webhook.present?
- end
- end
|