summaryrefslogtreecommitdiff
path: root/app/controllers/api/authentications_controller/create_logic.rb
diff options
context:
space:
mode:
authorHombreLaser <sebastian-440@live.com>2023-02-23 17:30:00 -0600
committerHombreLaser <sebastian-440@live.com>2023-02-23 17:30:00 -0600
commit42671b4b5f38064faba02c6e220c425f39afd87c (patch)
treea7a0ed571205f0f5ffe40ee9cf80ff8852b770b2 /app/controllers/api/authentications_controller/create_logic.rb
parent38d054e178f6860a1e1b3ed160808509c920bcc1 (diff)
Añade login
Diffstat (limited to 'app/controllers/api/authentications_controller/create_logic.rb')
-rw-r--r--app/controllers/api/authentications_controller/create_logic.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/app/controllers/api/authentications_controller/create_logic.rb b/app/controllers/api/authentications_controller/create_logic.rb
new file mode 100644
index 0000000..173db58
--- /dev/null
+++ b/app/controllers/api/authentications_controller/create_logic.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+module Services
+ class AuthenticationsController
+ # The logic for the create method of AuthenticationsController.
+ class CreateLogic
+ def initialize(params)
+ @email = params[:email]
+ @password = params[:password]
+ @user_account = UserAccount.find_by(email: @email)
+ end
+
+ def call
+ return false if @user_account.nil? && wrong_user_password?
+
+ { token: service.call(DateTime.now + 30.minutes), refresh: service.call(DateTime.now + 3.days) }
+ end
+
+ private
+
+ def wrong_user_password?
+ @user_account.password != @password
+ end
+
+ def service
+ @service ||= Services::TokenGenerationService.new(service_params)
+ end
+
+ def service_params
+ { email: @email, role: @user_account.role}
+ end
+ end
+ end
+end