12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- # Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/
- class Integration::IdoitController < ApplicationController
- prepend_before_action -> { authentication_check(permission: ['agent.integration.idoit', 'admin.integration.idoit']) }, except: [:verify, :query, :update]
- prepend_before_action -> { authentication_check(permission: ['admin.integration.idoit']) }, only: [:verify]
- prepend_before_action -> { authentication_check(permission: ['ticket.agent']) }, only: [:query, :update]
- def verify
- response = ::Idoit.verify(params[:api_token], params[:endpoint], params[:client_id])
- render json: {
- result: 'ok',
- response: response,
- }
- rescue => e
- logger.error e
- render json: {
- result: 'failed',
- message: e.message,
- }
- end
- def query
- response = ::Idoit.query(params[:method], params[:filter])
- render json: {
- result: 'ok',
- response: response,
- }
- rescue => e
- logger.error e
- render json: {
- result: 'failed',
- message: e.message,
- }
- end
- def update
- params[:object_ids] ||= []
- ticket = Ticket.find(params[:ticket_id])
- access!(ticket, 'read')
- ticket.preferences[:idoit] ||= {}
- ticket.preferences[:idoit][:object_ids] ||= []
- ticket.preferences[:idoit][:object_ids].concat(params[:object_ids])
- ticket.save!
- render json: {
- result: 'ok',
- }
- end
- end
|