/* Copyright CloudLinux Zug GmbH 2010-2017 All Rights Reserved
 *
 * Licensed under CLOUD LINUX LICENSE AGREEMENT
 * http://cloudlinux.com/docs/LICENSE.TXT
 */

import {Injectable} from '@angular/core';
import {OWNER_RESELLER, OWNER_ADMIN, OWNER_USER} from './access';
import {AppState} from '../app.service';


@Injectable()
export class MockService {

    public mockMapping = {
        'cloudlinux-charts': [OWNER_RESELLER],
        'cloudlinux-statistics-by-id': [OWNER_RESELLER],
        // 'cloudlinux-selector-get-nodejs': [OWNER_ADMIN],
        // 'cloudlinux-selector-get-nodejs2': [OWNER_ADMIN],
        // 'cloudlinux-selector-remove-nodejs-version': [OWNER_ADMIN],
        // 'cloudlinux-selector-install-nodejs-version': [OWNER_ADMIN],
        // 'cloudlinux-selector-switch-nodejs-version': [OWNER_ADMIN],
        // 'cloudlinux-selector-move-nodejs-version': [OWNER_ADMIN],
        // 'cloudlinux-selector-make-default-version': [OWNER_ADMIN],
        // 'cloudlinux-selector-selector-status': [OWNER_ADMIN],
        // 'cloudlinux-selector-new-version': [OWNER_ADMIN],
        // 'cloudlinux-selector-get-application-list': [OWNER_USER],
        // 'cloudlinux-selector-get-application-list2': [OWNER_USER],
        // 'success-result': [OWNER_ADMIN, OWNER_USER],
    };

    public availableEnv = ['development'];

    constructor(public appState: AppState) {}

    processRequest(mockJson, params) {
        if (mockJson !== '' && this.availableEnv.includes(process.env.ENV)
            && this.mockMapping.hasOwnProperty(mockJson)
            && this.mockMapping[mockJson].includes(this.appState.get('userType'))
        ) {
            params['mockJson'] = mockJson;
            console.log('===>', 'Warning, command ' + params['command']
                + ' is mocked!!!');
        }
    }
}
