module TicketAbstractorClient::ServiceNow::ParamsBuilder

Public Instance Methods

build_all_tickets_params(opts) click to toggle source
# File lib/ticket_abstractor_client/service_now/params_builder.rb, line 6
def build_all_tickets_params(opts)
  opts[:table_name] = opts[:project]
  opts[:sysparm_query] = build_sysparm_query(opts)
  opts[:sysparm_fields] = Array.wrap(opts.delete(:fields))
  opts.except!(:service_desk, :states)
  opts[:display_value] = TicketAbstractorClient.configuration.snow_display_value if opts[:display_value].nil?
  opts
end
build_attachment_params(attachment) click to toggle source
# File lib/ticket_abstractor_client/service_now/params_builder.rb, line 15
def build_attachment_params(attachment)
  file_path = attachment.file_path
  mime_type = MIME::Types.type_for(file_path).first.try(:to_s) || '*/*'
  [
    {
      table_name: attachment.project,
      table_sys_id: attachment.ticket_id,
      file_name: File.basename(file_path),
      content_type: mime_type
    },
    {
      attachments: [File.new(file_path, 'rb')]
    }
  ]
end
build_comment_params(comment) click to toggle source
# File lib/ticket_abstractor_client/service_now/params_builder.rb, line 31
def build_comment_params(comment)
  {
    comment_params: { comments: comment.body },
    sys_id: comment.ticket_id,
    table_name: comment.project,
    display_value: TicketAbstractorClient.configuration.snow_display_value
  }
end
build_status_params(ticket) click to toggle source
# File lib/ticket_abstractor_client/service_now/params_builder.rb, line 40
def build_status_params(ticket)
  { ticket_params: { state: ticket.status }, sys_id: ticket.sys_id, table_name: ticket.project }
end
build_sysparm_query(opts) click to toggle source
# File lib/ticket_abstractor_client/service_now/params_builder.rb, line 50
def build_sysparm_query(opts)
  sysparm_query = {
    'u_support_fieldLIKE' => opts[:service_desk],
    'u_input_source=' => 'OIV',
    '' => opts.fetch(:states, '').split(',').map { |st| "state=#{st}" }.join('^OR')
  }
  sysparm_query.select { |_, v| v.present? }.map { |k, v| [k, v].join }.join('^')
end
build_ticket_params(ticket) click to toggle source
# File lib/ticket_abstractor_client/service_now/params_builder.rb, line 44
def build_ticket_params(ticket)
  opts = { ticket_params: ticket.fields, table_name: ticket.project }
  opts.merge!(sys_id: ticket.sys_id) if ticket.sys_id.present?
  opts
end