Module: Upframework::Services::Routes

Defined in:
lib/upframework/services/routes.rb

Class Method Summary collapse

Class Method Details

.load(namespace: nil, **options) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/upframework/services/routes.rb', line 4

def self.load(namespace: nil, **options)
  scope_name = namespace

  Rails.application.routes.draw do
    source_path = Rails.root.join('app', 'services')

    service_routes = proc do
      Dir.glob("#{source_path}/*/").map{ |e| File.basename e }.each do |resource|
        # Create a post route for services
        # ex.
        # POST users/service/my_custom_service
        post "#{resource}/service/:service_name", to: "#{resource}#service"
      end
    end

    if scope_name
      namespace scope_name, defaults: { format: :json }, &service_routes
    else
      service_routes.call
    end
  end
end