docbrown/spec/requests/api/v1/docs/podcast_episodes_spec.rb
Anna Buianova a2d26df17b
[API V1 docs] Podcast Episodes (#18908)
* Podcast episodes api swagger docs (start)

* Podcast Episodes api swagger docs

* Fixed wording

Co-authored-by: Ridhwana <Ridhwana.Khan16@gmail.com>

* Fixed wording

Co-authored-by: Ridhwana <Ridhwana.Khan16@gmail.com>

* Removed commented code

Co-authored-by: Ridhwana <Ridhwana.Khan16@gmail.com>
2023-01-10 15:01:22 +03:00

63 lines
2.2 KiB
Ruby

require "rails_helper"
require "swagger_helper"
# rubocop:disable RSpec/EmptyExampleGroup
# rubocop:disable RSpec/VariableName
RSpec.describe "Api::V1::Docs::PodcastEpisodes" do
let(:Accept) { "application/vnd.forem.api-v1+json" }
let!(:podcast) { create(:podcast, slug: "codenewbie") }
before { create(:podcast_episode, podcast: podcast) }
describe "GET /podcast_episodes" do
path "/api/podcast_episodes" do
get "Podcast Episodes" do
security []
tags "podcast_episodes"
description(<<-DESCRIBE.strip)
This endpoint allows the client to retrieve a list of podcast episodes.
"Podcast episodes" are episodes belonging to podcasts.
It will only return active (reachable) podcast episodes that belong to published podcasts available on the platform, ordered by descending publication date.
It supports pagination, each page will contain 30 articles by default.
DESCRIBE
operationId "getPodcastEpisodes"
produces "application/json"
parameter "$ref": "#/components/parameters/pageParam"
parameter "$ref": "#/components/parameters/perPageParam30to1000"
parameter name: :username, in: :query, required: false,
description: "Using this parameter will retrieve episodes belonging to a specific podcast.",
schema: { type: :string },
example: "codenewbie"
response "200", "A List of Podcast episodes" do
let(:"api-key") { nil }
schema type: :array,
items: { "$ref": "#/components/schemas/PodcastEpisodeIndex" }
add_examples
run_test!
end
response "200", "A List of Podcast episodes filtered by username" do
let(:username) { "codenewbie" }
schema type: :array,
items: { "$ref": "#/components/schemas/PodcastEpisodeIndex" }
add_examples
run_test!
end
response "404", "Unknown Podcast username" do
let(:username) { "unknown" }
add_examples
run_test!
end
end
end
end
end
# rubocop:enable RSpec/EmptyExampleGroup
# rubocop:enable RSpec/VariableName