/**
 * Copyright © Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
define(
    ['uiRegistry'],
    function (registry) {
        'use strict';

        var config = registry.get('amazonPay') || {};

        return {
            /**
             * @returns {string}
             */
            getCode: function () {
                return this.getValue('code');
            },

            /**
             * @returns {string}
             */
            getVaultCode: function () {
                return this.getValue('vault_code');
            },

            /**
             * Get config value
             */
            getValue: function (key, defaultValue) {
                if (config.hasOwnProperty(key)) {
                    return config[key];
                } else if (defaultValue !== undefined) {
                    return defaultValue;
                }
            },

            /**
             * Is amazonPay defined?
             */
            isDefined: function () {
                return registry.get('amazonPay') !== undefined;
            }

        };
    }
);
