mirror of
https://github.com/aljazceru/signal-cli-rest-api.git
synced 2025-12-18 15:14:23 +01:00
@@ -122,6 +122,7 @@ type IdentityEntry struct {
|
|||||||
Fingerprint string `json:"fingerprint"`
|
Fingerprint string `json:"fingerprint"`
|
||||||
Added string `json:"added"`
|
Added string `json:"added"`
|
||||||
SafetyNumber string `json:"safety_number"`
|
SafetyNumber string `json:"safety_number"`
|
||||||
|
Uuid string `json:"uuid"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type SignalCliGroupMember struct {
|
type SignalCliGroupMember struct {
|
||||||
@@ -1561,47 +1562,38 @@ func (s *SignalClient) UpdateProfile(number string, profileName string, base64Av
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *SignalClient) ListIdentities(number string) (*[]IdentityEntry, error) {
|
func (s *SignalClient) ListIdentities(number string) (*[]IdentityEntry, error) {
|
||||||
|
var err error
|
||||||
|
var rawData string
|
||||||
identityEntries := []IdentityEntry{}
|
identityEntries := []IdentityEntry{}
|
||||||
if s.signalCliMode == JsonRpc {
|
if s.signalCliMode == JsonRpc {
|
||||||
jsonRpc2Client, err := s.getJsonRpc2Client()
|
jsonRpc2Client, err := s.getJsonRpc2Client()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
rawData, err := jsonRpc2Client.getRaw("listIdentities", &number, nil)
|
rawData, err = jsonRpc2Client.getRaw("listIdentities", &number, nil)
|
||||||
signalCliIdentityEntries := []SignalCliIdentityEntry{}
|
|
||||||
err = json.Unmarshal([]byte(rawData), &signalCliIdentityEntries)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
for _, signalCliIdentityEntry := range signalCliIdentityEntries {
|
|
||||||
identityEntry := IdentityEntry{
|
|
||||||
Number: signalCliIdentityEntry.Number,
|
|
||||||
Status: signalCliIdentityEntry.TrustLevel,
|
|
||||||
Added: strconv.FormatInt(signalCliIdentityEntry.AddedTimestamp, 10),
|
|
||||||
Fingerprint: signalCliIdentityEntry.Fingerprint,
|
|
||||||
SafetyNumber: signalCliIdentityEntry.SafetyNumber,
|
|
||||||
}
|
|
||||||
identityEntries = append(identityEntries, identityEntry)
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
rawData, err := s.cliClient.Execute(true, []string{"--config", s.signalCliConfig, "-a", number, "listIdentities"}, "")
|
rawData, err = s.cliClient.Execute(true, []string{"--config", s.signalCliConfig, "-o", "json", "-a", number, "listIdentities"}, "")
|
||||||
if err != nil {
|
}
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
keyValuePairs := parseWhitespaceDelimitedKeyValueStringList(rawData, []string{"NumberAndTrustStatus", "Added", "Fingerprint", "Safety Number"})
|
if err != nil {
|
||||||
for _, keyValuePair := range keyValuePairs {
|
return nil, err
|
||||||
numberAndTrustStatus := keyValuePair["NumberAndTrustStatus"]
|
}
|
||||||
numberAndTrustStatusSplitted := strings.Split(numberAndTrustStatus, ":")
|
|
||||||
|
|
||||||
identityEntry := IdentityEntry{Number: strings.Trim(numberAndTrustStatusSplitted[0], " "),
|
signalCliIdentityEntries := []SignalCliIdentityEntry{}
|
||||||
Status: strings.Trim(numberAndTrustStatusSplitted[1], " "),
|
err = json.Unmarshal([]byte(rawData), &signalCliIdentityEntries)
|
||||||
Added: keyValuePair["Added"],
|
if err != nil {
|
||||||
Fingerprint: strings.Trim(keyValuePair["Fingerprint"], " "),
|
return nil, err
|
||||||
SafetyNumber: strings.Trim(keyValuePair["Safety Number"], " "),
|
}
|
||||||
}
|
for _, signalCliIdentityEntry := range signalCliIdentityEntries {
|
||||||
identityEntries = append(identityEntries, identityEntry)
|
identityEntry := IdentityEntry{
|
||||||
|
Number: signalCliIdentityEntry.Number,
|
||||||
|
Status: signalCliIdentityEntry.TrustLevel,
|
||||||
|
Added: strconv.FormatInt(signalCliIdentityEntry.AddedTimestamp, 10),
|
||||||
|
Fingerprint: signalCliIdentityEntry.Fingerprint,
|
||||||
|
SafetyNumber: signalCliIdentityEntry.SafetyNumber,
|
||||||
|
Uuid: signalCliIdentityEntry.Uuid,
|
||||||
}
|
}
|
||||||
|
identityEntries = append(identityEntries, identityEntry)
|
||||||
}
|
}
|
||||||
|
|
||||||
return &identityEntries, nil
|
return &identityEntries, nil
|
||||||
|
|||||||
Reference in New Issue
Block a user