From b3ca6b0e59e1ca0514366463ea365d2ea9128e6a Mon Sep 17 00:00:00 2001 From: Alex Kotov Date: Tue, 3 Sep 2019 18:52:49 +0500 Subject: [PATCH] Log user sessions --- app/controllers/users/sessions_controller.rb | 4 +++- app/interactors/log_user_session.rb | 12 ++++++++++++ spec/interactors/log_user_session_spec.rb | 7 +++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 app/interactors/log_user_session.rb create mode 100644 spec/interactors/log_user_session_spec.rb diff --git a/app/controllers/users/sessions_controller.rb b/app/controllers/users/sessions_controller.rb index 598abb0..f6bae4b 100644 --- a/app/controllers/users/sessions_controller.rb +++ b/app/controllers/users/sessions_controller.rb @@ -14,7 +14,9 @@ class Users::SessionsController < Devise::SessionsController # POST /resource/sign_in def create - super + super do |user| + LogUserSession.call user: user + end end # DELETE /resource/sign_out diff --git a/app/interactors/log_user_session.rb b/app/interactors/log_user_session.rb new file mode 100644 index 0000000..eed437e --- /dev/null +++ b/app/interactors/log_user_session.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +class LogUserSession + include Interactor + + def call + Session.create!( + account: context.user.account, + ip_address: context.user.current_sign_in_ip, + ) + end +end diff --git a/spec/interactors/log_user_session_spec.rb b/spec/interactors/log_user_session_spec.rb new file mode 100644 index 0000000..bb30863 --- /dev/null +++ b/spec/interactors/log_user_session_spec.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe LogUserSession do + pending "add some examples to (or delete) #{__FILE__}" +end