1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-12-04 15:24:23 +01:00
fab-manager/app/doc/open_api/v1/plans_doc.rb

97 lines
2.9 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
# openAPI documentation for plans endpoint
class OpenAPI::V1::PlansDoc < OpenAPI::V1::BaseDoc
resource_description do
short 'Plans'
desc 'Subscription plans of Fab-manager'
formats FORMATS
api_version API_VERSION
end
doc_for :index do
api :GET, "/#{API_VERSION}/plans", 'Plans index'
description 'Plans index. Order by *created_at* ascendant.'
example <<-PLANS
# /open_api/v1/plans
{
"plans": [
{
"id": 1,
"name": "One month - standard",
"slug": "one-month-standard",
"amount": 3000
"interval": month,
"interval_count": 1,
"group_id": 1
"disabled": null,
"ui_weight": 3,
"monthly_payment": false,
"updated_at": "2001-01-01 15:15:19.860064000 Z",
"created_at": "2001-01-01 15:19:28.367161000 Z"
},
{
"id": 2,
"name": "One month - students",
"slug": "one-month-students",
"amount": 2000
"interval": month,
"interval_count": 1,
"group_id": 2
"disabled": null,
"ui_weight": 0,
"monthly_payment": false,
"updated_at": "2016-04-04 15:18:27.734657000 Z",
"created_at": "2016-04-04 15:18:27.734657000 Z"
},
#
# ....
#
{
"id": 9,
"name": "One year - corporations",
"slug": "one-month-corporations",
"amount": 36000
"interval": year,
"interval_count": 1,
"group_id": 3
"disabled": null,
"ui_weight": 9,
"monthly_payment": true,
"updated_at": "2020-12-14 14:10:11.056241000 Z",
"created_at": "2020-12-14 14:10:11.056241000 Z"
}
]
}
PLANS
end
doc_for :show do
api :GET, "/#{API_VERSION}/plans/:id", 'Shows a plan'
description 'Show all details of a single plan.'
example <<-PLAN
# /open_api/v1/plans/9
{
"id": 9,
"name": "One year - corporations",
"slug": "one-month-corporations",
"amount": 36000
"interval": year,
"interval_count": 1,
"group_id": 3
"disabled": null,
"ui_weight": 9,
"monthly_payment": true,
"updated_at": "2020-12-14 14:10:11.056241000 Z",
"created_at": "2020-12-14 14:10:11.056241000 Z",
"training_credit_nb": 10,
"is_rolling": true,
"description": "10 trainings and 30 machine hours offered with your subscription to this plan",
"type": "Plan",
"plan_category_id": 2,
"file": "https://example.com/uploads/plan_file/25/Pricing_Grid_2020_2021_v2.png"
}
PLAN
end
end