summaryrefslogtreecommitdiff
path: root/app/controllers/api/sessions_controller.rb
diff options
context:
space:
mode:
authorHombreLaser <sebastian-440@live.com>2023-03-03 20:58:01 -0600
committerHombreLaser <sebastian-440@live.com>2023-03-03 20:58:01 -0600
commite3b19598c75790758995f9db206427135d6851c2 (patch)
tree3a2a87a799c746c3bd0aef4282075bfeb5bc6111 /app/controllers/api/sessions_controller.rb
parent918beb3197275af56b914250aae4950b1f64de30 (diff)
Renombra AuthenticationsController a SessionsController
Diffstat (limited to 'app/controllers/api/sessions_controller.rb')
-rw-r--r--app/controllers/api/sessions_controller.rb33
1 files changed, 33 insertions, 0 deletions
diff --git a/app/controllers/api/sessions_controller.rb b/app/controllers/api/sessions_controller.rb
new file mode 100644
index 0000000..9d0e4ac
--- /dev/null
+++ b/app/controllers/api/sessions_controller.rb
@@ -0,0 +1,33 @@
+# frozen_string_literal: true
+
+module Api
+ # The controller that handles authentications.
+ class SessionsController < ApplicationController
+ def create
+ @user_account = UserAccount.find_by(email: permitted_params[:email])
+
+ unless @user_account&.authenticate(permitted_params[:password])
+ render json: { error_message: 'Credenciales incorrectas' }, status: :unauthorized and return
+ end
+
+ render json: generate_token, status: :ok
+ end
+
+ def destroy
+ user_account.update_attribute(:session_key, nil)
+
+ render status: :no_content
+ end
+
+ private
+
+ def service_params
+ { email: @user_account.email,
+ role: @user_account.role }
+ end
+
+ def permitted_params
+ params.require(:credentials).permit(:email, :password)
+ end
+ end
+end