aboutsummaryrefslogtreecommitdiff
path: root/matrix/ext/pushrules.go
diff options
context:
space:
mode:
authorTulir Asokan <tulir@maunium.net>2018-03-21 20:01:52 +0200
committerTulir Asokan <tulir@maunium.net>2018-03-21 20:01:52 +0200
commitb4902d4edb27baf59b21747117d93db4e0e4e96c (patch)
tree5779f4e1e2aad23e46e1b57a84b1cee2b311ab3c /matrix/ext/pushrules.go
parentefbce4c363b743817b4a368d6011c7aac9b8b176 (diff)
Clear push rules when clearing cache and listen to push rule updates
Diffstat (limited to 'matrix/ext/pushrules.go')
-rw-r--r--matrix/ext/pushrules.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/matrix/ext/pushrules.go b/matrix/ext/pushrules.go
index c156873..ccccbb0 100644
--- a/matrix/ext/pushrules.go
+++ b/matrix/ext/pushrules.go
@@ -26,6 +26,22 @@ func GetScopedPushRules(client *gomatrix.Client, scope string) (resp *PushRulese
return
}
+func EventToPushRules(event *gomatrix.Event) (*PushRuleset, error) {
+ content, _ := event.Content["global"]
+ raw, err := json.Marshal(content)
+ if err != nil {
+ return nil, err
+ }
+
+ ruleset := &PushRuleset{}
+ err = json.Unmarshal(raw, ruleset)
+ if err != nil {
+ return nil, err
+ }
+
+ return ruleset, nil
+}
+
type PushRuleset struct {
Override PushRuleArray
Content PushRuleArray