summaryrefslogtreecommitdiff
path: root/app/controllers/api/refresh_tokens_controller.rb
diff options
context:
space:
mode:
authorHombreLaser <sebastian-440@live.com>2023-02-26 20:20:02 -0600
committerHombreLaser <sebastian-440@live.com>2023-02-26 20:20:02 -0600
commit4a1faf270ae328a1a28d9f8f54d9a96ed41a1542 (patch)
treecad4a32a4b1c72fa6bfffeb77fc6fc0fdeba22c8 /app/controllers/api/refresh_tokens_controller.rb
parentc86a5c9e05b183f10a63fb693c8af1d1d5a52e97 (diff)
Añade métodos de controladores faltantes
Diffstat (limited to 'app/controllers/api/refresh_tokens_controller.rb')
-rw-r--r--app/controllers/api/refresh_tokens_controller.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/app/controllers/api/refresh_tokens_controller.rb b/app/controllers/api/refresh_tokens_controller.rb
new file mode 100644
index 0000000..3b0843e
--- /dev/null
+++ b/app/controllers/api/refresh_tokens_controller.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+module Api
+ # The controller to generate new tokens.
+ class RefreshTokensController < AuthenticatedController
+ def create
+ @current_user_account.update_attribute(:session_key, SecureRandom.hex(16))
+ @token = { token: service.call(DateTime.current + 30), refresh: service.call(authentication_token[0]['exp']) }
+
+ render json: @token, status: :ok
+ end
+
+ def service_params
+ { email: @current_user_account.email, role: @current_user_account.role,
+ session_key: @current_user_account.session_key }
+ end
+
+ def service
+ @service ||= Services::TokenGenerationService.new(service_params)
+ end
+ end
+end