From 2297cb64b131811b898db287b5875c36076504ea Mon Sep 17 00:00:00 2001 From: Niklas van Schrick Date: Tue, 12 Dec 2023 19:08:20 +0100 Subject: [PATCH] Add logs to user services --- app/services/user_create_service.rb | 3 +++ app/services/user_login_service.rb | 9 ++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/services/user_create_service.rb b/app/services/user_create_service.rb index af7e943a..ca17f49e 100644 --- a/app/services/user_create_service.rb +++ b/app/services/user_create_service.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class UserCreateService + include Sagittarius::Loggable + attr_reader :username, :email, :password def initialize(username, email, password) @@ -13,6 +15,7 @@ def execute user = User.create(username: username, email: email, password: password) return ServiceResponse.error(message: 'User is invalid', payload: user.errors) unless user.valid? + logger.info(message: 'Created new user', user_id: user.id, username: user.username) ServiceResponse.success(payload: user) end end diff --git a/app/services/user_login_service.rb b/app/services/user_login_service.rb index 50a19c1f..69838c24 100644 --- a/app/services/user_login_service.rb +++ b/app/services/user_login_service.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class UserLoginService + include Sagittarius::Loggable + attr_reader :args def initialize(args) @@ -9,14 +11,19 @@ def initialize(args) def execute user = User.authenticate_by(args) - return ServiceResponse.error(message: 'Invalid login data', payload: ['Invalid login data']) if user.nil? + if user.nil? + logger.info(message: 'Failed login', username: args[:username], email: args[:email]) + return ServiceResponse.error(message: 'Invalid login data', payload: ['Invalid login data']) + end user_session = UserSession.create(user: user) unless user_session.valid? + logger.warn(message: 'Failed to create valid session for user', user_id: user.id, username: user.username) return ServiceResponse.error(message: 'UserSession is invalid', payload: user_session.errors) end + logger.info(message: 'Login to user', user_id: user.id, username: user.username) ServiceResponse.success(payload: user_session) end end