Commit a61f2fc89a349337a849e4065a387d6d5045a340
1 parent
3d0157a5
parse logon profile
Showing
3 changed files
with
62 additions
and
2 deletions
Show diff stats
lib/syspro.rb
1 | +module Syspro | |
2 | + class GetLogonProfile < ApiResource | |
3 | + def self.get_logon_profile(user_id) | |
4 | + params = { "UserId" => user_id } | |
5 | + resp = self.request(:get, resource_url, params) | |
6 | + parse_response(resp[0]) | |
7 | + end | |
8 | + | |
9 | + def resource_url | |
10 | + "/GetLogonProfile" | |
11 | + end | |
12 | + | |
13 | + def self.parse_response(resp) | |
14 | + doc = resp.data | |
15 | + | |
16 | + user_profile = UserProfile.new( | |
17 | + doc.xpath("//CompanyName").text, | |
18 | + doc.xpath("//OperatorCode").text, | |
19 | + doc.xpath("//OperatorGroup").text, | |
20 | + doc.xpath("//OperatorEmailAddress").text, | |
21 | + doc.xpath("//OperatorLocation").text, | |
22 | + doc.xpath("//OperatorLanguageCode").text, | |
23 | + doc.xpath("//SystemLanguage").text, | |
24 | + doc.xpath("//AccountingDate").text, | |
25 | + doc.xpath("//CompanyDate").text, | |
26 | + doc.xpath("//DefaultArBranch").text, | |
27 | + doc.xpath("//DefaultApBranch").text, | |
28 | + doc.xpath("//DefaultBank").text, | |
29 | + doc.xpath("//DefaultWarehouse").text, | |
30 | + doc.xpath("//DefaultCustomer").text, | |
31 | + doc.xpath("//SystemSiteId").text, | |
32 | + doc.xpath("//SystemNationalityCode").text, | |
33 | + doc.xpath("//LocalCurrencyCode").text, | |
34 | + doc.xpath("//CurrencyDescription").text, | |
35 | + doc.xpath("//DefaultRequisitionUser").text, | |
36 | + doc.xpath("//XMLToHTMLTransform").text, | |
37 | + doc.xpath("//CssStyle").text, | |
38 | + doc.xpath("//CssSuffix").text, | |
39 | + doc.xpath("//DecimalFormat").text, | |
40 | + doc.xpath("//DateFormat").text, | |
41 | + doc.xpath("//FunctionalRole").text, | |
42 | + doc.xpath("//DatabaseType").text, | |
43 | + doc.xpath("//SysproVersion").text, | |
44 | + doc.xpath("//EnetVersion").text, | |
45 | + doc.xpath("//SysproServerBitWidth").text, | |
46 | + ) | |
47 | + end | |
48 | + private_class_method :parse_response | |
49 | + | |
50 | + UserProfile = Struct.new(:company_name, :operator_code, :operator_group, :operator_email_address, | |
51 | + :operator_location, :operator_language_code, :system_language, :accounting_date, | |
52 | + :company_date, :default_ar_branch, :default_ap_branch, :default_bank, :default_warehouse, | |
53 | + :default_customer, :system_site_id, :system_nationality_code, :local_currency_code, | |
54 | + :currency_description, :default_requisition_user, :xml_to_html_transform, :css_style, | |
55 | + :css_suffix, :decimal_format, :date_format, :functional_role, :database_type, :syspro_version, | |
56 | + :enet_version, :syspro_server_bit_width) | |
57 | + end | |
58 | +end | |
59 | + | ... | ... |
lib/syspro/syspro_response.rb
... | ... | @@ -26,8 +26,8 @@ module Syspro |
26 | 26 | # This may throw JSON::ParserError if the response body is not valid JSON. |
27 | 27 | def self.from_faraday_hash(http_resp) |
28 | 28 | resp = SysproResponse.new |
29 | - resp.data = Nokogiri::XML(http_resp[:body]) | |
30 | 29 | resp.http_body = http_resp[:body] |
30 | + resp.data = Nokogiri::XML(resp.http_body) | |
31 | 31 | resp.http_headers = http_resp[:headers] |
32 | 32 | resp.http_status = http_resp[:status] |
33 | 33 | resp.request_id = http_resp[:headers]["Request-Id"] |
... | ... | @@ -39,8 +39,8 @@ module Syspro |
39 | 39 | # This may throw JSON::ParserError if the response body is not valid JSON. |
40 | 40 | def self.from_faraday_response(http_resp) |
41 | 41 | resp = SysproResponse.new |
42 | - resp.data = Nokogiri::XML(http_resp[:body]) | |
43 | 42 | resp.http_body = http_resp.body |
43 | + resp.data = Nokogiri::XML(resp.http_body) | |
44 | 44 | resp.http_headers = http_resp.headers |
45 | 45 | resp.http_status = http_resp.status |
46 | 46 | resp.request_id = http_resp.headers["Request-Id"] | ... | ... |