Class: Netcore::LoyaltyWorker

Inherits:
ApplicationWorker show all
Includes:
Payload
Defined in:
app/workers/netcore/loyalty_worker.rb

Constant Summary collapse

DELAY =
30.seconds

Instance Method Summary collapse

Methods included from Payload

#fav_payload, #reservation_data_payload, #reward_data_payload, #user_loyalty_payload, #user_properties, #user_properties_for_client

Methods included from CountryIdMemoization

#malaysia_id, #singapore_id, #thailand_id

Methods inherited from ApplicationWorker

unlimited_retry

Instance Method Details

#alert_point_expiration(reward_id) ⇒ Object



56
57
58
59
60
61
62
63
# File 'app/workers/netcore/loyalty_worker.rb', line 56

def alert_point_expiration(reward_id)
  reward = Reward.find(reward_id)

  if (reward.points_total - reward.points_pending) != 0
    payload = reward_data_payload(reward_id)
    send_event('User Point Expiration Alert', payload, reward.user.email) if payload.present?
  end
end

#maintain_user_level(user_id) ⇒ Object



48
49
50
51
52
53
54
# File 'app/workers/netcore/loyalty_worker.rb', line 48

def maintain_user_level(user_id)
  user = User.find_by(id: user_id)
  return unless user

  payload = user_loyalty_payload(user)
  send_event('Maintain User Level', payload, user.email) if payload.present?
end

#perform(state, *args) ⇒ Object



20
21
22
23
24
# File 'app/workers/netcore/loyalty_worker.rb', line 20

def perform(state, *args)
  return if AdminSetting.enable_netcore_events.to_s == 'false'

  send(state.to_sym, *args)
end

#user_level_downgraded(user_id) ⇒ Object



37
38
39
40
41
42
43
44
45
46
# File 'app/workers/netcore/loyalty_worker.rb', line 37

def user_level_downgraded(user_id)
  user = User.find_by(id: user_id)
  return unless user

  payload = user_loyalty_payload(user)
  if payload.present?
    send_event('User Level Downgraded', payload, user.email)
    client.sync_user_data(user)
  end
end

#user_level_upgraded(user_id) ⇒ Object



26
27
28
29
30
31
32
33
34
35
# File 'app/workers/netcore/loyalty_worker.rb', line 26

def user_level_upgraded(user_id)
  user = User.find_by(id: user_id)
  return unless user

  payload = user_loyalty_payload(user)
  if payload.present?
    send_event('User Level Upgraded', payload, user.email)
    client.sync_user_data(user)
  end
end