4.1.0 • Published 7 years ago

hapi-stateless-notifications v4.1.0

Weekly downloads
10
License
ISC
Repository
github
Last release
7 years ago

hapi-stateless-notifications

A plugin to handle saving notifications to pass to a following page, so you can redirect after post and all those niceties without having to fall back to session-associated flash messages.

Use

// step 0: set up a plugin that gives a request.redis property that's a
// client connection, ready to use for this request. We steal the
// connection from `catbox-redis`.

server.register({
    register: require('hapi-stateless-notifications'),
    options: {
        queryParameter: 'notice',
        prefix: 'notice:',
        timeout: 3600
    }
});

The options are optional.

options.queryParameter controls which query parameter will cause the plugin to look up a token and defaults to 'notice' options.prefix controls the key prefix in redis, and defaults to 'notice:' options.timeout controls the the expiration timeout of the key in redis, in seconds. The default is 3600, that is, one hour.

Then in a handler:

reply.saveNotifications([
    Promise.resolve('Success message here ...'),
    Promise.reject(new Error('Error message here ...')),
]).then(function (token) {
    // if there's a token, put it in the query of the page you load next as `notice={token}`
    // Otherwise, there's nothing to do.
});

Or more completely:

reply.redirectAndNotify([
    Promise.resolve('Success message here ...'),
    Promise.reject(new Error('Error message here ...')),
], '/next-page')

or if the failure path leads a different place:

reply.redirectAndNotify([
    Promise.resolve('Success message here ...'),
    Promise.reject(new Error('Error message here ...')),
], { success: '/next-page', failure: '/this-page' })
4.1.0

7 years ago

4.0.1

7 years ago

4.0.0

7 years ago

3.1.1

8 years ago

3.1.0

8 years ago

3.0.0

8 years ago

2.1.0

8 years ago

1.2.1

8 years ago

1.2.0

9 years ago

1.1.1

9 years ago

1.1.0

9 years ago

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago