diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c73e2a0..91ce075 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,8 @@ jobs: - uses: actions/checkout@v4 with: repository: PapyrusReader/server - ref: 56b9d14e84fbc8805bca0998bcde825aa74e7e17 + # Combined account-deletion (#40) and support (#41) API snapshot revision. + ref: cc69c75abfb5b48954fcbe0593f247ef32bb5244 path: .server - uses: astral-sh/setup-uv@v6 with: diff --git a/_static/openapi.json b/_static/openapi.json index 6f115a0..e04a57d 100644 --- a/_static/openapi.json +++ b/_static/openapi.json @@ -1581,6 +1581,38 @@ "title": "BatchUpdateResponse", "type": "object" }, + "Body_create_support_issue_v1_support_issues_post": { + "properties": { + "attachments": { + "anyOf": [ + { + "items": { + "contentMediaType": "application/octet-stream", + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Attachments" + }, + "payload": { + "contentMediaType": "application/json", + "contentSchema": { + "$ref": "#/components/schemas/SupportRequest" + }, + "title": "Payload", + "type": "string" + } + }, + "required": [ + "payload" + ], + "title": "Body_create_support_issue_v1_support_issues_post", + "type": "object" + }, "Body_upload_book_cover_v1_books__book_id__cover_put": { "properties": { "file": { @@ -6659,6 +6691,71 @@ "title": "SubmitRequest", "type": "object" }, + "SupportRequest": { + "additionalProperties": false, + "properties": { + "app_version": { + "maxLength": 80, + "minLength": 1, + "title": "App Version", + "type": "string" + }, + "description": { + "maxLength": 8000, + "minLength": 10, + "title": "Description", + "type": "string" + }, + "kind": { + "enum": [ + "bug", + "feature" + ], + "title": "Kind", + "type": "string" + }, + "platform": { + "maxLength": 80, + "minLength": 1, + "title": "Platform", + "type": "string" + }, + "title": { + "maxLength": 150, + "minLength": 1, + "title": "Title", + "type": "string" + } + }, + "required": [ + "kind", + "title", + "description", + "app_version", + "platform" + ], + "title": "SupportRequest", + "type": "object" + }, + "SupportResponse": { + "properties": { + "number": { + "exclusiveMinimum": 0.0, + "title": "Number", + "type": "integer" + }, + "url": { + "title": "Url", + "type": "string" + } + }, + "required": [ + "number", + "url" + ], + "title": "SupportResponse", + "type": "object" + }, "Tag": { "description": "Tag response schema.", "properties": { @@ -14549,6 +14646,47 @@ ] } }, + "/v1/support/issues": { + "post": { + "operationId": "create_support_issue_v1_support_issues_post", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/Body_create_support_issue_v1_support_issues_post" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SupportResponse" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Create Support Issue", + "tags": [ + "Support" + ] + } + }, "/v1/sync/powersync-upload": { "post": { "description": "Apply one PowerSync CRUD transaction atomically.",