Class: OTRS

Inherits:
Object
  • Object
show all
Extended by:
ActiveModel::Callbacks
Includes:
ActiveModel::Conversion, ActiveModel::Naming, ActiveModel::Validations
Defined in:
lib/otrs_connector/otrs.rb

Defined Under Namespace

Classes: Change, ConfigItem, GeneralCatalog, Link, Relation, Service, Ticket

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.api_urlObject



31
32
33
# File 'lib/otrs_connector/otrs.rb', line 31

def self.api_url
  @@otrs_api_url
end

.api_url=(url) ⇒ Object



34
35
36
# File 'lib/otrs_connector/otrs.rb', line 34

def self.api_url=(url)
  @@otrs_api_url = url
end

.connect(params) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/otrs_connector/otrs.rb', line 46

def self.connect(params)
  require 'net/https'
  base_url = self.api_url
  logon = URI.encode("User=#{self.user}&Password=#{self.password}")
  object = URI.encode(params[:object])
  method = URI.encode(params[:method])
  data = params[:data].to_json
  data = URI.encode(data)
  data = URI.escape(data, '=\',\\/+-&?#.;')
  uri = URI.parse("#{base_url}?#{logon}&Object=#{object}&Method=#{method}&Data=#{data}")

  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  request = Net::HTTP::Get.new(uri.request_uri)
  response = http.request(request)
  result = ActiveSupport::JSON::decode(response.body)
  if result["Result"] == 'successful'
    result["Data"]
  else
    raise "Error:#{result["Result"]} #{result["Data"]}"
  end
end

.object_preprocessor(object) ⇒ Object



70
71
72
73
74
75
76
77
# File 'lib/otrs_connector/otrs.rb', line 70

def self.object_preprocessor(object)
  unless object.empty? or object.nil?
    a = Hash[*object]
    self.new(a.symbolize_keys)
  else
    raise 'NoSuchObject'
  end
end

.passwordObject



24
25
26
# File 'lib/otrs_connector/otrs.rb', line 24

def self.password
  @@otrs_pass
end

.password=(password) ⇒ Object



27
28
29
# File 'lib/otrs_connector/otrs.rb', line 27

def self.password=(password)
  @@otrs_pass = password
end

.userObject



17
18
19
# File 'lib/otrs_connector/otrs.rb', line 17

def self.user
  @@otrs_user
end

.user=(username) ⇒ Object



20
21
22
# File 'lib/otrs_connector/otrs.rb', line 20

def self.user=(username)
  @@otrs_user = username
end

Instance Method Details

#attributesObject



38
39
40
41
42
43
44
# File 'lib/otrs_connector/otrs.rb', line 38

def attributes
  attributes = {}
  self.instance_variables.each do |v|
    attributes[v.to_s.gsub('@','').to_sym] = self.instance_variable_get(v)
  end
  attributes
end

#connect(params) ⇒ Object



80
81
82
# File 'lib/otrs_connector/otrs.rb', line 80

def connect(params)
  self.class.connect(params)
end