mirror of
https://github.com/aljazceru/signal-cli-rest-api.git
synced 2025-12-21 08:34:22 +01:00
implemented more JSON-RPC endpoints
This commit is contained in:
@@ -30,6 +30,8 @@ const groupPrefix = "group."
|
|||||||
|
|
||||||
const signalCliV2GroupError = "Cannot create a V2 group as self does not have a versioned profile"
|
const signalCliV2GroupError = "Cannot create a V2 group as self does not have a versioned profile"
|
||||||
|
|
||||||
|
const endpointNotSupportedInJsonRpcMode = "This endpoint is not supported in JSON-RCP mode."
|
||||||
|
|
||||||
type GroupPermission int
|
type GroupPermission int
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -447,6 +449,9 @@ func (s *SignalClient) About() About {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *SignalClient) RegisterNumber(number string, useVoice bool, captcha string) error {
|
func (s *SignalClient) RegisterNumber(number string, useVoice bool, captcha string) error {
|
||||||
|
if s.signalCliMode == JsonRpc {
|
||||||
|
return errors.New(endpointNotSupportedInJsonRpcMode)
|
||||||
|
}
|
||||||
command := []string{"--config", s.signalCliConfig, "-u", number, "register"}
|
command := []string{"--config", s.signalCliConfig, "-u", number, "register"}
|
||||||
|
|
||||||
if useVoice {
|
if useVoice {
|
||||||
@@ -462,6 +467,10 @@ func (s *SignalClient) RegisterNumber(number string, useVoice bool, captcha stri
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *SignalClient) VerifyRegisteredNumber(number string, token string, pin string) error {
|
func (s *SignalClient) VerifyRegisteredNumber(number string, token string, pin string) error {
|
||||||
|
if s.signalCliMode == JsonRpc {
|
||||||
|
return errors.New(endpointNotSupportedInJsonRpcMode)
|
||||||
|
}
|
||||||
|
|
||||||
cmd := []string{"--config", s.signalCliConfig, "-u", number, "verify", token}
|
cmd := []string{"--config", s.signalCliConfig, "-u", number, "verify", token}
|
||||||
if pin != "" {
|
if pin != "" {
|
||||||
cmd = append(cmd, "--pin")
|
cmd = append(cmd, "--pin")
|
||||||
@@ -533,6 +542,9 @@ func (s *SignalClient) SendV2(number string, message string, recps []string, bas
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *SignalClient) Receive(number string, timeout int64) (string, error) {
|
func (s *SignalClient) Receive(number string, timeout int64) (string, error) {
|
||||||
|
if s.signalCliMode == Native {
|
||||||
|
return "", errors.New(endpointNotSupportedInJsonRpcMode)
|
||||||
|
} else {
|
||||||
command := []string{"--config", s.signalCliConfig, "--output", "json", "-u", number, "receive", "-t", strconv.FormatInt(timeout, 10)}
|
command := []string{"--config", s.signalCliConfig, "--output", "json", "-u", number, "receive", "-t", strconv.FormatInt(timeout, 10)}
|
||||||
|
|
||||||
out, err := runSignalCli(true, command, "", s.signalCliMode)
|
out, err := runSignalCli(true, command, "", s.signalCliMode)
|
||||||
@@ -554,6 +566,7 @@ func (s *SignalClient) Receive(number string, timeout int64) (string, error) {
|
|||||||
|
|
||||||
return jsonStr, nil
|
return jsonStr, nil
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (s *SignalClient) CreateGroup(number string, name string, members []string, description string, editGroupPermission GroupPermission, addMembersPermission GroupPermission, groupLinkState GroupLinkState) (string, error) {
|
func (s *SignalClient) CreateGroup(number string, name string, members []string, description string, editGroupPermission GroupPermission, addMembersPermission GroupPermission, groupLinkState GroupLinkState) (string, error) {
|
||||||
var err error
|
var err error
|
||||||
@@ -681,6 +694,9 @@ func (s *SignalClient) DeleteGroup(number string, groupId string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *SignalClient) GetQrCodeLink(deviceName string) ([]byte, error) {
|
func (s *SignalClient) GetQrCodeLink(deviceName string) ([]byte, error) {
|
||||||
|
if s.signalCliMode == JsonRpc {
|
||||||
|
return []byte{}, errors.New(endpointNotSupportedInJsonRpcMode)
|
||||||
|
}
|
||||||
command := []string{"--config", s.signalCliConfig, "link", "-n", deviceName}
|
command := []string{"--config", s.signalCliConfig, "link", "-n", deviceName}
|
||||||
|
|
||||||
tsdeviceLink, err := runSignalCli(false, command, "", s.signalCliMode)
|
tsdeviceLink, err := runSignalCli(false, command, "", s.signalCliMode)
|
||||||
@@ -890,7 +906,20 @@ func (s *SignalClient) TrustIdentity(number string, numberToTrust string, verifi
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *SignalClient) BlockGroup(number string, groupId string) error {
|
func (s *SignalClient) BlockGroup(number string, groupId string) error {
|
||||||
_, err := runSignalCli(true, []string{"--config", s.signalCliConfig, "-u", number, "block", "-g", groupId}, "", s.signalCliMode)
|
var err error
|
||||||
|
if s.signalCliMode == JsonRpc {
|
||||||
|
type Request struct {
|
||||||
|
GroupId string `json:"groupId"`
|
||||||
|
}
|
||||||
|
request := Request{GroupId: groupId}
|
||||||
|
jsonRpc2Client, err := s.getJsonRpc2Client(number)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
_, err = jsonRpc2Client.getRaw("updateGroup", request)
|
||||||
|
} else {
|
||||||
|
_, err = runSignalCli(true, []string{"--config", s.signalCliConfig, "-u", number, "block", "-g", groupId}, "", s.signalCliMode)
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user