summaryrefslogtreecommitdiffstats
path: root/plugin/hooks.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/hooks.go')
-rw-r--r--plugin/hooks.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/plugin/hooks.go b/plugin/hooks.go
index 814609e8c..e41081e48 100644
--- a/plugin/hooks.go
+++ b/plugin/hooks.go
@@ -36,4 +36,37 @@ type Hooks interface {
// ExecuteCommand executes a command that has been previously registered via the RegisterCommand
// API.
ExecuteCommand(args *model.CommandArgs) (*model.CommandResponse, *model.AppError)
+
+ // MessageWillBePosted is invoked when a message is posted by a user before it is commited
+ // to the database. If you also want to act on edited posts, see MessageWillBeUpdated.
+ // Return values should be the modified post or nil if rejected and an explanation for the user.
+ //
+ // If you don't need to modify or reject posts, use MessageHasBeenPosted instead.
+ //
+ // Note that this method will be called for posts created by plugins, including the plugin that
+ // created the post.
+ MessageWillBePosted(post *model.Post) (*model.Post, string)
+
+ // MessageWillBeUpdated is invoked when a message is updated by a user before it is commited
+ // to the database. If you also want to act on new posts, see MessageWillBePosted.
+ // Return values should be the modified post or nil if rejected and an explanation for the user.
+ // On rejection, the post will be kept in its previous state.
+ //
+ // If you don't need to modify or rejected updated posts, use MessageHasBeenUpdated instead.
+ //
+ // Note that this method will be called for posts updated by plugins, including the plugin that
+ // updated the post.
+ MessageWillBeUpdated(newPost, oldPost *model.Post) (*model.Post, string)
+
+ // MessageHasBeenPosted is invoked after the message has been commited to the databse.
+ // If you need to modify or reject the post, see MessageWillBePosted
+ // Note that this method will be called for posts created by plugins, including the plugin that
+ // created the post.
+ MessageHasBeenPosted(post *model.Post)
+
+ // MessageHasBeenUpdated is invoked after a message is updated and has been updated in the databse.
+ // If you need to modify or reject the post, see MessageWillBeUpdated
+ // Note that this method will be called for posts created by plugins, including the plugin that
+ // created the post.
+ MessageHasBeenUpdated(newPost, oldPost *model.Post)
}