pushbits/dispatcher/application.go
2020-07-26 22:23:13 +02:00

42 lines
978 B
Go

package dispatcher
import (
"log"
"github.com/matrix-org/gomatrix"
)
// RegisterApplication creates a new channel for an application.
func (d *Dispatcher) RegisterApplication(name, user string) (string, error) {
log.Printf("Registering application %s, notifications will be relayed to user %s.\n", name, user)
response, err := d.client.CreateRoom(&gomatrix.ReqCreateRoom{
Visibility: "private",
Name: name,
Invite: []string{user},
Preset: "private_chat",
IsDirect: true,
})
if err != nil {
log.Fatal(err)
return "", err
}
log.Printf("Application %s is now relayed to room with ID %s.\n", name, response.RoomID)
return response.RoomID, err
}
// DeregisterApplication deletes a channel for an application.
func (d *Dispatcher) DeregisterApplication(matrixID string) error {
log.Printf("Deregistering application with ID %s.\n", matrixID)
_, err := d.client.LeaveRoom(matrixID)
if err != nil {
log.Fatal(err)
}
return err
}