lime_light_platform 1.0.0.5 → 1.0.0.6

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/lime_light_platform.rb +28 -17
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: be6f9f98eda19cdcf38139f726c3c14ac278c31e59f84651b5b374f3571bf8eb
4
- data.tar.gz: 3cbe56ffaaba8dd18bdf2d9c0172eb9510e6faf84cf998f77c34dcbab6b4d5c7
3
+ metadata.gz: 0ced5ca404f910c625be5cedccdacb2862b234899e032c6bc44bf32db0a3d45a
4
+ data.tar.gz: 7311f73d4d35b16668f7e18de03b7c3774ed854a73913855f01661774473bdfb
5
5
  SHA512:
6
- metadata.gz: 65adf906905b33d868fbf7271dbdb21cb913cfb9d2224cf54cd1f2049956a227ca67693bd1520a1a5746d8400aebc44a13cfad5355baf82bb887b7469a83ecca
7
- data.tar.gz: fe9bc36c1d9e49f203faa9b50f62fe4195a41fa2507e842a0ef7d0f882aa41e6ed851333494a56dd0aa172a636bf3349c2f4385522890d4000c33f829dd6399f
6
+ metadata.gz: 167f3101a5441c458b703cc98ccc2d26f228da4a276a2401d53137cfaca7507d71e1fdb81edd383878ec2c7d8dd86cace08c23fd7e24fb644a1d0d9da1cb548d
7
+ data.tar.gz: b3720b74da807573f312b1752f1364db66ff686bf31e700a518227ec97cf5adea54c0883da701687fb6124a89de1a87deea7aa950dd72588f91c072ead265ecc
@@ -1,7 +1,13 @@
1
+ require 'active_support'
2
+ require 'active_support/core_ext'
3
+ require 'lime_light_platform/api_error'
4
+ require 'lime_light_platform/app_base'
5
+ require 'lime_light_platform/helpers/accessor'
6
+
1
7
  class LimeLightPlatform < AppBase
2
8
  include Helpers::Accessor
3
9
 
4
- URL_TEMPLATE = 'https://<APP_KEY>.limelightcrm.com/<DEV_SUB>api/v1/<METHOD>.php'
10
+ URL_TEMPLATE = 'https://<APP_KEY>.limelightcrm.com/<DEV_SUB>api/v1/<METHOD>'
5
11
 
6
12
  attr_reader :app_key,
7
13
  :api_username,
@@ -34,10 +40,11 @@ class LimeLightPlatform < AppBase
34
40
  def campaign_find_active
35
41
  response = default_response
36
42
  api_response = perform_api_call base_call_params(__method__)
43
+ response[:raw] = api_response
37
44
 
38
45
  if !api_response.blank?
39
- parsed = JSON.parse(response)
40
- response_code = parsed['response'].to_i
46
+ parsed = JSON.parse(api_response)
47
+ response_code = get_response_code(parsed).to_i
41
48
  response[:code] = response_code
42
49
  campaigns = []
43
50
 
@@ -145,9 +152,7 @@ class LimeLightPlatform < AppBase
145
152
  call_params = base_call_params __method__
146
153
 
147
154
  if key_exists('product_id', request)
148
- call_params[:body]['product_ids'] = []
149
- call_params[:body]['actions'] = []
150
- call_params[:body]['values'] = []
155
+ call_params[:body]['product_id'] = {}
151
156
  keys = [
152
157
  'customer_purchase_limit',
153
158
  'taxable',
@@ -174,20 +179,21 @@ class LimeLightPlatform < AppBase
174
179
  # only update what is present
175
180
  keys.each do |key|
176
181
  if key_exists(key, request)
177
- call_params[:body]['product_ids'] << request['product_id']
178
- call_params[:body]['actions'] << key
179
- call_params[:body]['values'] << get_by_key(key)
182
+ call_params[:body]['product_id'][request['product_id'].to_s] = {}
183
+ call_params[:body]['product_id'][request['product_id'].to_s][key] = get_by_key(key, request)
180
184
  end
181
185
  end
182
186
 
183
- if !call_params[:body]['product_ids'].empty?
187
+ if !call_params[:body]['product_id'].empty?
184
188
  api_response = perform_api_call call_params
189
+ response[:raw] = api_response
185
190
 
186
191
  if !api_response.nil?
187
192
  parsed = JSON.parse(api_response)
193
+ response_code = get_response_code(parsed)
188
194
 
189
- if !parsed['response_code'].nil?
190
- response_code = parsed['response_code'].to_i
195
+ if !response_code.blank?
196
+ response_code = response_code.to_i
191
197
  response[:code] = response_code
192
198
 
193
199
  if response_code == 100
@@ -234,25 +240,30 @@ class LimeLightPlatform < AppBase
234
240
  {
235
241
  url: crm_url(method.to_s),
236
242
  proto: POST,
237
- format: BODY_F_QUERY_STR,
238
- headers: [ "Authorization" => Base64.encode64("#{@api_username}:#{@api_password}") ],
243
+ format: BODY_F_JSON,
244
+ headers: [
245
+ { name: 'Authorization', value: 'Basic ' + Base64.strict_encode64("#{@api_username}:#{@api_password}") },
246
+ { name: 'Content-Type', value: 'application/json' }
247
+ ],
239
248
  body: {}
240
249
  }
241
250
  end
242
251
 
243
252
  def default_response
244
- { success: false, code: nil, data: [] }
253
+ { success: false, code: nil, data: [], raw: '' }
245
254
  end
246
255
 
247
256
  def common_perform_post call_params
248
257
  response = default_response
249
258
  api_response = perform_api_call call_params
259
+ response[:raw] = api_response
250
260
 
251
261
  if !api_response.nil?
252
262
  parsed = JSON.parse(api_response)
263
+ response_code = get_response_code parsed
253
264
 
254
- if !parsed['response_code'].nil?
255
- response_code = parsed['response_code'].to_i
265
+ if !response_code.blank?
266
+ response_code = response_code.to_i
256
267
  response[:code] = response_code
257
268
 
258
269
  if response_code == 100
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lime_light_platform
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.5
4
+ version: 1.0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marvin Titus-Casseus