From 26a5a6039bdb4979b0fc248bb8f94ff9e5607a52 Mon Sep 17 00:00:00 2001 From: crummy Date: Mon, 28 Oct 2024 13:07:05 +1300 Subject: [PATCH] Update swagger files from code, with swag tool --- src/api/api.go | 3 + src/docs/README.md | 13 +++++ src/docs/docs.go | 106 +++++++++------------------------ src/docs/swagger.json | 132 ++++++++++-------------------------------- src/docs/swagger.yaml | 92 +++++++---------------------- src/main.go | 2 + 6 files changed, 96 insertions(+), 252 deletions(-) create mode 100644 src/docs/README.md diff --git a/src/api/api.go b/src/api/api.go index c155518..642b5ad 100644 --- a/src/api/api.go +++ b/src/api/api.go @@ -1416,6 +1416,7 @@ func (a *Api) UpdateGroup(c *gin.Context) { // @Success 204 {string} OK // @Failure 400 {object} Error // @Param data body Reaction true "Reaction" +// @Param id path int true "Reaction Identifier" // @Router /v1/reactions/{number} [post] func (a *Api) SendReaction(c *gin.Context) { var req Reaction @@ -1464,6 +1465,7 @@ func (a *Api) SendReaction(c *gin.Context) { // @Success 204 {string} OK // @Failure 400 {object} Error // @Param data body Reaction true "Reaction" +// @Param id path int true "Reaction Identifier" // @Router /v1/reactions/{number} [delete] func (a *Api) RemoveReaction(c *gin.Context) { var req Reaction @@ -1507,6 +1509,7 @@ func (a *Api) RemoveReaction(c *gin.Context) { // @Success 204 {string} OK // @Failure 400 {object} Error // @Param data body Receipt true "Receipt" +// @Param id path int true "Receipt Identifier" // @Router /v1/receipts/{number} [post] func (a *Api) SendReceipt(c *gin.Context) { var req Receipt diff --git a/src/docs/README.md b/src/docs/README.md new file mode 100644 index 0000000..08b925d --- /dev/null +++ b/src/docs/README.md @@ -0,0 +1,13 @@ +These files are generated from the [swaggo/swag](https://github.com/swaggo/swag) tool. + +To regenerate them, run: + +```bash +docker run --rm -v $(pwd):/code ghcr.io/swaggo/swag:latest init +``` + +Or, if you have `swag` installed: + +```bash +swag init +``` \ No newline at end of file diff --git a/src/docs/docs.go b/src/docs/docs.go index f985e13..dd62453 100644 --- a/src/docs/docs.go +++ b/src/docs/docs.go @@ -1415,6 +1415,13 @@ const docTemplate = `{ "schema": { "$ref": "#/definitions/api.Reaction" } + }, + { + "type": "integer", + "description": "Reaction Identifier", + "name": "id", + "in": "path", + "required": true } ], "responses": { @@ -1453,6 +1460,13 @@ const docTemplate = `{ "schema": { "$ref": "#/definitions/api.Reaction" } + }, + { + "type": "integer", + "description": "Reaction Identifier", + "name": "id", + "in": "path", + "required": true } ], "responses": { @@ -1493,6 +1507,13 @@ const docTemplate = `{ "schema": { "$ref": "#/definitions/api.Receipt" } + }, + { + "type": "integer", + "description": "Receipt Identifier", + "name": "id", + "in": "path", + "required": true } ], "responses": { @@ -2278,69 +2299,7 @@ const docTemplate = `{ } }, "api.SendMessageV2": { - "type": "object", - "properties": { - "base64_attachments": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "\u003cBASE64 ENCODED DATA\u003e", - "data:\u003cMIME-TYPE\u003e;base64\u003ccomma\u003e\u003cBASE64 ENCODED DATA\u003e", - "data:\u003cMIME-TYPE\u003e;filename=\u003cFILENAME\u003e;base64\u003ccomma\u003e\u003cBASE64 ENCODED DATA\u003e" - ] - }, - "edit_timestamp": { - "type": "integer" - }, - "mentions": { - "type": "array", - "items": { - "$ref": "#/definitions/data.MessageMention" - } - }, - "message": { - "type": "string" - }, - "notify_self": { - "type": "boolean" - }, - "number": { - "type": "string" - }, - "quote_author": { - "type": "string" - }, - "quote_mentions": { - "type": "array", - "items": { - "$ref": "#/definitions/data.MessageMention" - } - }, - "quote_message": { - "type": "string" - }, - "quote_timestamp": { - "type": "integer" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - } - }, - "sticker": { - "type": "string" - }, - "text_mode": { - "type": "string", - "enum": [ - "normal", - "styled" - ] - } - } + "type": "object" }, "api.SetUsernameRequest": { "type": "object", @@ -2442,6 +2401,9 @@ const docTemplate = `{ "api.UpdateProfileRequest": { "type": "object", "properties": { + "about": { + "type": "string" + }, "base64_avatar": { "type": "string" }, @@ -2610,20 +2572,6 @@ const docTemplate = `{ "type": "string" } } - }, - "data.MessageMention": { - "type": "object", - "properties": { - "author": { - "type": "string" - }, - "length": { - "type": "integer" - }, - "start": { - "type": "integer" - } - } } }, "tags": [ @@ -2681,9 +2629,9 @@ const docTemplate = `{ // SwaggerInfo holds exported Swagger Info so clients can modify it var SwaggerInfo = &swag.Spec{ Version: "1.0", - Host: "", + Host: "localhost:8080", BasePath: "/", - Schemes: []string{}, + Schemes: []string{"http"}, Title: "Signal Cli REST API", Description: "This is the Signal Cli REST API documentation.", InfoInstanceName: "swagger", diff --git a/src/docs/swagger.json b/src/docs/swagger.json index 541c74e..bbc1ebc 100644 --- a/src/docs/swagger.json +++ b/src/docs/swagger.json @@ -1,4 +1,7 @@ { + "schemes": [ + "http" + ], "swagger": "2.0", "info": { "description": "This is the Signal Cli REST API documentation.", @@ -8,7 +11,6 @@ }, "host": "localhost:8080", "basePath": "/", - "schemes": ["http"], "paths": { "/v1/about": { "get": { @@ -1402,13 +1404,6 @@ ], "summary": "Send a reaction.", "parameters": [ - { - "description": "Reaction ID", - "name": "number", - "in": "path", - "required": true, - "type": "number" - }, { "description": "Reaction", "name": "data", @@ -1417,6 +1412,13 @@ "schema": { "$ref": "#/definitions/api.Reaction" } + }, + { + "type": "integer", + "description": "Reaction Identifier", + "name": "id", + "in": "path", + "required": true } ], "responses": { @@ -1447,13 +1449,6 @@ ], "summary": "Remove a reaction.", "parameters": [ - { - "description": "Reaction ID", - "name": "number", - "in": "path", - "required": true, - "type": "number" - }, { "description": "Reaction", "name": "data", @@ -1462,6 +1457,13 @@ "schema": { "$ref": "#/definitions/api.Reaction" } + }, + { + "type": "integer", + "description": "Reaction Identifier", + "name": "id", + "in": "path", + "required": true } ], "responses": { @@ -1494,13 +1496,6 @@ ], "summary": "Send a receipt.", "parameters": [ - { - "description": "Receipt ID", - "name": "number", - "in": "path", - "required": true, - "type": "number" - }, { "description": "Receipt", "name": "data", @@ -1509,6 +1504,13 @@ "schema": { "$ref": "#/definitions/api.Receipt" } + }, + { + "type": "integer", + "description": "Receipt Identifier", + "name": "id", + "in": "path", + "required": true } ], "responses": { @@ -1694,7 +1696,7 @@ } } }, - "/v1/search/{number}": { + "/v1/search": { "get": { "description": "Check if one or more phone numbers are registered with the Signal Service.", "consumes": [ @@ -1712,8 +1714,7 @@ "type": "string", "description": "Registered Phone Number", "name": "number", - "in": "path", - "required": true + "in": "path" }, { "type": "array", @@ -2295,69 +2296,7 @@ } }, "api.SendMessageV2": { - "type": "object", - "properties": { - "base64_attachments": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "\u003cBASE64 ENCODED DATA\u003e", - "data:\u003cMIME-TYPE\u003e;base64\u003ccomma\u003e\u003cBASE64 ENCODED DATA\u003e", - "data:\u003cMIME-TYPE\u003e;filename=\u003cFILENAME\u003e;base64\u003ccomma\u003e\u003cBASE64 ENCODED DATA\u003e" - ] - }, - "edit_timestamp": { - "type": "integer" - }, - "mentions": { - "type": "array", - "items": { - "$ref": "#/definitions/data.MessageMention" - } - }, - "message": { - "type": "string" - }, - "notify_self": { - "type": "boolean" - }, - "number": { - "type": "string" - }, - "quote_author": { - "type": "string" - }, - "quote_mentions": { - "type": "array", - "items": { - "$ref": "#/definitions/data.MessageMention" - } - }, - "quote_message": { - "type": "string" - }, - "quote_timestamp": { - "type": "integer" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - } - }, - "sticker": { - "type": "string" - }, - "text_mode": { - "type": "string", - "enum": [ - "normal", - "styled" - ] - } - } + "type": "object" }, "api.SetUsernameRequest": { "type": "object", @@ -2459,6 +2398,9 @@ "api.UpdateProfileRequest": { "type": "object", "properties": { + "about": { + "type": "string" + }, "base64_avatar": { "type": "string" }, @@ -2627,20 +2569,6 @@ "type": "string" } } - }, - "data.MessageMention": { - "type": "object", - "properties": { - "author": { - "type": "string" - }, - "length": { - "type": "integer" - }, - "start": { - "type": "integer" - } - } } }, "tags": [ diff --git a/src/docs/swagger.yaml b/src/docs/swagger.yaml index d348bcb..634f5e7 100644 --- a/src/docs/swagger.yaml +++ b/src/docs/swagger.yaml @@ -1,7 +1,4 @@ -host: localhost:8080 basePath: / -schemes: - - http definitions: api.AddDeviceRequest: properties: @@ -166,48 +163,6 @@ definitions: type: array type: object api.SendMessageV2: - properties: - base64_attachments: - example: - - - - data:;base64 - - data:;filename=;base64 - items: - type: string - type: array - edit_timestamp: - type: integer - mentions: - items: - $ref: '#/definitions/data.MessageMention' - type: array - message: - type: string - notify_self: - type: boolean - number: - type: string - quote_author: - type: string - quote_mentions: - items: - $ref: '#/definitions/data.MessageMention' - type: array - quote_message: - type: string - quote_timestamp: - type: integer - recipients: - items: - type: string - type: array - sticker: - type: string - text_mode: - enum: - - normal - - styled - type: string type: object api.SetUsernameRequest: properties: @@ -274,6 +229,8 @@ definitions: type: object api.UpdateProfileRequest: properties: + about: + type: string base64_avatar: type: string name: @@ -384,15 +341,7 @@ definitions: username_link: type: string type: object - data.MessageMention: - properties: - author: - type: string - length: - type: integer - start: - type: integer - type: object +host: localhost:8080 info: contact: {} description: This is the Signal Cli REST API documentation. @@ -1332,17 +1281,17 @@ paths: - application/json description: Remove a reaction parameters: - - description: Reaction ID - name: number - in: path - required: true - type: number - description: Reaction in: body name: data required: true schema: $ref: '#/definitions/api.Reaction' + - description: Reaction Identifier + in: path + name: id + required: true + type: integer produces: - application/json responses: @@ -1362,17 +1311,17 @@ paths: - application/json description: React to a message parameters: - - description: Reaction ID - name: number - in: path - required: true - type: number - description: Reaction in: body name: data required: true schema: $ref: '#/definitions/api.Reaction' + - description: Reaction Identifier + in: path + name: id + required: true + type: integer produces: - application/json responses: @@ -1393,17 +1342,17 @@ paths: - application/json description: Send a read or viewed receipt parameters: - - description: Receipt ID - name: number - in: path - required: true - type: number - description: Receipt in: body name: data required: true schema: $ref: '#/definitions/api.Receipt' + - description: Receipt Identifier + in: path + name: id + required: true + type: integer produces: - application/json responses: @@ -1532,7 +1481,7 @@ paths: summary: Verify a registered phone number. tags: - Devices - /v1/search/{number}: + /v1/search: get: consumes: - application/json @@ -1543,7 +1492,6 @@ paths: in: path name: number type: string - required: true - collectionFormat: multi description: Numbers to check in: query @@ -1775,6 +1723,8 @@ paths: summary: Send a signal message. tags: - Messages +schemes: +- http swagger: "2.0" tags: - description: Some general endpoints. diff --git a/src/main.go b/src/main.go index 8e51733..37e95ff 100644 --- a/src/main.go +++ b/src/main.go @@ -58,6 +58,8 @@ import ( // @tag.name Sticker Packs // @tag.description List and Install Sticker Packs +// @host localhost:8080 +// @schemes http // @BasePath / func main() { signalCliConfig := flag.String("signal-cli-config", "/home/.local/share/signal-cli/", "Config directory where signal-cli config is stored")