emscripten Humble Cloud interface
Edward Rudd
2014-10-14 f2ce3720a275fc30d02b0799b959db2a1a297bcb

add in isAvailable method to cloud providers to validate IF the cloud service is available (e.g. user logged in)

2 files modified
21 ■■■■ changed files
client/library/library_cloudfs.js 18 ●●●● patch | view | raw | blame | history
humble_cloud/urkle_cloud.js 3 ●●●●● patch | view | raw | blame | history
client/library/library_cloudfs.js
@@ -6,9 +6,19 @@
            var provider = CLOUDFS.fetchProvider(mount);
            if (provider) {
                mount.opts.provider = provider;
                if (!mount.opts.scope) {
                  // backwards compat
                  mount.opts.scope = mount.opts.cloud.applicationtoken;
                }
                mount.opts.cloud.scope = mount.opts.scope;
                Module.print('Cloud provider vendor: ' + provider.vendor);
                if (!provider.isAvailable(mount.opts.cloud)) {
                  mount.opts.disabled = true;
                  Module.print("WARNING: Cloud not available. Disabling Cloud Sync");
                }
            } else {
                mount.opts.disabled = true;
                Module.print("WARNING: Cloud provider not available. Disabling Sync");
                Module.print("WARNING: Cloud provider not available. Disabling Cloud Sync");
            }
            return MEMFS.mount.apply(null, arguments);
        },
@@ -105,7 +115,7 @@
            var provider = CLOUD_PROVIDERS[provider_name];
            if (provider === undefined) return false;
            var requiredMethods = ['allFiles', 'read', 'write', 'rm'];
            var requiredMethods = ['allFiles', 'read', 'write', 'rm','isAvailable'];
            return requiredMethods.every(function(method) {
                return (method in provider);
            });
@@ -115,9 +125,7 @@
                return false;
            }
            if (CLOUDFS.validateProvider( mount.opts.provider ) ) {
                var provider = CLOUD_PROVIDERS[mount.opts.provider];
                Module.print('Cloud provider vendor: ' + provider.vendor);
                return provider;
                return CLOUD_PROVIDERS[mount.opts.provider];
            } else {
                return false;
            }
humble_cloud/urkle_cloud.js
@@ -78,6 +78,9 @@
        },
        rm: function(options, fileinfo, onsuccess, onerror) {
          xhrDELETE(settings.remoteAPIEndpoint + '/storage/files/' + fileinfo.path, onsuccess, onerror);
        },
        isAvailable: function(options) {
          return false;
        }
    };