diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2015-08-16 15:27:15 -0700 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2015-08-16 15:27:15 -0700 |
commit | 686cdf055174044cbd037327418efbe91beb7131 (patch) | |
tree | 3eba0c0fc0c260705e0b966c8c9c7a4a772a2f4d /lib/PodcastView.js | |
parent | 3c453d2056a067aebb60d13987b4a3a2ea4a9f86 (diff) |
Adding more tests for PodcastView.
Diffstat (limited to 'lib/PodcastView.js')
-rw-r--r-- | lib/PodcastView.js | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/lib/PodcastView.js b/lib/PodcastView.js index 1236abd..a760371 100644 --- a/lib/PodcastView.js +++ b/lib/PodcastView.js @@ -91,22 +91,43 @@ function forEachView(feedId, callback, startKey) { } PodcastView.prototype.render = function(episodes, callback) { + var bucket = this.bucket; + var filenameTemplate = this.filenameTemplate; var template = this.template; var data = { view: this, episodes: episodes, - }; - var renderedView = _.template(template)(data); - - saveView(renderedView, callback); + }; + + if (this.renderEach) { + var remainingEpisodes = episodes.length; + var uploadCallback = function(error) { + remainingEpisodes--; + if (remainingEpisodes == 0 || error != null) { + callback(error); + } + }; + + episodes.forEach(function(episode) { + data['episode'] = episode; + + var filename = _.template(filenameTemplate)(data); + var renderedView = _.template(template)(data); + saveView(bucket, filename, renderedView, uploadCallback); + }); + } else { + var filename = _.template(filenameTemplate)(data); + var renderedView = _.template(template)(data); + saveView(bucket, filename, renderedView, callback); + } }; -function saveView(renderedView, callback) { +function saveView(bucket, filename, renderedView, callback) { var params = { - Bucket: this.bucket, - Key: this.key, - Body: renderedView + Bucket: bucket, + Key: filename, + Body: renderedView, }; s3.putObject(params, callback); |