diff --git a/src/api/api.go b/src/api/api.go index 3cbfc8c..1f9bc24 100644 --- a/src/api/api.go +++ b/src/api/api.go @@ -40,6 +40,11 @@ type GroupEntry struct { InviteLink string `json:"invite_link"` } +type CreateGroupRequest struct { + Name string `json:"name"` + Members []string `json:"members"` +} + type LoggingConfiguration struct { Level string `json:"Level"` } @@ -100,7 +105,7 @@ type About struct { BuildNr int `json:"build"` } -type CreateGroup struct { +type CreateGroupResponse struct { Id string `json:"id"` } @@ -632,19 +637,15 @@ func (a *Api) Receive(c *gin.Context) { // @Description Create a new Signal Group with the specified members. // @Accept json // @Produce json -// @Success 201 {object} CreateGroup +// @Success 201 {object} CreateGroupResponse // @Failure 400 {object} Error +// @Param data body CreateGroupRequest true "Input Data" // @Param number path string true "Registered Phone Number" // @Router /v1/groups/{number} [post] func (a *Api) CreateGroup(c *gin.Context) { number := c.Param("number") - type Request struct { - Name string `json:"name"` - Members []string `json:"members"` - } - - var req Request + var req CreateGroupRequest err := c.BindJSON(&req) if err != nil { c.JSON(400, gin.H{"error": "Couldn't process request - invalid request"}) @@ -666,7 +667,7 @@ func (a *Api) CreateGroup(c *gin.Context) { } internalGroupId := getStringInBetween(out, `"`, `"`) - c.JSON(201, CreateGroup{Id: convertInternalGroupIdToGroupId(internalGroupId)}) + c.JSON(201, CreateGroupResponse{Id: convertInternalGroupIdToGroupId(internalGroupId)}) } // @Summary List all Signal Groups. diff --git a/src/docs/docs.go b/src/docs/docs.go index 0328e8d..cc8692a 100644 --- a/src/docs/docs.go +++ b/src/docs/docs.go @@ -262,6 +262,15 @@ var doc = `{ ], "summary": "Create a new Signal Group.", "parameters": [ + { + "description": "Input Data", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/api.CreateGroupRequest" + } + }, { "type": "string", "description": "Registered Phone Number", @@ -274,7 +283,7 @@ var doc = `{ "201": { "description": "Created", "schema": { - "$ref": "#/definitions/api.CreateGroup" + "$ref": "#/definitions/api.CreateGroupResponse" } }, "400": { @@ -932,7 +941,21 @@ var doc = `{ } } }, - "api.CreateGroup": { + "api.CreateGroupRequest": { + "type": "object", + "properties": { + "members": { + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string" + } + } + }, + "api.CreateGroupResponse": { "type": "object", "properties": { "id": { diff --git a/src/docs/swagger.json b/src/docs/swagger.json index 8585c45..d02bd85 100644 --- a/src/docs/swagger.json +++ b/src/docs/swagger.json @@ -247,6 +247,15 @@ ], "summary": "Create a new Signal Group.", "parameters": [ + { + "description": "Input Data", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/api.CreateGroupRequest" + } + }, { "type": "string", "description": "Registered Phone Number", @@ -259,7 +268,7 @@ "201": { "description": "Created", "schema": { - "$ref": "#/definitions/api.CreateGroup" + "$ref": "#/definitions/api.CreateGroupResponse" } }, "400": { @@ -917,7 +926,21 @@ } } }, - "api.CreateGroup": { + "api.CreateGroupRequest": { + "type": "object", + "properties": { + "members": { + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string" + } + } + }, + "api.CreateGroupResponse": { "type": "object", "properties": { "id": { diff --git a/src/docs/swagger.yaml b/src/docs/swagger.yaml index d985659..fb381eb 100644 --- a/src/docs/swagger.yaml +++ b/src/docs/swagger.yaml @@ -15,7 +15,16 @@ definitions: $ref: '#/definitions/api.LoggingConfiguration' type: object type: object - api.CreateGroup: + api.CreateGroupRequest: + properties: + members: + items: + type: string + type: array + name: + type: string + type: object + api.CreateGroupResponse: properties: id: type: string @@ -283,6 +292,12 @@ paths: - application/json description: Create a new Signal Group with the specified members. parameters: + - description: Input Data + in: body + name: data + required: true + schema: + $ref: '#/definitions/api.CreateGroupRequest' - description: Registered Phone Number in: path name: number @@ -294,7 +309,7 @@ paths: "201": description: Created schema: - $ref: '#/definitions/api.CreateGroup' + $ref: '#/definitions/api.CreateGroupResponse' "400": description: Bad Request schema: