1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-11-29 10:24:20 +01:00
fab-manager/app/doc/open_api/v1/invoices_doc.rb
2021-05-27 15:58:55 +02:00

91 lines
2.7 KiB
Ruby

# frozen_string_literal: true
# openAPI documentation for invoices endpoints
class OpenAPI::V1::InvoicesDoc < OpenAPI::V1::BaseDoc
resource_description do
short 'Invoices'
desc 'Invoices'
formats FORMATS
api_version API_VERSION
end
include OpenAPI::V1::Concerns::ParamGroups
doc_for :index do
api :GET, "/#{API_VERSION}/invoices", 'Invoices index'
description "Index of users' invoices, with optional pagination. Order by *created_at* descendant."
param_group :pagination
param :user_id, [Integer, Array], optional: true, desc: 'Scope the request to one or various users.'
example <<-INVOICES
# /open_api/v1/invoices?user_id=211&page=1&per_page=3
{
"invoices": [
{
"id": 2809,
"user_id": 211,
"payment_gateway_object": {
id: "in_187DLE4zBvgjueAZ6L7SyQlU",
type: "Stripe::Invoice"
},
"reference": "1605017/VL",
"total": 1000,
"type": null,
"description": null,
"invoice_url": "/open_api/v1/invoices/2809/download",
"main_object": {
"type": "Reservation",
"id": 3257,
"created_at": "2016-05-04T01:54:16.686+02:00"
}
},
{
"id": 2783,
"user_id": 211,
"payment_gateway_object": {
id: "pi_2Dat4P2eYbKYlo2C3MxszwQp",
type: "Stripe::PaymentIntent"
},
"reference": "1604176/VL",
"total": 2000,
"type": null,
"description": null,
"invoice_url": "/open_api/v1/invoices/2783/download",
"main_object": {
"type": "Reservation",
"id": 3229,
"created_at": "2016-04-28T18:14:52.524+02:00"
}
},
{
"id": 2773,
"user_id": 211,
"payment_gateway_object": {
id: "ba15dc9d8f3e0fa17bf527466",
type: "PayZen::Order"
},
"reference": "1604166/VL",
"total": 2000,
"type": null,
"description": null,
"invoice_url": "/open_api/v1/invoices/2773/download",
"main_object": {
"type": "Reservation",
"id": 3218,
"created_at": "2016-04-27T10:50:30.806+02:00"
}
}
]
}
INVOICES
end
doc_for :download do
api :GET, "/#{API_VERSION}/invoices/:id/download", 'Download an invoice'
param :id, Integer, desc: 'Invoice id', required: true
example <<-URL
# /open_api/v1/invoices/2809/download
URL
end
end