delta-store
Version:
An API for a store with change records
63 lines • 2.56 kB
JavaScript
/**
* Created by Papa on 1/3/2016.
*/
;
var GoogleApi_1 = require("../GoogleApi");
var GoogleDriveModel_1 = require("./GoogleDriveModel");
var GoogleDriveModel_2 = require("./GoogleDriveModel");
var GoogleDriveAdaptor = (function () {
function GoogleDriveAdaptor(googleApi, googleDrive) {
this.googleApi = googleApi;
this.googleDrive = googleDrive;
}
GoogleDriveAdaptor.prototype.initialize = function (apiKey, clientId) {
var _this = this;
return this.googleApi.authorizeApis(apiKey, clientId, GoogleApi_1.ApiConstants.ALL_SCOPES).then(function () {
var loadRequests = [
_this.googleApi.loadApi('drive', GoogleDriveModel_1.DriveConstants.VERSION),
_this.googleApi.loadApi('drive-realtime,drive-share')
];
return Promise.all(loadRequests);
});
};
GoogleDriveAdaptor.prototype.setup = function (setupInfo) {
return this.googleDrive.findOrCreateUniqueFolder(setupInfo.rootFolder);
};
GoogleDriveAdaptor.prototype.listChangeLists = function (info) {
return this.googleDrive.listFiles(info.sharedAppFolderId).then(function (response) {
var files = response.result.files;
if (!files || files.length === 0) {
return [];
}
var shares = [];
files.forEach(function (file) {
shares.push({
name: file.name,
dbId: info.dbIdField,
folderId: file.id
});
});
return shares;
});
};
GoogleDriveAdaptor.prototype.populateChangeListFileInfo = function (changeListInfo) {
return this.googleDrive.listFiles(changeListInfo.folderId).then(function (response) {
var files = response.result.files;
if (!files || files.length === 0) {
return changeListInfo;
}
files.forEach(function (file) {
if (file.mimeType.indexOf(GoogleDriveModel_2.MimeTypes.REALTIME) === 0) {
if (changeListInfo.realtimeFileId) {
throw "Multiple Realtime files found for Change List: " + changeListInfo.name;
}
changeListInfo.realtimeFileId = file.id;
}
});
return changeListInfo;
});
};
return GoogleDriveAdaptor;
}());
exports.GoogleDriveAdaptor = GoogleDriveAdaptor;
//# sourceMappingURL=GoogleDriveAdaptor.js.map