/* --------------------------------------------------------------
 configuration.js 2016-12-01
 Gambio GmbH
 http://www.gambio.de
 Copyright (c) 2016 Gambio GmbH
 Released under the GNU General Public License (Version 2)
 [http://www.gnu.org/licenses/gpl-2.0.html]
 --------------------------------------------------------------
 */

jse.libs.configuration = jse.libs.configuration || {};

/**
 * ## Configurations Library
 *
 * This library makes it possible to receive shop configuration values.
 *
 * @module JSE/Libs/datatable
 * @exports jse.libs.datatable
 */
(function (exports) {
    'use strict';

    /**
     * @type {String}
     */
    const pageToken = jse.core.config.get('pageToken');

    /**
     * @type {String}
     */
    const baseUrl = `${jse.core.config.get('appUrl')}/shop.php?do=JsConfiguration`;

    /**
     * Get the configuration value by the provided key.
     *
     * @param key Configuration key.
     *
     * @returns {Promise} The promise will be resolve with the configuration value.
     */
    exports.get = key => {
        return new Promise((resolve, reject) => {
            const url = `${baseUrl}/Get`;
            $.ajax({url, data: {key, pageToken}})
                .done(response => resolve(response))
                .fail(error => reject(error));
        });
    };

})(jse.libs.configuration);