aboutsummaryrefslogtreecommitdiff
path: root/src/server/apis/google
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/apis/google')
-rw-r--r--src/server/apis/google/GoogleApiServerUtils.ts13
-rw-r--r--src/server/apis/google/GooglePhotosUploadUtils.ts20
2 files changed, 14 insertions, 19 deletions
diff --git a/src/server/apis/google/GoogleApiServerUtils.ts b/src/server/apis/google/GoogleApiServerUtils.ts
index edfd89de4..2c9085ebb 100644
--- a/src/server/apis/google/GoogleApiServerUtils.ts
+++ b/src/server/apis/google/GoogleApiServerUtils.ts
@@ -48,7 +48,7 @@ export namespace GoogleApiServerUtils {
export const GetEndpoint = async (sector: string, paths: CredentialPaths) => {
return new Promise<Opt<Endpoint>>(resolve => {
- RetrieveAuthenticationInformation(paths).then(authentication => {
+ RetrieveCredentials(paths).then(authentication => {
let routed: Opt<Endpoint>;
let parameters: EndpointParameters = { auth: authentication.client, version: "v1" };
switch (sector) {
@@ -64,7 +64,7 @@ export namespace GoogleApiServerUtils {
});
};
- export const RetrieveAuthenticationInformation = async (paths: CredentialPaths) => {
+ export const RetrieveCredentials = async (paths: CredentialPaths) => {
return new Promise<TokenResult>((resolve, reject) => {
readFile(paths.credentials, async (err, credentials) => {
if (err) {
@@ -76,6 +76,15 @@ export namespace GoogleApiServerUtils {
});
};
+ export const RetrieveAccessToken = async (paths: CredentialPaths) => {
+ return new Promise<string>((resolve, reject) => {
+ RetrieveCredentials(paths).then(
+ credentials => resolve(credentials.token.access_token!),
+ error => reject(`Error: unable to authenticate Google Photos API request.\n${error}`)
+ );
+ });
+ };
+
type TokenResult = { token: Credentials, client: OAuth2Client };
/**
* Create an OAuth2 client with the given credentials, and returns the promise resolving to the authenticated client
diff --git a/src/server/apis/google/GooglePhotosUploadUtils.ts b/src/server/apis/google/GooglePhotosUploadUtils.ts
index 2e1599aaf..b358f9698 100644
--- a/src/server/apis/google/GooglePhotosUploadUtils.ts
+++ b/src/server/apis/google/GooglePhotosUploadUtils.ts
@@ -5,38 +5,24 @@ export namespace GooglePhotosUploadUtils {
interface UploadInformation {
title: string;
- url: URL;
+ MEDIA_BINARY_DATA: string;
}
const apiEndpoint = "https://photoslibrary.googleapis.com/v1/uploads";
export const SubmitUpload = async (parameters: Authorization & UploadInformation) => {
- let MEDIA_BINARY_DATA = binary(parameters.url.href);
-
let options = {
headers: {
'Content-Type': 'application/octet-stream',
- Authorization: { 'bearer': parameters.token },
+ auth: { 'bearer': parameters.token },
'X-Goog-Upload-File-Name': parameters.title,
'X-Goog-Upload-Protocol': 'raw'
},
- body: { MEDIA_BINARY_DATA },
+ body: { MEDIA_BINARY_DATA: parameters.MEDIA_BINARY_DATA },
json: true
};
const result = await request.post(apiEndpoint, options);
return result;
};
- const binary = (source: string) => {
- const image = document.createElement("img");
- image.src = source;
- const canvas = document.createElement("canvas");
- canvas.width = image.width;
- canvas.height = image.height;
- const ctx = canvas.getContext("2d")!;
- ctx.drawImage(image, 0, 0);
- const dataUrl = canvas.toDataURL("image/png");
- return dataUrl.replace(/^data:image\/(png|jpg);base64,/, "");
- };
-
} \ No newline at end of file