Class: Services::Devise::SignIn
- Inherits:
-
ApiMaker::BaseService
- Object
- ApiMaker::BaseService
- Services::Devise::SignIn
- Includes:
- Devise::Controllers::Rememberable
- Defined in:
- app/api_maker/services/devise/sign_in.rb
Instance Method Summary collapse
- #check_model_exists ⇒ Object
- #check_serializer_exists ⇒ Object
-
#cookies ⇒ Object
Rememberable needs this.
- #inactive_message ⇒ Object
- #invalid_error_message ⇒ Object
- #model ⇒ Object
- #model_class ⇒ Object
- #perform ⇒ Object
- #resource ⇒ Object
- #scope ⇒ Object
- #serializer ⇒ Object
Instance Method Details
#check_model_exists ⇒ Object
26 27 28 29 |
# File 'app/api_maker/services/devise/sign_in.rb', line 26 def check_model_exists error_msg = I18n.t("devise.failure.not_found_in_database", authentication_keys: model_class.authentication_keys.join(", ")) fail! error_msg, type: :not_found_in_database unless model end |
#check_serializer_exists ⇒ Object
31 32 33 |
# File 'app/api_maker/services/devise/sign_in.rb', line 31 def check_serializer_exists fail! "Serializer doesn't exist for #{scope}", type: :serializer_doesnt_exist unless resource end |
#cookies ⇒ Object
Rememberable needs this
5 6 7 |
# File 'app/api_maker/services/devise/sign_in.rb', line 5 def controller.__send__(:cookies) end |
#inactive_message ⇒ Object
35 36 37 38 39 |
# File 'app/api_maker/services/devise/sign_in.rb', line 35 def = model. = I18n.t("devise.failure.#{}") if .is_a?(Symbol) end |
#invalid_error_message ⇒ Object
41 42 43 |
# File 'app/api_maker/services/devise/sign_in.rb', line 41 def I18n.t("devise.failure.invalid", authentication_keys: model_class.authentication_keys.join(", ")) end |
#model ⇒ Object
45 46 47 |
# File 'app/api_maker/services/devise/sign_in.rb', line 45 def model @model ||= model_class.find_for_authentication(email: args[:username]) end |
#model_class ⇒ Object
49 50 51 |
# File 'app/api_maker/services/devise/sign_in.rb', line 49 def model_class @model_class ||= scope.camelize.safe_constantize end |
#perform ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'app/api_maker/services/devise/sign_in.rb', line 9 def perform fail! "Devise sign in isn't enabled", type: :devise_sign_in_isnt_enabled unless ApiMaker::Configuration.current.devise_sign_in_enabled check_model_exists check_serializer_exists if !model.active_for_authentication? fail! , type: :inactive elsif model.valid_password?(args[:password]) controller.sign_in(model, scope: scope) remember_me(model) if args.dig(:args, :rememberMe) succeed!(model_data: serializer.result) else fail! , type: :invalid end end |
#resource ⇒ Object
57 58 59 |
# File 'app/api_maker/services/devise/sign_in.rb', line 57 def resource @resource ||= ApiMaker::Serializer.resource_for(model.class) end |
#scope ⇒ Object
53 54 55 |
# File 'app/api_maker/services/devise/sign_in.rb', line 53 def scope @scope ||= args.dig(:args, :scope).presence || "user" end |
#serializer ⇒ Object
61 62 63 |
# File 'app/api_maker/services/devise/sign_in.rb', line 61 def serializer @serializer ||= ApiMaker::Serializer.new(ability: current_ability, api_maker_args: api_maker_args, model: model) end |