mirror of
https://github.com/aljazceru/signal-cli-rest-api.git
synced 2025-12-19 15:44:28 +01:00
Merge pull request #405 from greysonp/add-group-refresh
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
|
signal-cli-config
|
||||||
src/main
|
src/main
|
||||||
src/signal-cli-rest-api
|
src/signal-cli-rest-api
|
||||||
|
.idea/
|
||||||
|
|||||||
@@ -1241,6 +1241,38 @@ func (a *Api) QuitGroup(c *gin.Context) {
|
|||||||
c.Status(http.StatusNoContent)
|
c.Status(http.StatusNoContent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Summary Update the state of a Signal Group.
|
||||||
|
// @Tags Groups
|
||||||
|
// @Description Update 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} [put]
|
||||||
|
func (a *Api) UpdateGroup(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.UpdateGroup(number, internalGroupId)
|
||||||
|
if err != nil {
|
||||||
|
c.JSON(400, Error{Msg: err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
c.Status(http.StatusNoContent)
|
||||||
|
}
|
||||||
|
|
||||||
// @Summary Send a reaction.
|
// @Summary Send a reaction.
|
||||||
// @Tags Reactions
|
// @Tags Reactions
|
||||||
// @Description React to a message
|
// @Description React to a message
|
||||||
|
|||||||
@@ -1220,6 +1220,24 @@ func (s *SignalClient) QuitGroup(number string, groupId string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *SignalClient) UpdateGroup(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 {
|
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
|
// see https://github.com/AsamK/signal-cli/blob/master/man/signal-cli.1.adoc#sendreaction
|
||||||
var err error
|
var err error
|
||||||
|
|||||||
@@ -186,6 +186,7 @@ func main() {
|
|||||||
groups.POST(":number/:groupid/block", api.BlockGroup)
|
groups.POST(":number/:groupid/block", api.BlockGroup)
|
||||||
groups.POST(":number/:groupid/join", api.JoinGroup)
|
groups.POST(":number/:groupid/join", api.JoinGroup)
|
||||||
groups.POST(":number/:groupid/quit", api.QuitGroup)
|
groups.POST(":number/:groupid/quit", api.QuitGroup)
|
||||||
|
groups.PUT(":number/:groupid", api.UpdateGroup)
|
||||||
groups.POST(":number/:groupid/members", api.AddMembersToGroup)
|
groups.POST(":number/:groupid/members", api.AddMembersToGroup)
|
||||||
groups.DELETE(":number/:groupid/members", api.RemoveMembersFromGroup)
|
groups.DELETE(":number/:groupid/members", api.RemoveMembersFromGroup)
|
||||||
groups.POST(":number/:groupid/admins", api.AddAdminsToGroup)
|
groups.POST(":number/:groupid/admins", api.AddAdminsToGroup)
|
||||||
|
|||||||
Reference in New Issue
Block a user