diff --git a/src/api/api.go b/src/api/api.go index addc9e3..c155518 100644 --- a/src/api/api.go +++ b/src/api/api.go @@ -146,6 +146,7 @@ type CreateGroupResponse struct { type UpdateProfileRequest struct { Name string `json:"name"` Base64Avatar string `json:"base64_avatar"` + About *string `json:"about"` } type TrustIdentityRequest struct { @@ -1115,7 +1116,7 @@ func (a *Api) UpdateProfile(c *gin.Context) { return } - err = a.signalClient.UpdateProfile(number, req.Name, req.Base64Avatar) + err = a.signalClient.UpdateProfile(number, req.Name, req.Base64Avatar, req.About) if err != nil { c.JSON(400, Error{Msg: err.Error()}) return diff --git a/src/client/client.go b/src/client/client.go index ef6bc66..777d280 100644 --- a/src/client/client.go +++ b/src/client/client.go @@ -1356,7 +1356,7 @@ func (s *SignalClient) GetAttachment(attachment string) ([]byte, error) { return attachmentBytes, nil } -func (s *SignalClient) UpdateProfile(number string, profileName string, base64Avatar string) error { +func (s *SignalClient) UpdateProfile(number string, profileName string, base64Avatar string, about *string) error { var err error var avatarTmpPath string if base64Avatar != "" { @@ -1399,14 +1399,17 @@ func (s *SignalClient) UpdateProfile(number string, profileName string, base64Av Name string `json:"given-name"` Avatar string `json:"avatar,omitempty"` RemoveAvatar bool `json:"remove-avatar"` + About *string `json:"about,omitempty"` } request := Request{Name: profileName} + request.About = about if base64Avatar == "" { request.RemoveAvatar = true } else { request.Avatar = avatarTmpPath request.RemoveAvatar = false } + jsonRpc2Client, err := s.getJsonRpc2Client() if err != nil { return err @@ -1420,6 +1423,10 @@ func (s *SignalClient) UpdateProfile(number string, profileName string, base64Av cmd = append(cmd, []string{"--avatar", avatarTmpPath}...) } + if about != nil { + cmd = append(cmd, []string{"--about", *about}...) + } + _, err = s.cliClient.Execute(true, cmd, "") }