diff --git a/src/api/api.go b/src/api/api.go index c155518..a4993ad 100644 --- a/src/api/api.go +++ b/src/api/api.go @@ -144,9 +144,9 @@ type CreateGroupResponse struct { } type UpdateProfileRequest struct { - Name string `json:"name"` - Base64Avatar string `json:"base64_avatar"` - About *string `json:"about"` + Name string `json:"name"` + Base64Avatar string `json:"base64_avatar"` + About *string `json:"about"` } type TrustIdentityRequest struct { @@ -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 number path string true "Registered phone number" // @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 number path string true "Registered phone number" // @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 number path string true "Registered phone number" // @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..eb559cb --- /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 in /src: + +```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..b9a8b50 100644 --- a/src/docs/docs.go +++ b/src/docs/docs.go @@ -1415,6 +1415,13 @@ const docTemplate = `{ "schema": { "$ref": "#/definitions/api.Reaction" } + }, + { + "type": "string", + "description": "Registered phone number", + "name": "number", + "in": "path", + "required": true } ], "responses": { @@ -1453,6 +1460,13 @@ const docTemplate = `{ "schema": { "$ref": "#/definitions/api.Reaction" } + }, + { + "type": "string", + "description": "Registered phone number", + "name": "number", + "in": "path", + "required": true } ], "responses": { @@ -1493,6 +1507,13 @@ const docTemplate = `{ "schema": { "$ref": "#/definitions/api.Receipt" } + }, + { + "type": "string", + "description": "Registered phone number", + "name": "number", + "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 1a8a2ef..5e5497c 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.", @@ -6,6 +9,7 @@ "contact": {}, "version": "1.0" }, + "host": "localhost:8080", "basePath": "/", "paths": { "/v1/about": { @@ -1408,6 +1412,13 @@ "schema": { "$ref": "#/definitions/api.Reaction" } + }, + { + "type": "string", + "description": "Registered phone number", + "name": "number", + "in": "path", + "required": true } ], "responses": { @@ -1446,6 +1457,13 @@ "schema": { "$ref": "#/definitions/api.Reaction" } + }, + { + "type": "string", + "description": "Registered phone number", + "name": "number", + "in": "path", + "required": true } ], "responses": { @@ -1486,6 +1504,13 @@ "schema": { "$ref": "#/definitions/api.Receipt" } + }, + { + "type": "string", + "description": "Registered phone number", + "name": "number", + "in": "path", + "required": true } ], "responses": { @@ -2271,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", @@ -2435,6 +2398,9 @@ "api.UpdateProfileRequest": { "type": "object", "properties": { + "about": { + "type": "string" + }, "base64_avatar": { "type": "string" }, @@ -2603,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 18ef93f..00df1b4 100644 --- a/src/docs/swagger.yaml +++ b/src/docs/swagger.yaml @@ -163,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: @@ -271,6 +229,8 @@ definitions: type: object api.UpdateProfileRequest: properties: + about: + type: string base64_avatar: type: string name: @@ -381,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. @@ -1335,6 +1287,11 @@ paths: required: true schema: $ref: '#/definitions/api.Reaction' + - description: Registered phone number + in: path + name: number + required: true + type: string produces: - application/json responses: @@ -1360,6 +1317,11 @@ paths: required: true schema: $ref: '#/definitions/api.Reaction' + - description: Registered phone number + in: path + name: number + required: true + type: string produces: - application/json responses: @@ -1386,6 +1348,11 @@ paths: required: true schema: $ref: '#/definitions/api.Receipt' + - description: Registered phone number + in: path + name: number + required: true + type: string produces: - application/json responses: @@ -1756,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")