/* 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 {XHR} from "../utils/xhr";
import {AppState} from '../app.service';
import {Package} from '../model/package';

@Injectable()
export class PackagesRepo{
  private command: string = 'cloudlinux-packages';
  private testMode: boolean = false;

  constructor(private request: XHR, private appState: AppState) {}

  getAllPackages(){
      return this.request.post({
          command: this.command,
          method: 'get',
        });
  }

  getPackage(package_name: any, provider: any) {
      let params = {'package': package_name};

      if (this.appState.get('isAdmin')) {
        params['provider'] = provider;
      }
      /**
       * if (this.appState.get('isReseller') => --for-reseller
       * will be added automatically
       */
      return this.request.post({
        command: this.command,
        method: 'get',
        params: params
      });
  }

  savePackage(pckg: Package, params: {}) {
      if (this.appState.get('isAdmin')) {
          params['provider'] = pckg.provider;
      }
      /**
       * if (this.appState.get('isReseller')) => --for-reseller
       * will be added automatically because it is conflicted with --provider
       */
      params['package'] = pckg.package_name;

      return this.request.post({
        command: this.command,
        method: 'set',
        params: params,
      });
  }

}
