Module: Workarea::Emarsys

Defined in:
lib/workarea/emarsys.rb,
lib/workarea/emarsys/engine.rb,
app/services/emarsys/contact.rb,
lib/workarea/emarsys/version.rb,
app/lib/workarea/emarsys/gateway.rb,
app/lib/workarea/emarsys/response.rb,
app/services/emarsys/contact/user.rb,
app/services/emarsys/contact/order.rb,
app/lib/workarea/emarsys/bogus_gateway.rb,
app/workers/workarea/emarsys/save_user.rb,
app/workers/workarea/emarsys/save_order.rb,
app/workers/workarea/emarsys/sync_orders.rb,
app/lib/workarea/emarsys/sales_data_gateway.rb,
app/workers/workarea/emarsys/save_email_signup.rb,
app/lib/workarea/emarsys/sales_data_bogus_gateway.rb

Defined Under Namespace

Classes: BogusGateway, Contact, Engine, Gateway, Response, SalesDataBogusGateway, SalesDataGateway, SaveEmailSignup, SaveOrderContact, SaveUser, SyncOrders

Constant Summary collapse

VERSION =
"2.0.0"

Class Method Summary collapse

Class Method Details

.api_tokenObject



31
32
33
# File 'lib/workarea/emarsys.rb', line 31

def self.api_token
  sales_data_credentials[:api_token]
end

.configObject



35
36
37
# File 'lib/workarea/emarsys.rb', line 35

def self.config
  Workarea.config.emarsys
end

.credentialsObject



11
12
13
# File 'lib/workarea/emarsys.rb', line 11

def self.credentials
  (Rails.application.secrets.emarsys || {}).deep_symbolize_keys
end

.gatewayEmarsys::Gateway

Conditionally use the real gateway when secrets are present. Otherwise, use the bogus gateway.



43
44
45
46
47
48
49
# File 'lib/workarea/emarsys.rb', line 43

def self.gateway
  if credentials.present?
    Emarsys::Gateway.new(secret_key, user_name, { test: !Workarea.config.emarsys_production_api })
  else
    Emarsys::BogusGateway.new
  end
end

.merchant_idObject



27
28
29
# File 'lib/workarea/emarsys.rb', line 27

def self.merchant_id
  Workarea.config.merchant_id
end

.sales_data_credentialsObject



15
16
17
# File 'lib/workarea/emarsys.rb', line 15

def self.sales_data_credentials
  (Rails.application.secrets.emarsys_sales || {}).deep_symbolize_keys
end

.sales_data_gatewayObject



51
52
53
54
55
56
57
# File 'lib/workarea/emarsys.rb', line 51

def self.sales_data_gateway
  if credentials.present?
    Emarsys::SalesDataGateway.new(api_token, { merchant_id: Emarsys.merchant_id })
  else
    Emarsys::SalesDataBogusGateway.new
  end
end

.secret_keyObject



19
20
21
# File 'lib/workarea/emarsys.rb', line 19

def self.secret_key
  credentials[:secret_key]
end

.user_nameObject



23
24
25
# File 'lib/workarea/emarsys.rb', line 23

def self.user_name
  credentials[:user_name]
end