wouterbulten/slacjs

View on GitHub
src/app/device/data-storage.js

Summary

Maintainability
A
1 hr
Test Coverage
class DataStore {

    constructor() {

    }

    save(data) {

        data = 'SlacJsData =  ' + JSON.stringify(data) + ';';

        /*
        global window
         */
        window.resolveLocalFileSystemURL(this._storageDir(), function(dir) {
            console.log("Got main dir " + dir.fullPath);
            dir.getFile("slac_datafile_" + (new Date).getTime() + ".json", {create:true}, function(file) {
                console.log("Got file object " + file);

                file.createWriter(function(fileWriter) {

                    fileWriter.seek(fileWriter.length);
                    fileWriter.write(data);
                    console.log("Saved to " + fileWriter.fileName);

                    navigator.notification.alert(
                        'Data saved!',
                        null,
                        'Status',
                        'Ok'
                    );

                }, function(error) {
                    navigator.notification.alert(
                    'Could not save data with error code: ' + error.code,
                    null,
                    'Status',
                    'Sorry!')
                });
            });
        }, function(error) {
            navigator.notification.alert(
            'Could not save data with error code: ' + error.code,
            null,
            'Status',
            'Sorry!')
        });

    }

    /**
     * Return the storage dir based on the platform
     * @return {String}
     */
    _storageDir() {

        /*
        global device, cordova
         */
        switch(device.platform) {
            case "iOS":
                return cordova.file.documentsDirectory;

            case "Android":
            case "android":
                return cordova.file.externalDataDirectory;

            default:
                navigator.notification.alert(
                    'Unsupported platform for data store: ' + device.platform,
                    null,
                    'Status',
                    'Sorry!')
                console.error('[SLACjs] Unsupported platform for data store.');
        }
    }
}

export default DataStore;