aboutsummaryrefslogtreecommitdiff
path: root/src/server/apis/google/GooglePhotosUploadUtils.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/apis/google/GooglePhotosUploadUtils.ts')
-rw-r--r--src/server/apis/google/GooglePhotosUploadUtils.ts51
1 files changed, 22 insertions, 29 deletions
diff --git a/src/server/apis/google/GooglePhotosUploadUtils.ts b/src/server/apis/google/GooglePhotosUploadUtils.ts
index 3989590c6..e640f2a85 100644
--- a/src/server/apis/google/GooglePhotosUploadUtils.ts
+++ b/src/server/apis/google/GooglePhotosUploadUtils.ts
@@ -40,7 +40,7 @@ export namespace GooglePhotosUploadUtils {
};
export const DispatchGooglePhotosUpload = async (url: string) => {
- const body = await request(url, { encoding: null }).catch(error => console.log("Error in streaming body!", error));
+ const body = await request(url, { encoding: null });
const parameters = {
method: 'POST',
headers: {
@@ -57,37 +57,30 @@ export namespace GooglePhotosUploadUtils {
return reject(error);
}
resolve(body);
- }).catch(error => console.log("Error in literal uploading process to Google's servers!", error))).catch(error => console.log("Error in literal uploading process to Google's servers!", error));
+ }));
};
export const CreateMediaItems = async (newMediaItems: NewMediaItem[], album?: { id: string }): Promise<MediaItemCreationResult> => {
- const newMediaItemResults: NewMediaItemResult[] = [];
- await newMediaItems.batch({
- size: 50,
- action: {
- handler: async (batch: NewMediaItem[]) => {
- console.log(batch.length);
- const parameters = {
- method: 'POST',
- headers: headers('json'),
- uri: prepend('mediaItems:batchCreate'),
- body: { newMediaItems: batch } as any,
- json: true
- };
- album && (parameters.body.albumId = album.id);
- newMediaItemResults.push(...(await new Promise<MediaItemCreationResult>((resolve, reject) => {
- request(parameters, (error, _response, body) => {
- if (error) {
- reject(error);
- } else {
- resolve(body);
- }
- });
- })).newMediaItemResults);
- },
- interval: 1000
- }
- });
+ const createFromUploadTokens = async (batch: NewMediaItem[]) => {
+ const parameters = {
+ method: 'POST',
+ headers: headers('json'),
+ uri: prepend('mediaItems:batchCreate'),
+ body: { newMediaItems: batch } as any,
+ json: true
+ };
+ album && (parameters.body.albumId = album.id);
+ return (await new Promise<MediaItemCreationResult>((resolve, reject) => {
+ request(parameters, (error, _response, body) => {
+ if (error) {
+ reject(error);
+ } else {
+ resolve(body);
+ }
+ });
+ })).newMediaItemResults;
+ };
+ const newMediaItemResults = await newMediaItems.batchAction(50, createFromUploadTokens, 1000);
return { newMediaItemResults };
};