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