fixed bug in create group endpoint

link & permissions weren't correctly set

see #410
This commit is contained in:
Bernhard B
2023-09-26 22:30:43 +02:00
parent f21925ea74
commit 4f3ebf0bfc
2 changed files with 71 additions and 18 deletions

View File

@@ -52,13 +52,37 @@ const (
)
func (g GroupPermission) String() string {
return []string{"", "default", "every-member", "only-admins"}[g]
return []string{"", "every-member", "only-admins"}[g]
}
func (g GroupPermission) FromString(input string) GroupPermission {
if input == "every-member" {
return EveryMember
}
if input == "only-admins" {
return OnlyAdmins
}
return DefaultGroupPermission
}
func (g GroupLinkState) String() string {
return []string{"", "enabled", "enabled-with-approval", "disabled"}[g]
}
func (g GroupLinkState) FromString(input string) GroupLinkState {
if input == "enabled" {
return Enabled
}
if input == "enabled-with-approval" {
return EnabledWithApproval
}
if input == "disabled" {
return Disabled
}
return DefaultGroupLinkState
}
type MessageMention struct {
Start int64 `json:"start"`
Length int64 `json:"length"`
@@ -662,11 +686,31 @@ func (s *SignalClient) CreateGroup(number string, name string, members []string,
var internalGroupId string
if s.signalCliMode == JsonRpc {
type Request struct {
Name string `json:"name"`
Members []string `json:"members"`
Name string `json:"name"`
Members []string `json:"members"`
Link string `json:"link,omitempty"`
Description string `json:"description,omitempty"`
EditGroupPermissions string `json:"setPermissionEditDetails,omitempty"`
AddMembersPermissions string `json:"setPermissionAddMember,omitempty"`
}
request := Request{Name: name, Members: members}
if groupLinkState != DefaultGroupLinkState {
request.Link = groupLinkState.String()
}
if description != "" {
request.Description = description
}
if editGroupPermission != DefaultGroupPermission {
request.EditGroupPermissions = editGroupPermission.String()
}
if addMembersPermission != DefaultGroupPermission {
request.AddMembersPermissions = addMembersPermission.String()
}
jsonRpc2Client, err := s.getJsonRpc2Client(number)
if err != nil {
return "", err