Module: Legion::API::Routes::Costs

Defined in:
lib/legion/api/costs.rb

Class Method Summary collapse

Class Method Details

.register_by_extension(app) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/legion/api/costs.rb', line 32

def self.register_by_extension(app)
  app.get '/api/costs/extensions' do
    halt 503, json_error('data_unavailable', 'metering data not available', status_code: 503) unless metering_available?

    limit = (params[:limit] || 10).to_i.clamp(1, 100)
    json_response(costs_by_extension(limit))
  end
end

.register_by_worker(app) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/legion/api/costs.rb', line 23

def self.register_by_worker(app)
  app.get '/api/costs/workers' do
    halt 503, json_error('data_unavailable', 'metering data not available', status_code: 503) unless metering_available?

    limit = (params[:limit] || 10).to_i.clamp(1, 100)
    json_response(costs_by_worker(limit))
  end
end

.register_summary(app) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/legion/api/costs.rb', line 14

def self.register_summary(app)
  app.get '/api/costs/summary' do
    halt 503, json_error('data_unavailable', 'metering data not available', status_code: 503) unless metering_available?

    period = params[:period] || 'month'
    json_response(cost_summary(period))
  end
end

.registered(app) ⇒ Object



7
8
9
10
11
12
# File 'lib/legion/api/costs.rb', line 7

def self.registered(app)
  app.helpers CostHelpers
  register_summary(app)
  register_by_worker(app)
  register_by_extension(app)
end