added pin verification + fixed bug in swagger documentation

This commit is contained in:
Bernhard B
2020-07-10 21:48:46 +02:00
parent 2927a4b0a4
commit 7a26d3e277
4 changed files with 79 additions and 49 deletions

View File

@@ -32,6 +32,10 @@ type RegisterNumberRequest struct {
UseVoice bool `json:"use_voice"`
}
type VerifyNumberSettings struct {
Pin string `json:"pin"`
}
type SendMessageV1 struct {
Number string `json:"number"`
Recipients []string `json:"recipients"`
@@ -347,12 +351,27 @@ func (a *Api) RegisterNumber(c *gin.Context) {
// @Success 201 {string} string "OK"
// @Failure 400 {object} Error
// @Param number path string true "Registered Phone Number"
// @Param data body VerifyNumberSettings true "Additional Settings"
// @Param token path string true "Verification Code"
// @Router /v1/register/{number}/verify/{token} [post]
func (a *Api) VerifyRegisteredNumber(c *gin.Context) {
number := c.Param("number")
token := c.Param("token")
pin := ""
var req VerifyNumberSettings
buf := new(bytes.Buffer)
buf.ReadFrom(c.Request.Body)
if buf.String() != "" {
err := json.Unmarshal(buf.Bytes(), &req)
if err != nil {
log.Error("Couldn't verify number: ", err.Error())
c.JSON(400, Error{Msg: "Couldn't process request - invalid request."})
return
}
pin = req.Pin
}
if number == "" {
c.JSON(400, gin.H{"error": "Please provide a number"})
return
@@ -363,7 +382,13 @@ func (a *Api) VerifyRegisteredNumber(c *gin.Context) {
return
}
_, err := runSignalCli(true, []string{"--config", a.signalCliConfig, "-u", number, "verify", token})
cmd := []string{"--config", a.signalCliConfig, "-u", number, "verify", token}
if pin != "" {
cmd = append(cmd, "--pin")
cmd = append(cmd, pin)
}
_, err := runSignalCli(true, cmd)
if err != nil {
c.JSON(400, gin.H{"error": err.Error()})
return
@@ -378,9 +403,8 @@ func (a *Api) VerifyRegisteredNumber(c *gin.Context) {
// @Produce json
// @Success 201 {string} string "OK"
// @Failure 400 {object} Error
// @Param number path string true "Registered Phone Number"
// @Param data body SendMessageV1 true "Input Data"
// @Router /v1/send/{number} [post]
// @Router /v1/send/ [post]
// @Deprecated
func (a *Api) Send(c *gin.Context) {
@@ -406,9 +430,8 @@ func (a *Api) Send(c *gin.Context) {
// @Produce json
// @Success 201 {string} string "OK"
// @Failure 400 {object} Error
// @Param number path string true "Registered Phone Number"
// @Param data body SendMessageV2 true "Input Data"
// @Router /v2/send/{number} [post]
// @Router /v2/send/ [post]
func (a *Api) SendV2(c *gin.Context) {
var req SendMessageV2
err := c.BindJSON(&req)

View File

@@ -282,6 +282,15 @@ var doc = `{
"in": "path",
"required": true
},
{
"description": "Additional Settings",
"name": "data",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.VerifyNumberSettings"
}
},
{
"type": "string",
"description": "Verification Code",
@@ -306,7 +315,7 @@ var doc = `{
}
}
},
"/v1/send/{number}": {
"/v1/send/": {
"post": {
"description": "Send a signal message",
"consumes": [
@@ -321,13 +330,6 @@ var doc = `{
"summary": "Send a signal message.",
"deprecated": true,
"parameters": [
{
"type": "string",
"description": "Registered Phone Number",
"name": "number",
"in": "path",
"required": true
},
{
"description": "Input Data",
"name": "data",
@@ -354,7 +356,7 @@ var doc = `{
}
}
},
"/v2/send/{number}": {
"/v2/send/": {
"post": {
"description": "Send a signal message",
"consumes": [
@@ -368,13 +370,6 @@ var doc = `{
],
"summary": "Send a signal message.",
"parameters": [
{
"type": "string",
"description": "Registered Phone Number",
"name": "number",
"in": "path",
"required": true
},
{
"description": "Input Data",
"name": "data",
@@ -504,6 +499,14 @@ var doc = `{
}
}
}
},
"api.VerifyNumberSettings": {
"type": "object",
"properties": {
"pin": {
"type": "string"
}
}
}
},
"tags": [

View File

@@ -267,6 +267,15 @@
"in": "path",
"required": true
},
{
"description": "Additional Settings",
"name": "data",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api.VerifyNumberSettings"
}
},
{
"type": "string",
"description": "Verification Code",
@@ -291,7 +300,7 @@
}
}
},
"/v1/send/{number}": {
"/v1/send/": {
"post": {
"description": "Send a signal message",
"consumes": [
@@ -306,13 +315,6 @@
"summary": "Send a signal message.",
"deprecated": true,
"parameters": [
{
"type": "string",
"description": "Registered Phone Number",
"name": "number",
"in": "path",
"required": true
},
{
"description": "Input Data",
"name": "data",
@@ -339,7 +341,7 @@
}
}
},
"/v2/send/{number}": {
"/v2/send/": {
"post": {
"description": "Send a signal message",
"consumes": [
@@ -353,13 +355,6 @@
],
"summary": "Send a signal message.",
"parameters": [
{
"type": "string",
"description": "Registered Phone Number",
"name": "number",
"in": "path",
"required": true
},
{
"description": "Input Data",
"name": "data",
@@ -489,6 +484,14 @@
}
}
}
},
"api.VerifyNumberSettings": {
"type": "object",
"properties": {
"pin": {
"type": "string"
}
}
}
},
"tags": [

View File

@@ -66,6 +66,11 @@ definitions:
type: string
type: array
type: object
api.VerifyNumberSettings:
properties:
pin:
type: string
type: object
host: 127.0.0.1:8080
info:
contact: {}
@@ -241,6 +246,12 @@ paths:
name: number
required: true
type: string
- description: Additional Settings
in: body
name: data
required: true
schema:
$ref: '#/definitions/api.VerifyNumberSettings'
- description: Verification Code
in: path
name: token
@@ -260,18 +271,13 @@ paths:
summary: Verify a registered phone number.
tags:
- Devices
/v1/send/{number}:
/v1/send/:
post:
consumes:
- application/json
deprecated: true
description: Send a signal message
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Input Data
in: body
name: data
@@ -292,17 +298,12 @@ paths:
summary: Send a signal message.
tags:
- Messages
/v2/send/{number}:
/v2/send/:
post:
consumes:
- application/json
description: Send a signal message
parameters:
- description: Registered Phone Number
in: path
name: number
required: true
type: string
- description: Input Data
in: body
name: data