Class: OTRS
- Inherits:
-
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_url ⇒ Object
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
|
.password ⇒ Object
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
|
.user ⇒ Object
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
#attributes ⇒ Object
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
|