diff options
author | HombreLaser <sebastian-440@live.com> | 2023-02-23 17:30:00 -0600 |
---|---|---|
committer | HombreLaser <sebastian-440@live.com> | 2023-02-23 17:30:00 -0600 |
commit | 42671b4b5f38064faba02c6e220c425f39afd87c (patch) | |
tree | a7a0ed571205f0f5ffe40ee9cf80ff8852b770b2 /app/controllers/api/authentications_controller/create_logic.rb | |
parent | 38d054e178f6860a1e1b3ed160808509c920bcc1 (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.rb | 34 |
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 |