kauplus 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/kauplus.rb +2 -1
- data/lib/kauplus/client.rb +8 -12
- data/lib/kauplus/params.rb +49 -0
- data/lib/kauplus/version.rb +1 -1
- metadata +46 -36
data/lib/kauplus.rb
CHANGED
data/lib/kauplus/client.rb
CHANGED
@@ -45,15 +45,7 @@ module Kauplus
|
|
45
45
|
# and parses the json response.
|
46
46
|
#
|
47
47
|
def self.post(resource_method, payload)
|
48
|
-
parse_json RestClient.post(url_for_resource_method(resource_method), payload
|
49
|
-
end
|
50
|
-
|
51
|
-
#
|
52
|
-
# Sends an HTTP MULTIPART POST Request to the Kauplus Web Services
|
53
|
-
# and parses the json response.
|
54
|
-
#
|
55
|
-
def self.multipart_post(resource_method, payload)
|
56
|
-
self.post(resource_method, payload.merge(:multipart => true))
|
48
|
+
parse_json RestClient.post(url_for_resource_method(resource_method), Params.generate(payload))
|
57
49
|
end
|
58
50
|
|
59
51
|
#
|
@@ -61,7 +53,7 @@ module Kauplus
|
|
61
53
|
# and parses the json response.
|
62
54
|
#
|
63
55
|
def self.put(resource_method, payload)
|
64
|
-
parse_json RestClient.put(url_for_resource_method(resource_method), payload
|
56
|
+
parse_json RestClient.put(url_for_resource_method(resource_method), Params.generate(payload))
|
65
57
|
end
|
66
58
|
|
67
59
|
#
|
@@ -96,7 +88,7 @@ module Kauplus
|
|
96
88
|
# Returns the URL for consuming a specific resource_method.
|
97
89
|
#
|
98
90
|
def self.url_for_resource_method(resource_method)
|
99
|
-
"https://shop.kauplus.com.br/#{resource_method}"
|
91
|
+
"https://shop.kauplus.com.br/#{resource_method}"
|
100
92
|
end
|
101
93
|
|
102
94
|
#
|
@@ -107,7 +99,11 @@ module Kauplus
|
|
107
99
|
parsed_response = JSON.load(body)
|
108
100
|
if Kauplus.config.process_response
|
109
101
|
if parsed_response['code'].to_s[0] == '6'
|
110
|
-
|
102
|
+
if parsed_response['summary']
|
103
|
+
parsed_response = {'data' => parsed_response['data'], 'summary' => parsed_response['summary']}
|
104
|
+
else
|
105
|
+
parsed_response = parsed_response['data']
|
106
|
+
end
|
111
107
|
else
|
112
108
|
raise Kauplus::Error.new(
|
113
109
|
:code => parsed_response['code'],
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Kauplus
|
2
|
+
|
3
|
+
#
|
4
|
+
# Deals with post/put parameters, generating parameters with
|
5
|
+
# the correct keys. If our pull request to RestClient is accepted,
|
6
|
+
# this won't be needed anymore.
|
7
|
+
#
|
8
|
+
class Params
|
9
|
+
|
10
|
+
def self.generate payload
|
11
|
+
(payload.is_a? Hash) ? generate_params_list(payload) : payload
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.generate_params_list payload
|
15
|
+
parameters = []
|
16
|
+
# Build array with all parameter values
|
17
|
+
values = extract_values(payload)
|
18
|
+
|
19
|
+
# Generate query string with the correct keys
|
20
|
+
# and extract each key-value pair of the form
|
21
|
+
# "name=value" as key_value
|
22
|
+
payload.to_query.split('&').each do |key_value|
|
23
|
+
unless key_value.blank?
|
24
|
+
key, value = key_value.split('=')
|
25
|
+
index = values.find_index{|v| v.to_query(nil).split('=')[1] == value}
|
26
|
+
if index
|
27
|
+
parameters << [URI.unescape(key), values.delete_at(index)]
|
28
|
+
else
|
29
|
+
raise "Could not find representation for #{URI.unescape(key)}"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
parameters
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.extract_values(payload, values=[])
|
37
|
+
if payload.is_a? Hash
|
38
|
+
payload.each {|k, v| extract_values(v, values)}
|
39
|
+
elsif payload.is_a? Array
|
40
|
+
payload.each {|v| extract_values(v, values)}
|
41
|
+
else
|
42
|
+
values << payload
|
43
|
+
end
|
44
|
+
values
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
data/lib/kauplus/version.rb
CHANGED
metadata
CHANGED
@@ -1,46 +1,50 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: kauplus
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.1
|
3
|
+
version: !ruby/object:Gem::Version
|
5
4
|
prerelease:
|
5
|
+
version: 0.1.2
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Kauplus Social Commerce
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
|
13
|
+
date: 2012-01-23 00:00:00 -02:00
|
14
|
+
default_executable:
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
15
17
|
name: rest-client
|
16
|
-
|
18
|
+
prerelease: false
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
20
|
none: false
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
+
requirements:
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
21
24
|
version: 1.6.6
|
22
25
|
type: :runtime
|
23
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
+
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
26
28
|
name: activesupport
|
27
|
-
|
29
|
+
prerelease: false
|
30
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
31
|
none: false
|
29
|
-
requirements:
|
30
|
-
- -
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
32
35
|
version: 3.1.0
|
33
36
|
type: :runtime
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
services do Kauplus.
|
38
|
-
email:
|
37
|
+
version_requirements: *id002
|
38
|
+
description: "Esta gem \xC3\xA9 um cliente que permite desenvolvedores se conectarem aos web services do Kauplus."
|
39
|
+
email:
|
39
40
|
- suporte@kauplus.com.br
|
40
41
|
executables: []
|
42
|
+
|
41
43
|
extensions: []
|
44
|
+
|
42
45
|
extra_rdoc_files: []
|
43
|
-
|
46
|
+
|
47
|
+
files:
|
44
48
|
- .gitignore
|
45
49
|
- Gemfile
|
46
50
|
- README
|
@@ -52,29 +56,35 @@ files:
|
|
52
56
|
- lib/kauplus/config.rb
|
53
57
|
- lib/kauplus/constants.rb
|
54
58
|
- lib/kauplus/error.rb
|
59
|
+
- lib/kauplus/params.rb
|
55
60
|
- lib/kauplus/version.rb
|
61
|
+
has_rdoc: true
|
56
62
|
homepage: http://dev.kauplus.com.br/
|
57
63
|
licenses: []
|
64
|
+
|
58
65
|
post_install_message:
|
59
66
|
rdoc_options: []
|
60
|
-
|
67
|
+
|
68
|
+
require_paths:
|
61
69
|
- lib
|
62
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
63
71
|
none: false
|
64
|
-
requirements:
|
65
|
-
- -
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version:
|
68
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: "0"
|
76
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
77
|
none: false
|
70
|
-
requirements:
|
71
|
-
- -
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
version:
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: "0"
|
74
82
|
requirements: []
|
83
|
+
|
75
84
|
rubyforge_project: kauplus
|
76
|
-
rubygems_version: 1.
|
85
|
+
rubygems_version: 1.6.2
|
77
86
|
signing_key:
|
78
87
|
specification_version: 3
|
79
88
|
summary: Kauplus - Cliente da API
|
80
89
|
test_files: []
|
90
|
+
|