From f27cc63d1079e1dded285fbec6a7f86a12209574 Mon Sep 17 00:00:00 2001 From: Rares Golea Date: Wed, 13 Jan 2016 10:33:35 +0100 Subject: [PATCH 1/3] Removed semicolon --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index d36b567..e416043 100644 --- a/index.js +++ b/index.js @@ -109,7 +109,7 @@ Fileupload.prototype.handle = function (ctx, next) { if (this.config.authorization && me) { uploaderId = me.id; - }; + } // Will send the response if all files have been processed var processDone = function(err) { From c4e52f1c17acfad9bdc655532d2aba7719c16c01 Mon Sep 17 00:00:00 2001 From: Rares Golea Date: Wed, 13 Jan 2016 10:51:04 +0100 Subject: [PATCH 2/3] Added a beforerequest and aftercommit events --- index.js | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/index.js b/index.js index e416043..555fa6b 100644 --- a/index.js +++ b/index.js @@ -55,7 +55,7 @@ function Fileupload(options) { util.inherits(Fileupload, Resource); Fileupload.label = "File upload"; -Fileupload.events = ["get", "upload", "delete"]; +Fileupload.events = ["get", "upload", "delete", "beforeRequest", "afterCommit"]; Fileupload.prototype.clientGeneration = true; Fileupload.basicDashboard = { settings: [ @@ -86,6 +86,16 @@ Fileupload.basicDashboard = { * Module methods */ Fileupload.prototype.handle = function (ctx, next) { + + if (this.events.beforeRequest) { + this.events.beforeRequest.run(ctx, { + url: ctx.url, + filename: ctx.url + }, function (err) { + if (err) return ctx.done(err); + }); + } + var req = ctx.req, self = this, domain = {url: ctx.url}; @@ -112,13 +122,23 @@ Fileupload.prototype.handle = function (ctx, next) { } // Will send the response if all files have been processed - var processDone = function(err) { - if (err) return ctx.done(err); - remainingFile--; - if (remainingFile === 0) { - debug("Response sent: ", resultFiles); - return ctx.done(null, resultFiles); - } + var processDone = function (err) { + if (err) return ctx.done(err); + remainingFile--; + if (remainingFile === 0) { + debug("Response sent: ", resultFiles); + if (self.events.afterCommit) { + self.events.afterCommit.run(ctx, { + url: ctx.url, + result: resultFiles, + }, function (err) { + if (err) return ctx.done(err); + return ctx.done(null, resultFiles); + }); + } else { + return ctx.done(null, resultFiles); + } + } }; // If we received params from the request From 267617dcf07e9ca8f8f97d5457d1fcddd2677509 Mon Sep 17 00:00:00 2001 From: Rares Golea Date: Mon, 18 Jan 2016 22:49:54 +0100 Subject: [PATCH 3/3] Saving after the aftercommit event --- index.js | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/index.js b/index.js index 342fb5c..2c58165 100644 --- a/index.js +++ b/index.js @@ -177,19 +177,20 @@ Fileupload.prototype.handle = function (ctx, next) { // Store MIME type in object ctx.body.type = mime.lookup(file.name); - self.save(ctx, processDone); - if (self.events.afterCommit) { - self.events.afterCommit.run(ctx, { - url: ctx.url, - result: resultFiles, - }, function (err) { - if (err) return ctx.done(err); - return ctx.done(null, resultFiles); - }); - } else { - return ctx.done(null, resultFiles); - } + self.events.afterCommit.run(ctx, { + url: ctx.url, + result: resultFiles, + }, function (err) { + if (err) return ctx.done(err); + return ctx.done(null, resultFiles); + }); + + self.save(ctx, processDone); + } else { + self.save(ctx, processDone); + return ctx.done(null, resultFiles); + } }); };