mirror of
https://github.com/aljazceru/signal-cli-rest-api.git
synced 2025-12-19 15:44:28 +01:00
fixed bug in search endpoint
* when multiple accounts are registered, signal-cli expects the account
specified with '-a'. In order to stay backwards compatible, the search
endpoint was extended with an optional number parameter. i.e:
'/search/{number}'. In case only one account is registered, the number
parameter can be omitted.
see #369
This commit is contained in:
@@ -1382,6 +1382,7 @@ func (a *Api) SendStopTyping(c *gin.Context) {
|
|||||||
// @Description Check if one or more phone numbers are registered with the Signal Service.
|
// @Description Check if one or more phone numbers are registered with the Signal Service.
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
|
// @Param number path string false "Registered Phone Number"
|
||||||
// @Param numbers query []string true "Numbers to check" collectionFormat(multi)
|
// @Param numbers query []string true "Numbers to check" collectionFormat(multi)
|
||||||
// @Success 200 {object} []SearchResponse
|
// @Success 200 {object} []SearchResponse
|
||||||
// @Failure 400 {object} Error
|
// @Failure 400 {object} Error
|
||||||
@@ -1393,7 +1394,9 @@ func (a *Api) SearchForNumbers(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
searchResults, err := a.signalClient.SearchForNumbers(query["numbers"])
|
number := c.Param("number")
|
||||||
|
|
||||||
|
searchResults, err := a.signalClient.SearchForNumbers(number, query["numbers"])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(400, Error{Msg: err.Error()})
|
c.JSON(400, Error{Msg: err.Error()})
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -1348,7 +1348,7 @@ func (s *SignalClient) SendStopTyping(number string, recipient string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SignalClient) SearchForNumbers(numbers []string) ([]SearchResultEntry, error) {
|
func (s *SignalClient) SearchForNumbers(number string, numbers []string) ([]SearchResultEntry, error) {
|
||||||
searchResultEntries := []SearchResultEntry{}
|
searchResultEntries := []SearchResultEntry{}
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
@@ -1374,7 +1374,11 @@ func (s *SignalClient) SearchForNumbers(numbers []string) ([]SearchResultEntry,
|
|||||||
return searchResultEntries, err
|
return searchResultEntries, err
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
cmd := []string{"--config", s.signalCliConfig, "--output", "json", "getUserStatus"}
|
cmd := []string{"--config", s.signalCliConfig, "--output", "json"}
|
||||||
|
if number != "" {
|
||||||
|
cmd = append(cmd, []string{"-a", number}...)
|
||||||
|
}
|
||||||
|
cmd = append(cmd, "getUserStatus")
|
||||||
cmd = append(cmd, numbers...)
|
cmd = append(cmd, numbers...)
|
||||||
rawData, err = s.cliClient.Execute(true, cmd, "")
|
rawData, err = s.cliClient.Execute(true, cmd, "")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1289,6 +1289,12 @@ var doc = `{
|
|||||||
],
|
],
|
||||||
"summary": "Check if one or more phone numbers are registered with the Signal Service.",
|
"summary": "Check if one or more phone numbers are registered with the Signal Service.",
|
||||||
"parameters": [
|
"parameters": [
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"description": "Registered Phone Number",
|
||||||
|
"name": "number",
|
||||||
|
"in": "path"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
|
|||||||
@@ -1273,6 +1273,12 @@
|
|||||||
],
|
],
|
||||||
"summary": "Check if one or more phone numbers are registered with the Signal Service.",
|
"summary": "Check if one or more phone numbers are registered with the Signal Service.",
|
||||||
"parameters": [
|
"parameters": [
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"description": "Registered Phone Number",
|
||||||
|
"name": "number",
|
||||||
|
"in": "path"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
|
|||||||
@@ -1118,6 +1118,10 @@ paths:
|
|||||||
- application/json
|
- application/json
|
||||||
description: Check if one or more phone numbers are registered with the Signal Service.
|
description: Check if one or more phone numbers are registered with the Signal Service.
|
||||||
parameters:
|
parameters:
|
||||||
|
- description: Registered Phone Number
|
||||||
|
in: path
|
||||||
|
name: number
|
||||||
|
type: string
|
||||||
- collectionFormat: multi
|
- collectionFormat: multi
|
||||||
description: Numbers to check
|
description: Numbers to check
|
||||||
in: query
|
in: query
|
||||||
|
|||||||
@@ -235,6 +235,7 @@ func main() {
|
|||||||
search := v1.Group("/search")
|
search := v1.Group("/search")
|
||||||
{
|
{
|
||||||
search.GET("", api.SearchForNumbers)
|
search.GET("", api.SearchForNumbers)
|
||||||
|
search.GET(":number", api.SearchForNumbers)
|
||||||
}
|
}
|
||||||
|
|
||||||
contacts := v1.Group("/contacts")
|
contacts := v1.Group("/contacts")
|
||||||
|
|||||||
Reference in New Issue
Block a user