Sha256: c9ed72295e9a64e1d2a7f0776b4a7ab524a500d1b4f5079c242c55b92bec25c3

Contents?: true

Size: 1.59 KB

Versions: 4

Compression:

Stored size: 1.59 KB

Contents

# TODO: Update so path (/api) isn't fixed
module TokenAuthenticateMe
  module Generators
    class ControllersGenerator < ::Rails::Generators::NamedBase
      source_root File.expand_path('../templates', __FILE__)
      check_class_collision suffix: 'Controller'

      def create_sessions_controller
        template 'sessions.rb', 'app/controllers/api/sessions_controller.rb'

        # Inject /api/sesssion route into routes file
        route <<-ROUTE
namespace :api do
    resource :session, only: [:create, :show, :destroy]
  end
        ROUTE
      end

      def create_password_reset_controller # rubocop:disable Metrics/MethodLength
        template 'password_reset.rb', 'app/controllers/api/password_resets_controller.rb'

        # Inject /api/password_resets route into routes file
        route <<-ROUTE
namespace :api do
    resources(
      :password_resets,
      only: [:create, :update],
      constraints: {
        id: TokenAuthenticateMe::UUID_REGEX
      }
    )
  end
        ROUTE
      end

      def create_users_controller
        template 'users.rb', 'app/controllers/api/v1/users_controller.rb'

        # Inject /api/v1/users route into routes file
        route <<-ROUTE
namespace :api do
    namespace :v1 do
      resources :users
    end
  end
        ROUTE
      end

      private

      def inject_before_actions_into_users_controllers
        inject_into_class(
          Rails.root.join('app', 'controllers', 'api', 'v1', 'users_controller.rb'),
          UsersController
        ) do
          "  skip_before_action :authenticate, only: [:create]\n"
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
token_authenticate_me-0.4.1 lib/generators/token_authenticate_me/controllers/controllers_generator.rb
token_authenticate_me-0.4.0 lib/generators/token_authenticate_me/controllers/controllers_generator.rb
token_authenticate_me-0.3.0 lib/generators/token_authenticate_me/controllers/controllers_generator.rb
token_authenticate_me-0.2.3 lib/generators/token_authenticate_me/controllers/controllers_generator.rb