Class: Generators::FirebaseAuth::ModelGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- Generators::FirebaseAuth::ModelGenerator
- Defined in:
- lib/generators/firebase_auth/model_generator.rb
Instance Method Summary collapse
Instance Method Details
#create_migration_file ⇒ Object
13 14 15 |
# File 'lib/generators/firebase_auth/model_generator.rb', line 13 def create_migration_file generate 'migration', "Create#{table_name.capitalize} email:string user_id:string" end |
#create_model_file ⇒ Object
9 10 11 |
# File 'lib/generators/firebase_auth/model_generator.rb', line 9 def create_model_file template 'model.rb.tt', File.join('app/models', class_path, "#{file_name}.rb") end |
#inject_authenticate_method ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/generators/firebase_auth/model_generator.rb', line 17 def inject_authenticate_method inject_into_class "app/controllers/application_controller.rb", ApplicationController do <<-RUBY before_action :authenticate_#{file_name} private def authenticate_#{file_name} id_token = request.headers['Authorization']&.split(' ')&.last if id_token decoded_token = FirebaseAuthService::FirebaseAuthService.new(Rails.application.credentials.dig(:firebase, :project_id)).verify_id_token(id_token) if decoded_token @current_#{file_name} = #{class_name}.find_by(email: decoded_token['email']) end end render json: { error: 'Unauthorized' }, status: :unauthorized unless @current_#{file_name} end RUBY end end |