mirror of
https://github.com/aljazceru/signal-cli-rest-api.git
synced 2025-12-18 07:04:20 +01:00
Add the ability to refresh a group.
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
signal-cli-config
|
||||
src/main
|
||||
src/signal-cli-rest-api
|
||||
.idea/
|
||||
|
||||
@@ -1229,6 +1229,38 @@ func (a *Api) QuitGroup(c *gin.Context) {
|
||||
c.Status(http.StatusNoContent)
|
||||
}
|
||||
|
||||
// @Summary Refresh the state of a Signal Group.
|
||||
// @Tags Groups
|
||||
// @Description Refresh the state of a Signal Group.
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 204 {string} OK
|
||||
// @Failure 400 {object} Error
|
||||
// @Param number path string true "Registered Phone Number"
|
||||
// @Param groupid path string true "Group ID"
|
||||
// @Router /v1/groups/{number}/{groupid}/refresh [post]
|
||||
func (a *Api) RefreshGroup(c *gin.Context) {
|
||||
number := c.Param("number")
|
||||
if number == "" {
|
||||
c.JSON(400, Error{Msg: "Couldn't process request - number missing"})
|
||||
return
|
||||
}
|
||||
|
||||
groupId := c.Param("groupid")
|
||||
internalGroupId, err := client.ConvertGroupIdToInternalGroupId(groupId)
|
||||
if err != nil {
|
||||
c.JSON(400, Error{Msg: err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
err = a.signalClient.RefreshGroup(number, internalGroupId)
|
||||
if err != nil {
|
||||
c.JSON(400, Error{Msg: err.Error()})
|
||||
return
|
||||
}
|
||||
c.Status(http.StatusNoContent)
|
||||
}
|
||||
|
||||
// @Summary Send a reaction.
|
||||
// @Tags Reactions
|
||||
// @Description React to a message
|
||||
|
||||
@@ -1220,6 +1220,24 @@ func (s *SignalClient) QuitGroup(number string, groupId string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
func (s *SignalClient) RefreshGroup(number string, groupId string) error {
|
||||
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 = s.cliClient.Execute(true, []string{"--config", s.signalCliConfig, "-a", number, "updateGroup", "-g", groupId}, "")
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (s *SignalClient) SendReaction(number string, recipient string, emoji string, target_author string, timestamp int64, remove bool) error {
|
||||
// see https://github.com/AsamK/signal-cli/blob/master/man/signal-cli.1.adoc#sendreaction
|
||||
var err error
|
||||
|
||||
@@ -186,6 +186,7 @@ func main() {
|
||||
groups.POST(":number/:groupid/block", api.BlockGroup)
|
||||
groups.POST(":number/:groupid/join", api.JoinGroup)
|
||||
groups.POST(":number/:groupid/quit", api.QuitGroup)
|
||||
groups.POST(":number/:groupid/refresh", api.RefreshGroup)
|
||||
groups.POST(":number/:groupid/members", api.AddMembersToGroup)
|
||||
groups.DELETE(":number/:groupid/members", api.RemoveMembersFromGroup)
|
||||
groups.POST(":number/:groupid/admins", api.AddAdminsToGroup)
|
||||
|
||||
Reference in New Issue
Block a user