diff --git a/API-seadex.md b/API-seadex.md index 1f620a4..c6519d3 100644 --- a/API-seadex.md +++ b/API-seadex.md @@ -2,24 +2,9 @@ Base URL: `https://notifier.gansejunge.com/internal/seadex` -### `POST /admin/update/names` +### `POST /repository/add` -**Update All Names To Most Recently Available** - -**Example:** - -```bash -curl -X POST 'https://notifier.gansejunge.com/internal/seadex/admin/update/names' \ - -H 'X-API-Key: ' -``` - -**Responses:** - -- `200`: Successful Response - -### `POST /anime/add` - -**Add Anime** +**Add Repository Subscription** | Name | In | Type | Required | |---|---|---|---| @@ -29,7 +14,10 @@ curl -X POST 'https://notifier.gansejunge.com/internal/seadex/admin/update/names ```json { - "anilist_id": 0, + "type": "github", + "org": "string", + "repo": "string", + "tag": "string", "custom_name": "string" } ``` @@ -37,10 +25,10 @@ curl -X POST 'https://notifier.gansejunge.com/internal/seadex/admin/update/names **Example:** ```bash -curl -X POST 'https://notifier.gansejunge.com/internal/seadex/anime/add' \ +curl -X POST 'https://notifier.gansejunge.com/internal/seadex/repository/add' \ -H 'X-API-Key: ' \ -H 'Content-Type: application/json' \ - -d '{"anilist_id": 0, "custom_name": "string"}' + -d '{"type": "github", "org": "string", "repo": "string", "tag": "string", "custom_name": "string"}' ``` **Responses:** @@ -63,9 +51,9 @@ curl -X POST 'https://notifier.gansejunge.com/internal/seadex/anime/add' \ } ``` -### `POST /anime/delete` +### `POST /repository/delete` -**Remove Anime** +**Delete Repository Subscription** | Name | In | Type | Required | |---|---|---|---| @@ -75,17 +63,21 @@ curl -X POST 'https://notifier.gansejunge.com/internal/seadex/anime/add' \ ```json { - "anilist_id": 0 + "type": "github", + "org": "string", + "repo": "string", + "tag": "string", + "custom_name": "string" } ``` **Example:** ```bash -curl -X POST 'https://notifier.gansejunge.com/internal/seadex/anime/delete' \ +curl -X POST 'https://notifier.gansejunge.com/internal/seadex/repository/delete' \ -H 'X-API-Key: ' \ -H 'Content-Type: application/json' \ - -d '{"anilist_id": 0}' + -d '{"type": "github", "org": "string", "repo": "string", "tag": "string", "custom_name": "string"}' ``` **Responses:** @@ -108,9 +100,9 @@ curl -X POST 'https://notifier.gansejunge.com/internal/seadex/anime/delete' \ } ``` -### `GET /anime/list` +### `GET /repository/list` -**List Active And Inactive Anime** +**List Subscribed Repositories** | Name | In | Type | Required | |---|---|---|---| @@ -119,35 +111,13 @@ curl -X POST 'https://notifier.gansejunge.com/internal/seadex/anime/delete' \ **Example:** ```bash -curl -X GET 'https://notifier.gansejunge.com/internal/seadex/anime/list' \ +curl -X GET 'https://notifier.gansejunge.com/internal/seadex/repository/list' \ -H 'X-API-Key: ' ``` **Responses:** - `200`: Successful Response - ```json - { - "active": [ - { - "name": "string", - "anilist_id": 0, - "last_updated": "string" - } - ], - "inactive": [ - { - "name": "string", - "anilist_id": 0, - "last_updated": "string" - } - ], - "counts": { - "active": 0, - "inactive": 0 - } - } - ``` - `422`: Validation Error ```json { @@ -165,17 +135,37 @@ curl -X GET 'https://notifier.gansejunge.com/internal/seadex/anime/list' \ } ``` -### `POST /update` +### `POST /update/{repository_type}` -**Check Seadex** +**Update Watched Repositories** + +| Name | In | Type | Required | +|---|---|---|---| +| `repository_type` | path | string | yes | **Example:** ```bash -curl -X POST 'https://notifier.gansejunge.com/internal/seadex/update' \ +curl -X POST 'https://notifier.gansejunge.com/internal/seadex/update/' \ -H 'X-API-Key: ' ``` **Responses:** - `200`: Successful Response +- `422`: Validation Error + ```json + { + "detail": [ + { + "loc": [ + "string" + ], + "msg": "string", + "type": "string", + "input": null, + "ctx": {} + } + ] + } + ``` diff --git a/sources/service-seadex-openapi.json b/sources/service-seadex-openapi.json index 37c9664..e609f87 100644 --- a/sources/service-seadex-openapi.json +++ b/sources/service-seadex-openapi.json @@ -5,10 +5,25 @@ "version": "0.1.0" }, "paths": { - "/admin/update/names": { + "/update/{repository_type}": { "post": { - "summary": "Update All Names To Most Recently Available", - "operationId": "update_all_names_to_most_recently_available_admin_update_names_post", + "summary": "Update Watched Repositories", + "operationId": "update_watched_repositories_update__repository_type__post", + "security": [ + { + "HTTPBearer": [] + } + ], + "parameters": [ + { + "name": "repository_type", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/RepositoryType" + } + } + ], "responses": { "200": { "description": "Successful Response", @@ -17,40 +32,24 @@ "schema": {} } } - } - }, - "security": [ - { - "HTTPBearer": [] - } - ] - } - }, - "/update": { - "post": { - "summary": "Check Seadex", - "operationId": "check_seadex_update_post", - "responses": { - "200": { - "description": "Successful Response", + }, + "422": { + "description": "Validation Error", "content": { "application/json": { - "schema": {} + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } } } } - }, - "security": [ - { - "HTTPBearer": [] - } - ] + } } }, - "/anime/add": { + "/repository/add": { "post": { - "summary": "Add Anime", - "operationId": "add_anime_anime_add_post", + "summary": "Add Repository Subscription", + "operationId": "add_repository_subscription_repository_add_post", "security": [ { "HTTPBearer": [] @@ -73,7 +72,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AnimeCreate" + "$ref": "#/components/schemas/RepositoryUpdate" } } } @@ -100,10 +99,10 @@ } } }, - "/anime/delete": { + "/repository/delete": { "post": { - "summary": "Remove Anime", - "operationId": "remove_anime_anime_delete_post", + "summary": "Delete Repository Subscription", + "operationId": "delete_repository_subscription_repository_delete_post", "security": [ { "HTTPBearer": [] @@ -126,7 +125,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AnimeRemove" + "$ref": "#/components/schemas/RepositoryUpdate" } } } @@ -153,10 +152,10 @@ } } }, - "/anime/list": { + "/repository/list": { "get": { - "summary": "List Active And Inactive Anime", - "operationId": "list_active_and_inactive_anime_anime_list_get", + "summary": "List Subscribed Repositories", + "operationId": "list_subscribed_repositories_repository_list_get", "security": [ { "HTTPBearer": [] @@ -179,9 +178,7 @@ "description": "Successful Response", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/AnimeList" - } + "schema": {} } } }, @@ -201,12 +198,46 @@ }, "components": { "schemas": { - "AnimeCreate": { + "HTTPValidationError": { "properties": { - "anilist_id": { - "type": "integer", - "exclusiveMinimum": 0.0, - "title": "Anilist Id" + "detail": { + "items": { + "$ref": "#/components/schemas/ValidationError" + }, + "type": "array", + "title": "Detail" + } + }, + "type": "object", + "title": "HTTPValidationError" + }, + "RepositoryType": { + "type": "string", + "enum": [ + "github", + "dockerhub" + ], + "title": "RepositoryType" + }, + "RepositoryUpdate": { + "properties": { + "type": { + "$ref": "#/components/schemas/RepositoryType" + }, + "org": { + "type": "string", + "maxLength": 39, + "title": "Org" + }, + "repo": { + "type": "string", + "maxLength": 255, + "title": "Repo" + }, + "tag": { + "type": "string", + "maxLength": 128, + "title": "Tag" }, "custom_name": { "anyOf": [ @@ -223,109 +254,12 @@ }, "type": "object", "required": [ - "anilist_id" + "type", + "org", + "repo", + "tag" ], - "title": "AnimeCreate" - }, - "AnimeEntry": { - "properties": { - "name": { - "type": "string", - "title": "Name" - }, - "anilist_id": { - "type": "integer", - "title": "Anilist Id" - }, - "last_updated": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Last Updated" - } - }, - "type": "object", - "required": [ - "name", - "anilist_id" - ], - "title": "AnimeEntry" - }, - "AnimeList": { - "properties": { - "active": { - "items": { - "$ref": "#/components/schemas/AnimeEntry" - }, - "type": "array", - "title": "Active" - }, - "inactive": { - "items": { - "$ref": "#/components/schemas/AnimeEntry" - }, - "type": "array", - "title": "Inactive" - }, - "counts": { - "$ref": "#/components/schemas/Counts", - "readOnly": true - } - }, - "type": "object", - "required": [ - "counts" - ], - "title": "AnimeList" - }, - "AnimeRemove": { - "properties": { - "anilist_id": { - "type": "integer", - "title": "Anilist Id" - } - }, - "type": "object", - "required": [ - "anilist_id" - ], - "title": "AnimeRemove" - }, - "Counts": { - "properties": { - "active": { - "type": "integer", - "title": "Active" - }, - "inactive": { - "type": "integer", - "title": "Inactive" - } - }, - "type": "object", - "required": [ - "active", - "inactive" - ], - "title": "Counts" - }, - "HTTPValidationError": { - "properties": { - "detail": { - "items": { - "$ref": "#/components/schemas/ValidationError" - }, - "type": "array", - "title": "Detail" - } - }, - "type": "object", - "title": "HTTPValidationError" + "title": "RepositoryUpdate" }, "ValidationError": { "properties": {