1
0
mirror of https://github.com/jhillyerd/inbucket.git synced 2025-12-17 17:47:03 +00:00

delete event: test lua func (#335)

* lua: tidy test helpers

Signed-off-by: James Hillyerd <james@hillyerd.com>

* lua: test after_message_deleted func

Signed-off-by: James Hillyerd <james@hillyerd.com>

---------

Signed-off-by: James Hillyerd <james@hillyerd.com>
This commit is contained in:
James Hillyerd
2023-02-14 10:56:43 -08:00
committed by GitHub
parent 69b6225554
commit de617b6a73
2 changed files with 98 additions and 24 deletions

View File

@@ -88,6 +88,7 @@ func (h *Host) CreateChannel(name string) chan lua.LValue {
return h.pool.createChannel(name)
}
const afterMessageDeletedFnName string = "after_message_deleted"
const afterMessageStoredFnName string = "after_message_stored"
const beforeMailAcceptedFnName string = "before_mail_accepted"
@@ -113,6 +114,9 @@ func (h *Host) wireFunctions(logger zerolog.Logger, ls *lua.LState) {
events := h.extHost.Events
const listenerName string = "lua"
if detectFn(afterMessageDeletedFnName) {
events.AfterMessageDeleted.AddListener(listenerName, h.handleAfterMessageDeleted)
}
if detectFn(afterMessageStoredFnName) {
events.AfterMessageStored.AddListener(listenerName, h.handleAfterMessageStored)
}
@@ -121,6 +125,25 @@ func (h *Host) wireFunctions(logger zerolog.Logger, ls *lua.LState) {
}
}
func (h *Host) handleAfterMessageDeleted(msg event.MessageMetadata) *extension.Void {
logger, ls, lfunc, ok := h.prepareFuncCall(afterMessageDeletedFnName)
if !ok {
return nil
}
defer h.pool.putState(ls)
// Call lua function.
logger.Debug().Msgf("Calling Lua function with %+v", msg)
if err := ls.CallByParam(
lua.P{Fn: lfunc, NRet: 0, Protect: true},
wrapMessageMetadata(ls, &msg),
); err != nil {
logger.Error().Err(err).Msg("Failed to call Lua function")
}
return nil
}
func (h *Host) handleAfterMessageStored(msg event.MessageMetadata) *extension.Void {
logger, ls, lfunc, ok := h.prepareFuncCall(afterMessageStoredFnName)
if !ok {