From fc3741365c27f1d703e8a736af95b95ff811cc45 Mon Sep 17 00:00:00 2001 From: Vyr Cossont Date: Wed, 6 Mar 2024 09:05:45 -0800 Subject: [bugfix] Fix Swagger spec and add test script (#2698) * Add Swagger spec test script * Fix Swagger spec errors not related to statuses with polls * Add API tests that post a status with a poll * Fix creating a status with a poll from form params * Fix Swagger spec errors related to statuses with polls (this is the last error) * Fix Swagger spec warnings not related to unused definitions * Suppress a duplicate list update params definition that was somehow causing wrong param names * Add Swagger test to CI - updates Drone config - vendorizes go-swagger - fixes a file extension issue that caused the test script to generate JSON instead of YAML with the vendorized version * Put `Sample: ` on its own line everywhere * Remove unused id param from emojiCategoriesGet * Add 5 more pairs of profile fields to account update API Swagger * Remove Swagger prefix from dummy fields It makes the generated code look weird * Manually annotate params for statusCreate operation * Fix all remaining Swagger spec warnings - Change some models into operation parameters - Ignore models that already correspond to manually documented operation parameters but can't be trivially changed (those with file fields) * Documented that creating a status with scheduled_at isn't implemented yet * sign drone.yml * Fix filter API Swagger errors * fixup! Fix filter API Swagger errors --------- Co-authored-by: tobi --- internal/api/client/admin/domainkeysexpire.go | 5 +++-- internal/api/client/admin/emojicategoriesget.go | 10 +--------- internal/api/client/admin/emojicreate.go | 3 ++- internal/api/client/admin/emojiupdate.go | 7 ++++++- internal/api/client/admin/reportresolve.go | 3 ++- internal/api/client/admin/rulecreate.go | 9 --------- internal/api/client/admin/ruledelete.go | 6 +++--- internal/api/client/admin/rulesget.go | 2 +- internal/api/client/admin/ruleupdate.go | 18 +----------------- 9 files changed, 19 insertions(+), 44 deletions(-) (limited to 'internal/api/client/admin') diff --git a/internal/api/client/admin/domainkeysexpire.go b/internal/api/client/admin/domainkeysexpire.go index 10a7597a4..4990d879f 100644 --- a/internal/api/client/admin/domainkeysexpire.go +++ b/internal/api/client/admin/domainkeysexpire.go @@ -61,8 +61,9 @@ import ( // - // name: domain // in: formData -// description: Domain to expire keys for. -// example: example.org +// description: |- +// Domain to expire keys for. +// Sample: example.org // type: string // // security: diff --git a/internal/api/client/admin/emojicategoriesget.go b/internal/api/client/admin/emojicategoriesget.go index 2c097c6df..51eb8fee4 100644 --- a/internal/api/client/admin/emojicategoriesget.go +++ b/internal/api/client/admin/emojicategoriesget.go @@ -38,21 +38,13 @@ import ( // produces: // - application/json // -// parameters: -// - -// name: id -// type: string -// description: The id of the emoji. -// in: path -// required: true -// // responses: // '200': // description: Array of existing emoji categories. // schema: // type: array // items: -// "$ref": "#/definitions/adminEmojiCategory" +// "$ref": "#/definitions/emojiCategory" // '400': // description: bad request // '401': diff --git a/internal/api/client/admin/emojicreate.go b/internal/api/client/admin/emojicreate.go index 5d024f039..9086b27e0 100644 --- a/internal/api/client/admin/emojicreate.go +++ b/internal/api/client/admin/emojicreate.go @@ -67,10 +67,11 @@ import ( // name: category // in: formData // description: >- -// Category in which to place the new emoji. 64 characters or less. +// Category in which to place the new emoji. // If left blank, emoji will be uncategorized. If a category with the // given name doesn't exist yet, it will be created. // type: string +// maximumLength: 64 // required: false // // security: diff --git a/internal/api/client/admin/emojiupdate.go b/internal/api/client/admin/emojiupdate.go index f531f36f9..ffde2d597 100644 --- a/internal/api/client/admin/emojiupdate.go +++ b/internal/api/client/admin/emojiupdate.go @@ -73,6 +73,10 @@ import ( // For REMOTE emojis, `copy` or `disable` are supported. // For LOCAL emojis, only `modify` is supported. // type: string +// enum: +// - copy +// - disable +// - modify // required: true // - // name: shortcode @@ -94,9 +98,10 @@ import ( // name: category // in: formData // description: >- -// Category in which to place the emoji. 64 characters or less. +// Category in which to place the emoji. // If a category with the given name doesn't exist yet, it will be created. // type: string +// maximumLength: 64 // // security: // - OAuth2 Bearer: diff --git a/internal/api/client/admin/reportresolve.go b/internal/api/client/admin/reportresolve.go index 9c1c32afe..2ad979b0b 100644 --- a/internal/api/client/admin/reportresolve.go +++ b/internal/api/client/admin/reportresolve.go @@ -60,8 +60,9 @@ import ( // Useful for providing an explanation about what action was taken (if any) // before the report was marked as resolved. This will be visible to the user // that created the report! +// +// Sample: The reported account was suspended. // type: string -// example: The reported account was suspended. // // security: // - OAuth2 Bearer: diff --git a/internal/api/client/admin/rulecreate.go b/internal/api/client/admin/rulecreate.go index e838bff1e..155c69db0 100644 --- a/internal/api/client/admin/rulecreate.go +++ b/internal/api/client/admin/rulecreate.go @@ -43,15 +43,6 @@ import ( // produces: // - application/json // -// parameters: -// - -// name: text -// in: formData -// description: >- -// Text body for the instance rule, plaintext. -// type: string -// required: true -// // security: // - OAuth2 Bearer: // - admin diff --git a/internal/api/client/admin/ruledelete.go b/internal/api/client/admin/ruledelete.go index dfa84615f..834149978 100644 --- a/internal/api/client/admin/ruledelete.go +++ b/internal/api/client/admin/ruledelete.go @@ -28,7 +28,7 @@ import ( "github.com/superseriousbusiness/gotosocial/internal/oauth" ) -// RuleDELETEHandler swagger:operation DELETE /api/v1/admin/instance/rules{id} ruleDelete +// RuleDELETEHandler swagger:operation DELETE /api/v1/admin/instance/rules/{id} ruleDelete // // Delete an existing instance rule. // @@ -45,10 +45,10 @@ import ( // parameters: // - // name: id -// in: formData +// in: path // description: >- // The id of the rule to delete. -// type: path +// type: string // required: true // // security: diff --git a/internal/api/client/admin/rulesget.go b/internal/api/client/admin/rulesget.go index 2cc9e0158..e00ff1c07 100644 --- a/internal/api/client/admin/rulesget.go +++ b/internal/api/client/admin/rulesget.go @@ -27,7 +27,7 @@ import ( "github.com/superseriousbusiness/gotosocial/internal/oauth" ) -// rulesGETHandler swagger:operation GET /api/v1/admin/rules rules +// RulesGETHandler swagger:operation GET /api/v1/admin/rules adminsRuleGet // // View instance rules, with IDs. // diff --git a/internal/api/client/admin/ruleupdate.go b/internal/api/client/admin/ruleupdate.go index eafa3af34..2ba31485e 100644 --- a/internal/api/client/admin/ruleupdate.go +++ b/internal/api/client/admin/ruleupdate.go @@ -29,7 +29,7 @@ import ( "github.com/superseriousbusiness/gotosocial/internal/oauth" ) -// RulePATCHHandler swagger:operation PATCH /api/v1/admin/instance/rules{id} ruleUpdate +// RulePATCHHandler swagger:operation PATCH /api/v1/admin/instance/rules/{id} ruleUpdate // // Update an existing instance rule. // @@ -43,22 +43,6 @@ import ( // produces: // - application/json // -// parameters: -// - -// name: id -// in: formData -// description: >- -// The id of the rule to update. -// type: path -// required: true -// - -// name: text -// in: formData -// description: >- -// Text body for the updated instance rule, plaintext. -// type: string -// required: true -// // security: // - OAuth2 Bearer: // - admin -- cgit v1.2.3