made it possible to modify link state in groups PUT endpoint

This commit is contained in:
Bernhard B 2025-07-14 17:38:33 +02:00
parent cde86f471b
commit e9e8731f6b
2 changed files with 24 additions and 2 deletions

View File

@ -57,6 +57,7 @@ type UpdateGroupRequest struct {
Description *string `json:"description"`
Name *string `json:"name"`
ExpirationTime *int `json:"expiration_time"`
GroupLinkState *string `json:"group_link" enums:"disabled,enabled,enabled-with-approval"`
}
type ChangeGroupMembersRequest struct {
@ -1521,7 +1522,18 @@ func (a *Api) UpdateGroup(c *gin.Context) {
return
}
err = a.signalClient.UpdateGroup(number, internalGroupId, req.Base64Avatar, req.Description, req.Name, req.ExpirationTime)
var groupLinkState *client.GroupLinkState = nil
if req.GroupLinkState != nil {
if !utils.StringInSlice(*req.GroupLinkState, []string{"enabled", "enabled-with-approval", "disabled"}) {
c.JSON(400, Error{Msg: "Invalid group link provided - only 'enabled', 'enabled-with-approval' and 'disabled' allowed!"})
return
}
var gLinkState client.GroupLinkState
gLinkStateVal := gLinkState.FromString(*req.GroupLinkState)
groupLinkState = &gLinkStateVal
}
err = a.signalClient.UpdateGroup(number, internalGroupId, req.Base64Avatar, req.Description, req.Name, req.ExpirationTime, groupLinkState)
if err != nil {
c.JSON(400, Error{Msg: err.Error()})
return

View File

@ -1745,7 +1745,8 @@ func (s *SignalClient) QuitGroup(number string, groupId string) error {
return err
}
func (s *SignalClient) UpdateGroup(number string, groupId string, base64Avatar *string, groupDescription *string, groupName *string, expirationTime *int) error {
func (s *SignalClient) UpdateGroup(number string, groupId string, base64Avatar *string, groupDescription *string,
groupName *string, expirationTime *int, groupLinkState *GroupLinkState) error {
var err error
var avatarTmpPath string = ""
if base64Avatar != nil {
@ -1790,6 +1791,7 @@ func (s *SignalClient) UpdateGroup(number string, groupId string, base64Avatar *
Description *string `json:"description,omitempty"`
Name *string `json:"name,omitempty"`
Expiration int `json:"expiration,omitempty"`
Link string `json:"link,omitempty"`
}
request := Request{GroupId: groupId}
@ -1804,6 +1806,10 @@ func (s *SignalClient) UpdateGroup(number string, groupId string, base64Avatar *
request.Expiration = *expirationTime
}
if groupLinkState != nil {
request.Link = (*groupLinkState).String()
}
jsonRpc2Client, err := s.getJsonRpc2Client()
if err != nil {
return err
@ -1827,6 +1833,10 @@ func (s *SignalClient) UpdateGroup(number string, groupId string, base64Avatar *
cmd = append(cmd, []string{"--expiration", strconv.Itoa(*expirationTime)}...)
}
if groupLinkState != nil {
cmd = append(cmd, []string{"--link", (*groupLinkState).String()}...)
}
_, err = s.cliClient.Execute(true, cmd, "")
}