Skip to content

Commit

Permalink
fixed bug in create group endpoint
Browse files Browse the repository at this point in the history
* the group id of the newly created signal group wasn't correctly
  returned in json-rpc mode.
  • Loading branch information
Bernhard B committed Oct 20, 2021
1 parent 6c28b78 commit 405b7f0
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions src/client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -595,8 +595,7 @@ func (s *SignalClient) Receive(number string, timeout int64) (string, error) {
}

func (s *SignalClient) CreateGroup(number string, name string, members []string, description string, editGroupPermission GroupPermission, addMembersPermission GroupPermission, groupLinkState GroupLinkState) (string, error) {
var err error
var rawData string
var internalGroupId string
if s.signalCliMode == JsonRpc {
type Request struct {
Name string `json:"name"`
Expand All @@ -608,10 +607,21 @@ func (s *SignalClient) CreateGroup(number string, name string, members []string,
if err != nil {
return "", err
}
rawData, err = jsonRpc2Client.getRaw("updateGroup", request)
rawData, err := jsonRpc2Client.getRaw("updateGroup", request)
if err != nil {
return "", err
}

type Response struct {
GroupId string `json:"groupId"`
Timestamp int64 `json:"timestamp"`
}
var resp Response
json.Unmarshal([]byte(rawData), &resp)
if err != nil {
return "", err
}
internalGroupId = resp.GroupId
} else {
cmd := []string{"--config", s.signalCliConfig, "-u", number, "updateGroup", "-n", name, "-m"}
cmd = append(cmd, members...)
Expand All @@ -632,15 +642,15 @@ func (s *SignalClient) CreateGroup(number string, name string, members []string,
cmd = append(cmd, []string{"--description", description}...)
}

rawData, err = runSignalCli(true, cmd, "", s.signalCliMode)
rawData, err := runSignalCli(true, cmd, "", s.signalCliMode)
if err != nil {
if strings.Contains(err.Error(), signalCliV2GroupError) {
return "", errors.New("Cannot create group - please first update your profile.")
}
return "", err
}
internalGroupId = getStringInBetween(rawData, `"`, `"`)
}
internalGroupId := getStringInBetween(rawData, `"`, `"`)
groupId := convertInternalGroupIdToGroupId(internalGroupId)

return groupId, nil
Expand Down

0 comments on commit 405b7f0

Please sign in to comment.