diff --git a/README.md b/README.md index cb1e908..b284593 100755 --- a/README.md +++ b/README.md @@ -467,6 +467,26 @@ Generates the following response payload: } ``` +### `Boom.preconditionRequired([message], [data])` + +Returns a 428 Precondition Required error where: +- `message` - optional message. +- `data` - optional additional error data. + +```js +Boom.preconditionRequired('you must supply an If-Match header'); +``` + +Generates the following response payload: + +```json +{ + "statusCode": 428, + "error": "Precondition Required", + "message": "you must supply an If-Match header" +} +``` + ### `Boom.tooManyRequests([message], [data])` Returns a 429 Too Many Requests error where: diff --git a/lib/index.js b/lib/index.js index 239a441..18cf99b 100755 --- a/lib/index.js +++ b/lib/index.js @@ -253,6 +253,12 @@ exports.badData = function (message, data) { }; +exports.preconditionRequired = function (message, data) { + + return internals.create(428, message, data, exports.preconditionRequired); +}; + + exports.tooManyRequests = function (message, data) { return internals.create(429, message, data, exports.tooManyRequests); diff --git a/test/index.js b/test/index.js index 9ef8d0a..3f092ba 100755 --- a/test/index.js +++ b/test/index.js @@ -459,6 +459,22 @@ describe('badData()', function () { }); +describe('preconditionRequired()', function () { + + it('returns a 428 error statusCode', function (done) { + + expect(Boom.preconditionRequired().output.statusCode).to.equal(428); + done(); + }); + + it('sets the message with the passed in message', function (done) { + + expect(Boom.preconditionRequired('my message').message).to.equal('my message'); + done(); + }); +}); + + describe('tooManyRequests()', function () { it('returns a 429 error statusCode', function (done) {