diff --git a/lib/model/queue/Message.js b/lib/model/queue/Message.js index d3ebd56..5621dbb 100644 --- a/lib/model/queue/Message.js +++ b/lib/model/queue/Message.js @@ -23,7 +23,7 @@ class Message { this.timeNextVisible = now + parseInt(visibilityTimeout); this.messageId = uuidv4(); this.insertionTime = now; - this.popReceipt = uuidv4(); + this.popReceipt = undefined; this.dequeueCount = 0; } diff --git a/lib/model/queue/Queue.js b/lib/model/queue/Queue.js index 83e2d22..ced7fa2 100644 --- a/lib/model/queue/Queue.js +++ b/lib/model/queue/Queue.js @@ -21,6 +21,7 @@ class Queue { .slice(0, numOfMessages) .map((i) => { ++i.dequeueCount; + i.renewPopReceipt(); i.updateVisibilityTimeout(visibilityTimeout) return i; }); diff --git a/lib/routes/queue/MessageRoute.js b/lib/routes/queue/MessageRoute.js index 6fbbf5e..839567d 100644 --- a/lib/routes/queue/MessageRoute.js +++ b/lib/routes/queue/MessageRoute.js @@ -11,7 +11,7 @@ const env = require('./../../core/env'), * for details on specification. */ module.exports = (app) => { - app.route(`/${env.emulatedStorageAccountName}/:queue/messages/?*`) + app.route(`/${env.emulatedStorageAccountName}/:queue/messages/:messageId*?`) .get((req, res, next) => { if (req.query.peekonly === 'true') { req.azuriteOperation = Operations.Queue.PEEK_MESSAGES; @@ -37,7 +37,7 @@ module.exports = (app) => { }); }) .delete((req, res, next) => { - if (req.params.messageid) { + if (req.params.messageId) { req.azuriteOperation = Operations.Queue.DELETE_MESSAGE; } else { req.azuriteOperation = Operations.Queue.CLEAR_MESSAGES; diff --git a/lib/validation/queue/PopReceipt.js b/lib/validation/queue/PopReceipt.js index 9afb72c..48f3c1f 100644 --- a/lib/validation/queue/PopReceipt.js +++ b/lib/validation/queue/PopReceipt.js @@ -13,7 +13,7 @@ class PopReceipt { validate({ request = undefined }) { const msg = QueueManager.getQueueAndMessage({ queueName: request.queueName, messageId: request.messageId }).message; - if (msg.PopReceipt !== request.popReceipt) { + if (msg.popReceipt !== request.popReceipt) { throw new AError(ErrorCodes.PopReceiptMismatch); } } diff --git a/release-notes.md b/release-notes.md index bae6a89..70d536a 100644 --- a/release-notes.md +++ b/release-notes.md @@ -1,10 +1,11 @@ # 1.0 +## 1.4 +- fixes [#104](https://github.com/arafato/azurite/issues/104): Queue Storage: Adds support for DeleteMessage ## 1.3 ### 1.3.1 - fixes [#103](https://github.com/arafato/azurite/issues/103): Queue Storage: Adds support for PeekMessages - fixes [#105](https://github.com/arafato/azurite/issues/105): Queue Storage: Adds support for ClearMessages - fixes [#102](https://github.com/arafato/azurite/issues/102): Queue Storage: Adds support for GetMessages - - fixes [#101](https://github.com/arafato/azurite/issues/101): Queue Storage: Adds support for PutMessage ### 1.3.0 - fixes [#110](https://github.com/arafato/azurite/issues/110): fixed require directive for QueueManager