﻿"use strict";

// Data service for supplying config related REST data
app.factory("configDataService", ["$http", "ngAuthSettings", "$q", function ($http, ngAuthSettings, $q) {
    var configDataFactory = {};
    var cachedResults = null;

    var _getAppConfig = function () {
        return $http.get(ngAuthSettings.apiServiceBaseUri + "/config").then(function (results) {
            cachedResults = results;
            return results;
        });
    };

    var _getCachedConfig = function () {
        var deferred = $q.defer();

        if (cachedResults) {
            deferred.resolve(cachedResults);
        } else {
            _getAppConfig().then(function (results) {
                cachedResults = results;
                deferred.resolve(results);
            });
        }


        return deferred.promise;
    };

    configDataFactory.getAppConfig = _getAppConfig;
    configDataFactory.getCachedConfig = _getCachedConfig;
    return configDataFactory;
}]);