diff options
Diffstat (limited to 'lib/UpdateHandlers.js')
-rw-r--r-- | lib/UpdateHandlers.js | 41 |
1 files changed, 2 insertions, 39 deletions
diff --git a/lib/UpdateHandlers.js b/lib/UpdateHandlers.js index 6483020..2b920d2 100644 --- a/lib/UpdateHandlers.js +++ b/lib/UpdateHandlers.js @@ -5,8 +5,7 @@ var doc = require('dynamodb-doc'); var dynamo = new doc.DynamoDB(); var PodcastView = require('./PodcastView'); - -var DDB_EPISODES_TABLE = 'podcast-episodes'; +var PodcastEpisode = require('./PodcastEpisode'); exports.handleViewUpdate = function(event, context) { // Handle dynamo event for the views table. @@ -125,7 +124,7 @@ exports.handleEpisodeUpdate = function(event, context) { }; function renderViewsForFeed(feedId, callback) { - getEpisodesForFeed(feedId, function(error, episodes) { + PodcastEpisode.getEpisodesForFeed(feedId, function(error, episodes) { if (error) { callback(error); return; @@ -162,39 +161,3 @@ function renderViewsForFeed(feedId, callback) { }); }); } - -function getEpisodesForFeed(feedId, callback, startKey, episodes) { - var params = { - TableName: DDB_EPISODES_TABLE, - ConsistentRead: true, - KeyConditionExpression: "feedId = :feedId", - ExpressionAttributeValues: { - ':feedId': feedId - } - }; - - if (startKey) { - params['ExclusiveStartKey'] = startKey; - } - - dynamo.query(params, function(error, data) { - if (error != null) { - callback(error); - return; - } - - if (!episodes) { - episodes = data.Items; - } else { - episodes = episodes.concat(data.Items); - } - - // If this is not the last set of responses, get more. - var lastKey = data.LastEvaluatedKey; - if (lastKey) { - getEpisodesForFeed(feedId, callback, lastKey, episodes); - } else { - callback(null, episodes); - } - }); -} |