Add a pointer to conditionally send about string to signal-cli

This commit is contained in:
Matthew Rider
2024-10-22 10:27:32 +02:00
parent f6c3f263e8
commit 57dcb2f281
2 changed files with 10 additions and 4 deletions

View File

@@ -146,7 +146,7 @@ type CreateGroupResponse struct {
type UpdateProfileRequest struct { type UpdateProfileRequest struct {
Name string `json:"name"` Name string `json:"name"`
Base64Avatar string `json:"base64_avatar"` Base64Avatar string `json:"base64_avatar"`
About string `json:"about"` About *string `json:"about"`
} }
type TrustIdentityRequest struct { type TrustIdentityRequest struct {

View File

@@ -1356,7 +1356,7 @@ func (s *SignalClient) GetAttachment(attachment string) ([]byte, error) {
return attachmentBytes, nil return attachmentBytes, nil
} }
func (s *SignalClient) UpdateProfile(number string, profileName string, base64Avatar string, about string) error { func (s *SignalClient) UpdateProfile(number string, profileName string, base64Avatar string, about *string) error {
var err error var err error
var avatarTmpPath string var avatarTmpPath string
if base64Avatar != "" { if base64Avatar != "" {
@@ -1399,28 +1399,34 @@ func (s *SignalClient) UpdateProfile(number string, profileName string, base64Av
Name string `json:"given-name"` Name string `json:"given-name"`
Avatar string `json:"avatar,omitempty"` Avatar string `json:"avatar,omitempty"`
RemoveAvatar bool `json:"remove-avatar"` RemoveAvatar bool `json:"remove-avatar"`
About string `json:"about"` About *string `json:"about,omitempty"`
} }
request := Request{Name: profileName} request := Request{Name: profileName}
request.About = about
if base64Avatar == "" { if base64Avatar == "" {
request.RemoveAvatar = true request.RemoveAvatar = true
} else { } else {
request.Avatar = avatarTmpPath request.Avatar = avatarTmpPath
request.RemoveAvatar = false request.RemoveAvatar = false
} }
jsonRpc2Client, err := s.getJsonRpc2Client() jsonRpc2Client, err := s.getJsonRpc2Client()
if err != nil { if err != nil {
return err return err
} }
_, err = jsonRpc2Client.getRaw("updateProfile", &number, request) _, err = jsonRpc2Client.getRaw("updateProfile", &number, request)
} else { } else {
cmd := []string{"--config", s.signalCliConfig, "-a", number, "updateProfile", "--given-name", profileName, "--about", about} cmd := []string{"--config", s.signalCliConfig, "-a", number, "updateProfile", "--given-name", profileName}
if base64Avatar == "" { if base64Avatar == "" {
cmd = append(cmd, "--remove-avatar") cmd = append(cmd, "--remove-avatar")
} else { } else {
cmd = append(cmd, []string{"--avatar", avatarTmpPath}...) cmd = append(cmd, []string{"--avatar", avatarTmpPath}...)
} }
if about != nil {
cmd = append(cmd, []string{"--about", *about}...)
}
_, err = s.cliClient.Execute(true, cmd, "") _, err = s.cliClient.Execute(true, cmd, "")
} }