# frozen_string_literal: true # openAPI documentation for subscriptions endpoints class OpenAPI::V1::SubscriptionsDoc < OpenAPI::V1::BaseDoc resource_description do short 'Subscriptions' desc 'Subscriptions' formats FORMATS api_version API_VERSION end include OpenAPI::V1::Concerns::ParamGroups doc_for :index do api :GET, "/#{API_VERSION}/subscriptions", 'Subscriptions index' description "Index of users' subscriptions, paginated. Order by *created_at* descendant." param_group :pagination param :user_id, [Integer, Array], optional: true, desc: 'Scope the request to one or various users.' param :plan_id, [Integer, Array], optional: true, desc: 'Scope the request to one or various plans.' example <<-SUBSCRIPTIONS # /open_api/v1/subscriptions?user_id=211&page=1&per_page=3 { "subscriptions": [ { "id": 2809, "user_id": 211, "created_at": "2022-08-26T09:41:02.426+02:00", "expiration_date": "2022-09-26T09:41:02.427+02:00", "canceled_at": null, "plan_id": 1 }, { "id": 2783, "user_id": 211, "created_at": "2022-06-06T20:03:33.470+02:00", "expiration_date": "2022-07-06T20:03:33.470+02:00", "canceled_at": null, "plan_id": 1 }, { "id": 2773, "user_id": 211, "created_at": "2021-12-23T19:26:36.852+01:00", "expiration_date": "2022-01-23T19:26:36.852+01:00", "canceled_at": null, "plan_id": 1 } ] } SUBSCRIPTIONS end end