mirror of
https://code.castopod.org/adaures/castopod.git
synced 2024-09-08 19:59:20 +02:00
329 lines
7.8 KiB
JSON
329 lines
7.8 KiB
JSON
{
|
|
"openapi": "3.0.0",
|
|
"info": {
|
|
"version": "1.0.0",
|
|
"title": "Castopod podcasts"
|
|
},
|
|
"paths": {
|
|
"/api/rest/v1/podcasts": {
|
|
"get": {
|
|
"summary": "List all podcasts",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Object of podcasts",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Podcasts"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "unexpected error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/rest/v1/podcasts/{id}": {
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "The id of the podcast to retrieve",
|
|
"schema": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"minimum": 1,
|
|
"maxLength": 10
|
|
}
|
|
}
|
|
],
|
|
"get": {
|
|
"summary": "Info for a specific podcast",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Expected response to a valid request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Podcast"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "unexpected error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"schemas": {
|
|
"Podcast": {
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"guid",
|
|
"actor_id",
|
|
"handle",
|
|
"title",
|
|
"description_markdown",
|
|
"description_html",
|
|
"cover_id",
|
|
"language_code",
|
|
"category_id",
|
|
"owner_name",
|
|
"owner_email",
|
|
"type",
|
|
"is_blocked",
|
|
"is_completed",
|
|
"is_locked",
|
|
"is_published_on_hubs",
|
|
"created_by",
|
|
"updated_by",
|
|
"created_at",
|
|
"updated_at",
|
|
"feed_url"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"minimum": 1,
|
|
"maxLength": 10
|
|
},
|
|
"guid": {
|
|
"type": "string",
|
|
"maxLength": 36
|
|
},
|
|
"actor_id": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"minimum": 1,
|
|
"maxLength": 10
|
|
},
|
|
"handle": {
|
|
"type": "string",
|
|
"maxLength": 32
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"maxLength": 128
|
|
},
|
|
"description_markdown": {
|
|
"type": "string"
|
|
},
|
|
"description_html": {
|
|
"type": "string"
|
|
},
|
|
"cover_id": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"minimum": 1,
|
|
"maxLength": 10
|
|
},
|
|
"banner_id": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"minimum": 1,
|
|
"maxLength": 10
|
|
},
|
|
"language_code": {
|
|
"type": "string",
|
|
"maxLength": 2
|
|
},
|
|
"category_id": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"minimum": 1
|
|
},
|
|
"parental_advisory": {
|
|
"type": "string",
|
|
"enum": ["clean", "explicit"]
|
|
},
|
|
"owner_name": {
|
|
"type": "string",
|
|
"maxLength": 128
|
|
},
|
|
"owner_email": {
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
"publisher": {
|
|
"type": "string",
|
|
"maxLength": 128
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"enum": ["episodic", "serial"]
|
|
},
|
|
"copyright": {
|
|
"type": "string",
|
|
"maxLength": 128
|
|
},
|
|
"episode_description_footer_markdown": {
|
|
"type": "string"
|
|
},
|
|
"episode_description_footer_html": {
|
|
"type": "string"
|
|
},
|
|
"is_blocked": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"enum": [0, 1],
|
|
"minLength": 1
|
|
},
|
|
"is_completed": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"enum": [0, 1],
|
|
"minLength": 1
|
|
},
|
|
"is_locked": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"enum": [0, 1],
|
|
"minLength": 1
|
|
},
|
|
"imported_feed_url": {
|
|
"type": "string",
|
|
"maxLength": 512
|
|
},
|
|
"new_feed_url": {
|
|
"type": "string",
|
|
"maxLength": 512
|
|
},
|
|
"payment_pointer": {
|
|
"type": "string",
|
|
"maxLength": 128
|
|
},
|
|
"location_name": {
|
|
"type": "string",
|
|
"maxLength": 128
|
|
},
|
|
"location_geo": {
|
|
"type": "string",
|
|
"maxLength": 32
|
|
},
|
|
"location_osm": {
|
|
"type": "string",
|
|
"maxLength": 12
|
|
},
|
|
"custom_rss": {
|
|
"type": "string"
|
|
},
|
|
"is_published_on_hubs": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"enum": [0, 1],
|
|
"minLength": 1
|
|
},
|
|
"partner_id": {
|
|
"type": "string",
|
|
"maxLength": 32
|
|
},
|
|
"partner_link_url": {
|
|
"type": "string",
|
|
"maxLength": 512
|
|
},
|
|
"partner_image_url": {
|
|
"type": "string",
|
|
"maxLength": 512
|
|
},
|
|
"created_by": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"minimum": 1,
|
|
"maxLength": 10
|
|
},
|
|
"updated_by": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"minimum": 1,
|
|
"maxLength": 10
|
|
},
|
|
"created_at": {
|
|
"type": "object",
|
|
"properties": {
|
|
"date": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"timezone_type": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"timezone": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"updated_at": {
|
|
"type": "object",
|
|
"properties": {
|
|
"date": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"timezone_type": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"timezone": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"feed_url": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"Podcasts": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Podcast"
|
|
}
|
|
},
|
|
"Error": {
|
|
"type": "object",
|
|
"properties": {
|
|
"status": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"error": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"messages": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|