9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/legion/api/tenants.rb', line 9
def self.registered(app)
app.get '/api/tenants' do
tenants = Legion::Tenants.list
json_response(data: tenants)
end
app.post '/api/tenants' do
body = parse_request_body
result = Legion::Tenants.create(
tenant_id: body[:tenant_id],
name: body[:name],
max_workers: body[:max_workers] || 10
)
json_response(result, status_code: result[:error] ? 409 : 201)
end
app.get '/api/tenants/:tenant_id' do
tenant = Legion::Tenants.find(params[:tenant_id])
halt 404, json_response(error: 'not_found') unless tenant
json_response(data: tenant)
end
app.post '/api/tenants/:tenant_id/suspend' do
result = Legion::Tenants.suspend(tenant_id: params[:tenant_id])
json_response(data: result)
end
app.get '/api/tenants/:tenant_id/quota/:resource' do
result = Legion::Tenants.check_quota(
tenant_id: params[:tenant_id],
resource: params[:resource].to_sym
)
json_response(data: result)
end
end
|