Refactoring: Migrated UserDeviceLogJob from Delayed::Job to Active Job.
This commit is contained in:
parent
6854ad0903
commit
d7401b6a57
4 changed files with 39 additions and 27 deletions
|
@ -59,14 +59,12 @@ module ApplicationController::HandlesDevices
|
||||||
|
|
||||||
# add device if needed
|
# add device if needed
|
||||||
http_user_agent = ENV['HTTP_USER_AGENT'] || request.env['HTTP_USER_AGENT']
|
http_user_agent = ENV['HTTP_USER_AGENT'] || request.env['HTTP_USER_AGENT']
|
||||||
Delayed::Job.enqueue(
|
UserDeviceLogJob.perform_later(
|
||||||
Observer::UserDeviceLogJob.new(
|
|
||||||
http_user_agent,
|
http_user_agent,
|
||||||
remote_ip,
|
remote_ip,
|
||||||
user.id,
|
user.id,
|
||||||
session[:user_device_fingerprint],
|
session[:user_device_fingerprint],
|
||||||
type,
|
type,
|
||||||
)
|
)
|
||||||
)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
11
app/jobs/user_device_log_job.rb
Normal file
11
app/jobs/user_device_log_job.rb
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
class UserDeviceLogJob < ApplicationJob
|
||||||
|
def perform(http_user_agent, remote_ip, user_id, fingerprint, type)
|
||||||
|
UserDevice.add(
|
||||||
|
http_user_agent,
|
||||||
|
remote_ip,
|
||||||
|
user_id,
|
||||||
|
fingerprint,
|
||||||
|
type,
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,19 +0,0 @@
|
||||||
class Observer::UserDeviceLogJob
|
|
||||||
def initialize(http_user_agent, remote_ip, user_id, fingerprint, type)
|
|
||||||
@http_user_agent = http_user_agent
|
|
||||||
@remote_ip = remote_ip
|
|
||||||
@user_id = user_id
|
|
||||||
@fingerprint = fingerprint
|
|
||||||
@type = type
|
|
||||||
end
|
|
||||||
|
|
||||||
def perform
|
|
||||||
UserDevice.add(
|
|
||||||
@http_user_agent,
|
|
||||||
@remote_ip,
|
|
||||||
@user_id,
|
|
||||||
@fingerprint,
|
|
||||||
@type,
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
|
22
spec/jobs/user_device_log_job_spec.rb
Normal file
22
spec/jobs/user_device_log_job_spec.rb
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe UserDeviceLogJob, type: :job do
|
||||||
|
|
||||||
|
let!(:user) { create(:user) }
|
||||||
|
|
||||||
|
it 'executes user device log job' do
|
||||||
|
expect do
|
||||||
|
described_class.perform_now(
|
||||||
|
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
||||||
|
'172.0.0.1',
|
||||||
|
user.id,
|
||||||
|
'fingerprintABC123',
|
||||||
|
'session',
|
||||||
|
)
|
||||||
|
end.to change {
|
||||||
|
UserDevice.where(
|
||||||
|
user_id: user.id,
|
||||||
|
).count
|
||||||
|
}.by(1)
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue