aboutsummaryrefslogtreecommitdiff
path: root/src/server/apis/google/GooglePhotosUploadUtils.ts
diff options
context:
space:
mode:
authoryipstanley <stanley_yip@brown.edu>2019-11-09 14:13:20 -0500
committeryipstanley <stanley_yip@brown.edu>2019-11-09 14:13:20 -0500
commit517bccdf0921169fd83312f3cedd044522a2398e (patch)
treed171ec7672230dded66606f8f7e25618b2e70338 /src/server/apis/google/GooglePhotosUploadUtils.ts
parentca406ddce0a9b35ca9063f74979c952e080339f1 (diff)
parent5c6dc8fb25c2ac65a9efa534ee86211ac6d68301 (diff)
Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web into inking_to_doc
Diffstat (limited to 'src/server/apis/google/GooglePhotosUploadUtils.ts')
-rw-r--r--src/server/apis/google/GooglePhotosUploadUtils.ts17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/server/apis/google/GooglePhotosUploadUtils.ts b/src/server/apis/google/GooglePhotosUploadUtils.ts
index 4a67e57cc..36256822c 100644
--- a/src/server/apis/google/GooglePhotosUploadUtils.ts
+++ b/src/server/apis/google/GooglePhotosUploadUtils.ts
@@ -1,7 +1,8 @@
+
import request = require('request-promise');
import { GoogleApiServerUtils } from './GoogleApiServerUtils';
import * as path from 'path';
-import { MediaItemCreationResult } from './SharedTypes';
+import { MediaItemCreationResult, NewMediaItemResult } from './SharedTypes';
import { NewMediaItem } from "../../index";
import { BatchedArray, TimeUnit } from 'array-batcher';
import { DashUploadUtils } from '../../DashUploadUtils';
@@ -56,10 +57,11 @@ export namespace GooglePhotosUploadUtils {
}));
};
- export const CreateMediaItems = async (newMediaItems: NewMediaItem[], album?: { id: string }): Promise<MediaItemCreationResult> => {
- const newMediaItemResults = await BatchedArray.from(newMediaItems, { batchSize: 50 }).batchedMapPatientInterval(
+ export const CreateMediaItems = async (newMediaItems: NewMediaItem[], album?: { id: string }): Promise<NewMediaItemResult[]> => {
+ const batched = BatchedArray.from(newMediaItems, { batchSize: 50 });
+ return batched.batchedMapPatientInterval(
{ magnitude: 100, unit: TimeUnit.Milliseconds },
- async (batch: NewMediaItem[]) => {
+ async (batch, collector) => {
const parameters = {
method: 'POST',
headers: headers('json'),
@@ -68,18 +70,17 @@ export namespace GooglePhotosUploadUtils {
json: true
};
album && (parameters.body.albumId = album.id);
- return (await new Promise<MediaItemCreationResult>((resolve, reject) => {
+ collector.push(...(await new Promise<NewMediaItemResult[]>((resolve, reject) => {
request(parameters, (error, _response, body) => {
if (error) {
reject(error);
} else {
- resolve(body);
+ resolve(body.newMediaItemResults);
}
});
- })).newMediaItemResults;
+ })));
}
);
- return { newMediaItemResults };
};
} \ No newline at end of file