aboutsummaryrefslogtreecommitdiff
path: root/src/server/index.ts
diff options
context:
space:
mode:
authorSam Wilkins <samwilkins333@gmail.com>2019-09-20 16:39:14 -0400
committerSam Wilkins <samwilkins333@gmail.com>2019-09-20 16:39:14 -0400
commit8d9c9d0f51be91ee10b631be9f464af0822bb9be (patch)
tree00bc3798f03be1531dea457184844bcc09290871 /src/server/index.ts
parentd66b51213e448d5f4f37781389af488a3ac744c4 (diff)
integrated with array batcher npm module
Diffstat (limited to 'src/server/index.ts')
-rw-r--r--src/server/index.ts36
1 files changed, 18 insertions, 18 deletions
diff --git a/src/server/index.ts b/src/server/index.ts
index e03079d66..12ceb9886 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -47,7 +47,7 @@ const mongoose = require('mongoose');
const probe = require("probe-image-size");
import * as qs from 'query-string';
import { Opt } from '../new_fields/Doc';
-import { batchedMapInterval, TimeUnit } from "array-batcher";
+import BatchedArray, { TimeUnit } from "array-batcher";
const download = (url: string, dest: fs.PathLike) => request.get(url).pipe(fs.createWriteStream(dest));
let youtubeApiKey: string;
@@ -841,25 +841,25 @@ app.post(RouteStore.googlePhotosMediaUpload, async (req, res) => {
let failed = 0;
- const dispatchUpload = async (batch: GooglePhotosUploadUtils.MediaInput[]) => {
- const newMediaItems: NewMediaItem[] = [];
- for (let element of batch) {
- const uploadToken = await GooglePhotosUploadUtils.DispatchGooglePhotosUpload(element.url);
- if (!uploadToken) {
- failed++;
- } else {
- newMediaItems.push({
- description: element.description,
- simpleMediaItem: { uploadToken }
- });
+ const newMediaItems = await BatchedArray.from(mediaInput).batchedMapInterval({
+ batcher: { batchSize: 25 },
+ interval: { magnitude: 100, unit: TimeUnit.Milliseconds },
+ converter: async (batch: GooglePhotosUploadUtils.MediaInput[]) => {
+ const newMediaItems: NewMediaItem[] = [];
+ for (let element of batch) {
+ const uploadToken = await GooglePhotosUploadUtils.DispatchGooglePhotosUpload(element.url);
+ if (!uploadToken) {
+ failed++;
+ } else {
+ newMediaItems.push({
+ description: element.description,
+ simpleMediaItem: { uploadToken }
+ });
+ }
}
+ return newMediaItems;
}
- return newMediaItems;
- };
- const batcher = { batchSize: 25 };
- const interval = { magnitude: 100, unit: TimeUnit.Milliseconds };
-
- const newMediaItems = await batchedMapInterval(mediaInput, batcher, dispatchUpload, interval);
+ });
if (failed) {
return _error(res, tokenError);