trabajo-afectivo/app/controllers/integration/gitlab_controller.rb

56 lines
1.1 KiB
Ruby
Raw Permalink Normal View History

2022-01-01 13:38:12 +00:00
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
2021-03-10 16:11:14 +00:00
class Integration::GitLabController < ApplicationController
prepend_before_action { authentication_check && authorize! }
def verify
gitlab = ::GitLab.new(params[:endpoint], params[:api_token])
gitlab.verify!
2021-03-10 16:11:14 +00:00
render json: {
result: 'ok',
2021-03-10 16:11:14 +00:00
}
rescue => e
logger.error e
render json: {
result: 'failed',
message: e.message,
}
end
def query
config = Setting.get('gitlab_config')
gitlab = ::GitLab.new(config['endpoint'], config['api_token'])
2021-03-10 16:11:14 +00:00
render json: {
result: 'ok',
response: gitlab.issues_by_urls(params[:links]),
}
rescue => e
logger.error e
render json: {
result: 'failed',
message: e.message,
}
end
def update
ticket = Ticket.find(params[:ticket_id])
ticket.with_lock do
authorize!(ticket, :show?)
ticket.preferences[:gitlab] ||= {}
ticket.preferences[:gitlab][:issue_links] = Array(params[:issue_links]).uniq
ticket.save!
end
render json: {
result: 'ok',
}
end
end