Skip to content

Commit

Permalink
Update to Google API to Version 39
Browse files Browse the repository at this point in the history
  • Loading branch information
NorthernMan54 committed Sep 9, 2019
1 parent 978aa54 commit 510bdfb
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 69 deletions.
129 changes: 62 additions & 67 deletions lib/googleDrive.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
var debug = require('debug')('FakeGatoStorageDrive');
var fs = require('fs');
var readline = require('readline');
var google = require('googleapis');
var googleAuth = require('google-auth-library');

const {google} = require('googleapis');
var path = require('path');
var os = require('os');

Expand Down Expand Up @@ -36,7 +36,7 @@ function drive(params) {
}
// Authorize a client with the loaded credentials, then call the
// Drive API.
authorize(JSON.parse(content), function (authenticated) {
authorize(JSON.parse(content), function(authenticated) {

auth = authenticated;
debug("Authenticated", content, params);
Expand All @@ -51,49 +51,47 @@ function drive(params) {
}
});
});


}

drive.prototype.writeFile = function (folder, name, data, cb) {
drive.prototype.writeFile = function(folder, name, data, cb) {
// get folder ID
if (auth) {
if (this.updating !== true) {
this.updating = true;
// debug("getFolder",folder);
getFolder(folder, function (err, folder) {
// debug("upload",name);
// debug("getFolder",folder);
getFolder(folder, function(err, folder) {
// debug("upload",name);
if (err) {
debug("writeFile - Can't get folder", err);
this.updating = false;
cb();
} else {
myUploadFile(folder, name, data, function () {
myUploadFile(folder, name, data, function() {
this.updating = false;
cb(arguments);
}.bind(this));
}
}.bind(this));
} else {
setTimeout(function () {
setTimeout(function() {
this.writeFile(folder, name, data, cb);
}.bind(this), 100);
}
} else {
debug("NO AUTH YET (Not normal)");
setTimeout(function () {
setTimeout(function() {
this.writeFile(folder, name, data, cb);
}.bind(this), 100);
}
};

drive.prototype.readFile = function (folder, name, cb) {
drive.prototype.readFile = function(folder, name, cb) {
if (auth) {
// debug("getFolder",folder);
getFolder(folder, function (err, folder) {
// debug("getFolder",folder);
getFolder(folder, function(err, folder) {
if (err) {
debug("getFolder retry %s/%s", folder, name);
setTimeout(function () {
setTimeout(function() {
this.readFile(folder, name, cb);
}.bind(this), 100);
} else {
Expand All @@ -103,22 +101,22 @@ drive.prototype.readFile = function (folder, name, cb) {
}.bind(this));
} else {
debug("NO AUTH YET (Not normal)");
setTimeout(function () {
setTimeout(function() {
this.readFile(folder, name, cb);
}.bind(this), 100);
}
};

drive.prototype.deleteFile = function (folder, name, cb) {
drive.prototype.deleteFile = function(folder, name, cb) {
if (auth) {
// debug("getFolder",folder);
getFolder(folder, function (err, folder) {
// debug("getFolder",folder);
getFolder(folder, function(err, folder) {
debug("delete", name);
myDeleteFile(folder, name, cb);
});
} else {
debug("NO AUTH YET (Not normal)");
setTimeout(function () {
setTimeout(function() {
this.deleteFile(folder, name, cb);
}.bind(this), 100);
}
Expand All @@ -132,17 +130,17 @@ function getFolder(folder, cb) {
fields: 'nextPageToken, files(id, name)',
spaces: 'drive',
auth: auth
}, function (err, res) {
}, function(err, res) {
if (err) {
debug("getFolder - err", err);
cb(err, folder);
} else {
if (res.files.length > 0) {
if (res.files.length > 1) {
debug("Multiple folders with same name, taking the first one", folder, 'in', res.files);
if (res.data.files.length > 0) {
if (res.data.files.length > 1) {
debug("Multiple folders with same name, taking the first one", folder, 'in', res.data.files);
}
// debug('Found Folder: ', res.files[0].name, res.files[0].id);
cb(null, res.files[0].id);
cb(null, res.data.files[0].id);
} else {
var fileMetadata = {
'name': folder,
Expand All @@ -152,7 +150,7 @@ function getFolder(folder, cb) {
resource: fileMetadata,
fields: 'id',
auth: auth
}, function (err, file) {
}, function(err, file) {
if (err) {
// Handle error
debug(err);
Expand All @@ -175,7 +173,7 @@ function getFileID(folder, name, cb) {
spaces: 'drive',
//parents: [folder],
auth: auth
}, function (err, result) {
}, function(err, result) {
// debug("GET FILE ID result",result,err);
cb(err, result);
});
Expand All @@ -192,14 +190,14 @@ function myUploadFile(folder, name, data, cb) {
mimeType: 'application/json',
body: JSON.stringify(data)
};
getFileID(folder, name, function (err, result) {
getFileID(folder, name, function(err, result) {
// debug("fileID for %s/%s is :",folder,name,result,err);
if (result && result.files && result.files.length > 0) {
if (result && result.data.files && result.data.files.length > 0) {
drive.files.update({
fileId: result.files[0].id,
fileId: result.data.files[0].id,
media: media,
auth: auth
}, function (err, file) {
}, function(err, file) {
if (err) {
debug('FILEUPDATE :', err);
} else {
Expand All @@ -214,7 +212,7 @@ function myUploadFile(folder, name, data, cb) {
media: media,
fields: 'id',
auth: auth
}, function (err, file) {
}, function(err, file) {
if (err) {
debug('FILECREATE :', file, err);
} else {
Expand All @@ -231,16 +229,16 @@ function myDownloadFile(folder, name, cb) {

debug("download file", folder, name);

getFileID(folder, name, function (err, result) {
if (result && result.files && result.files.length) {
if (result.files.length > 1) {
debug("Multiple files with same name, taking the first one", name, 'in', result.files);
getFileID(folder, name, function(err, result) {
if (result && result.data.files && result.data.files.length) {
if (result.data.files.length > 1) {
debug("Multiple files with same name, taking the first one", name, 'in', result.data.files);
}
drive.files.get({
fileId: result.files[0].id,
fileId: result.data.files[0].id,
alt: 'media',
auth: auth
}, function (err, success) {
}, function(err, success) {
if (err) debug("ERROR downloading", err);
else debug("SUCCESS downloading", success);
cb(err, success);
Expand All @@ -259,15 +257,15 @@ function myDeleteFile(folder, name, cb) {

debug("delete file", folder, name);

getFileID(folder, name, function (err, result) {
if (result && result.files && result.files.length) {
if (result.files.length > 1) {
debug("Multiple files with same name, taking the first one", name, 'in', result.files);
getFileID(folder, name, function(err, result) {
if (result && result.data.files && result.data.files.length) {
if (result.data.files.length > 1) {
debug("Multiple files with same name, taking the first one", name, 'in', result.data.files);
}
drive.files.delete({
fileId: result.files[0].id,
fileId: result.data.files[0].id,
auth: auth
}, function (err, success) {
}, function(err, success) {
if (err) debug("ERROR deleting", err);
else debug("SUCCESS deleting", success);
cb(err, success);
Expand All @@ -291,19 +289,16 @@ function myDeleteFile(folder, name, cb) {
* @param {function} callback The callback to call with the authorized client.
*/
function authorize(credentials, callback) {
var clientSecret = credentials.installed.client_secret;
var clientId = credentials.installed.client_id;
var redirectUrl = credentials.installed.redirect_uris[0];
var auth = new googleAuth();
var oauth2Client = new auth.OAuth2(clientId, clientSecret, redirectUrl);
const {client_secret, client_id, redirect_uris} = credentials.installed;
const oAuth2Client = new google.auth.OAuth2(client_id, client_secret, redirect_uris[0]);

// Check if we have previously stored a token.
fs.readFile(TOKEN_PATH, function (err, token) {
fs.readFile(TOKEN_PATH, function(err, token) {
if (err) {
getNewToken(oauth2Client, callback);
getNewToken(oAuth2Client, callback);
} else {
oauth2Client.credentials = JSON.parse(token);
callback(oauth2Client);
oAuth2Client.credentials = JSON.parse(token);
callback(oAuth2Client);
}
});
}
Expand All @@ -316,8 +311,8 @@ function authorize(credentials, callback) {
* @param {getEventsCallback} callback The callback to call with the authorized
* client.
*/
function getNewToken(oauth2Client, callback) {
var authUrl = oauth2Client.generateAuthUrl({
function getNewToken(oAuth2Client, callback) {
var authUrl = oAuth2Client.generateAuthUrl({
access_type: 'offline',
scope: SCOPES
});
Expand All @@ -326,16 +321,16 @@ function getNewToken(oauth2Client, callback) {
input: process.stdin,
output: process.stdout
});
rl.question('Enter the code from that page here: ', function (code) {
rl.question('Enter the code from that page here: ', function(code) {
rl.close();
oauth2Client.getToken(code, function (err, token) {
oAuth2Client.getToken(code, function(err, token) {
if (err) {
console.log('Error while trying to retrieve access token', err);
return;
}
oauth2Client.credentials = token;
oAuth2Client.credentials = token;
storeToken(token);
callback(oauth2Client);
callback(oAuth2Client);
});
});
}
Expand Down Expand Up @@ -371,7 +366,7 @@ function listFiles(auth) {
auth: auth,
pageSize: 30,
fields: "nextPageToken, files(id, name)"
}, function (err, response) {
}, function(err, response) {
if (err) {
console.log('The API returned an error: ' + err);
return;
Expand All @@ -392,18 +387,18 @@ function listFiles(auth) {
function uploadFile(auth) {
var drive = google.drive('v3');

var fetchPage = function (pageToken, pageFn, callback) {
var fetchPage = function(pageToken, pageFn, callback) {
drive.files.list({
q: "mimeType='application/vnd.google-apps.folder' and name = 'Camera Pictures'",
fields: 'nextPageToken, files(id, name)',
spaces: 'drive',
pageToken: pageToken,
auth: auth
}, function (err, res) {
}, function(err, res) {
if (err) {
callback(err);
} else {
res.files.forEach(function (file) {
res.files.forEach(function(file) {
debug('Found file: ', file.name, file.id);
});
if (res.nextPageToken) {
Expand All @@ -415,7 +410,7 @@ function uploadFile(auth) {
}
});
};
fetchPage(null, fetchPage, function (err) {
fetchPage(null, fetchPage, function(err) {
if (err) {
// Handle error
console.log(err);
Expand All @@ -436,7 +431,7 @@ function uploadFile(auth) {
resource: fileMetadata,
fields: 'id',
auth: auth
}, function (err, file) {
}, function(err, file) {
if (err) {
// Handle error
console.log(err);
Expand All @@ -457,7 +452,7 @@ function uploadFile(auth) {
media: media,
fields: 'id',
auth: auth
}, function (err, file) {
}, function(err, file) {
if (err) {
// Handle error
console.log(err);
Expand Down
3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@
},
"dependencies": {
"moment": "*",
"google-auth-library": "^0.10.0",
"googleapis": "^18.0.0",
"googleapis": ">39.0.0",
"debug": "^2.2.0"
},
"author": "simont77",
Expand Down

0 comments on commit 510bdfb

Please sign in to comment.