@@ -52,13 +52,37 @@ const (
5252)
5353
5454func (g GroupPermission ) String () string {
55- return []string {"" , "default" , "every-member" , "only-admins" }[g ]
55+ return []string {"" , "every-member" , "only-admins" }[g ]
56+ }
57+
58+ func (g GroupPermission ) FromString (input string ) GroupPermission {
59+ if input == "every-member" {
60+ return EveryMember
61+ }
62+ if input == "only-admins" {
63+ return OnlyAdmins
64+ }
65+ return DefaultGroupPermission
5666}
5767
5868func (g GroupLinkState ) String () string {
5969 return []string {"" , "enabled" , "enabled-with-approval" , "disabled" }[g ]
6070}
6171
72+ func (g GroupLinkState ) FromString (input string ) GroupLinkState {
73+ if input == "enabled" {
74+ return Enabled
75+ }
76+ if input == "enabled-with-approval" {
77+ return EnabledWithApproval
78+ }
79+ if input == "disabled" {
80+ return Disabled
81+ }
82+
83+ return DefaultGroupLinkState
84+ }
85+
6286type MessageMention struct {
6387 Start int64 `json:"start"`
6488 Length int64 `json:"length"`
@@ -662,11 +686,31 @@ func (s *SignalClient) CreateGroup(number string, name string, members []string,
662686 var internalGroupId string
663687 if s .signalCliMode == JsonRpc {
664688 type Request struct {
665- Name string `json:"name"`
666- Members []string `json:"members"`
689+ Name string `json:"name"`
690+ Members []string `json:"members"`
691+ Link string `json:"link,omitempty"`
692+ Description string `json:"description,omitempty"`
693+ EditGroupPermissions string `json:"setPermissionEditDetails,omitempty"`
694+ AddMembersPermissions string `json:"setPermissionAddMember,omitempty"`
667695 }
668696 request := Request {Name : name , Members : members }
669697
698+ if groupLinkState != DefaultGroupLinkState {
699+ request .Link = groupLinkState .String ()
700+ }
701+
702+ if description != "" {
703+ request .Description = description
704+ }
705+
706+ if editGroupPermission != DefaultGroupPermission {
707+ request .EditGroupPermissions = editGroupPermission .String ()
708+ }
709+
710+ if addMembersPermission != DefaultGroupPermission {
711+ request .AddMembersPermissions = addMembersPermission .String ()
712+ }
713+
670714 jsonRpc2Client , err := s .getJsonRpc2Client (number )
671715 if err != nil {
672716 return "" , err
0 commit comments