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.
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param number path string false "Registered Phone Number"
|
||||
// @Param numbers query []string true "Numbers to check" collectionFormat(multi)
|
||||
// @Success 200 {object} []SearchResponse
|
||||
// @Failure 400 {object} Error
|
||||
@@ -1393,7 +1394,9 @@ func (a *Api) SearchForNumbers(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
searchResults, err := a.signalClient.SearchForNumbers(query["numbers"])
|
||||
number := c.Param("number")
|
||||
|
||||
searchResults, err := a.signalClient.SearchForNumbers(number, query["numbers"])
|
||||
if err != nil {
|
||||
c.JSON(400, Error{Msg: err.Error()})
|
||||
return
|
||||
|
||||
@@ -1348,7 +1348,7 @@ func (s *SignalClient) SendStopTyping(number string, recipient string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
func (s *SignalClient) SearchForNumbers(numbers []string) ([]SearchResultEntry, error) {
|
||||
func (s *SignalClient) SearchForNumbers(number string, numbers []string) ([]SearchResultEntry, error) {
|
||||
searchResultEntries := []SearchResultEntry{}
|
||||
|
||||
var err error
|
||||
@@ -1374,7 +1374,11 @@ func (s *SignalClient) SearchForNumbers(numbers []string) ([]SearchResultEntry,
|
||||
return searchResultEntries, err
|
||||
}
|
||||
} 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...)
|
||||
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.",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "Registered Phone Number",
|
||||
"name": "number",
|
||||
"in": "path"
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
|
||||
@@ -1273,6 +1273,12 @@
|
||||
],
|
||||
"summary": "Check if one or more phone numbers are registered with the Signal Service.",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "Registered Phone Number",
|
||||
"name": "number",
|
||||
"in": "path"
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
|
||||
@@ -1118,6 +1118,10 @@ paths:
|
||||
- application/json
|
||||
description: Check if one or more phone numbers are registered with the Signal Service.
|
||||
parameters:
|
||||
- description: Registered Phone Number
|
||||
in: path
|
||||
name: number
|
||||
type: string
|
||||
- collectionFormat: multi
|
||||
description: Numbers to check
|
||||
in: query
|
||||
|
||||
@@ -235,6 +235,7 @@ func main() {
|
||||
search := v1.Group("/search")
|
||||
{
|
||||
search.GET("", api.SearchForNumbers)
|
||||
search.GET(":number", api.SearchForNumbers)
|
||||
}
|
||||
|
||||
contacts := v1.Group("/contacts")
|
||||
|
||||
Reference in New Issue
Block a user