Example #1
0
import { Injectable } from '@angular/core';
import { Http, Headers, RequestOptions, Response, URLSearchParams } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/throw';

const baseUrl = 'https://api.mlab.com/api/1/databases/reits/collections';
const apiKey = 'EhpBOdclXrepXAuPKpXeijpuT19p2peh';

const headers = new Headers({ 'Content-Type': 'application/json' });
const params = new URLSearchParams();

params.set('apiKey', apiKey);

const options = new RequestOptions({
  headers: headers,
  search: params
});

const jsonResponse = ((response: Response) => response.json());
const jsonError = (error: Response) => {
  const json = error.json();
  json['status'] = error.status;
  return Observable.throw(json);
};

@Injectable()
export class ApiService {

  constructor(private http: Http) {}

  get(url: string): Observable<Response> {
Example #2
0
  outlier(configuration, inputs, cube) {
    const that = this;
    const body = new URLSearchParams();

    if (configuration.name === 'LOF_AGGREGATE') {
      body.set('BABBAGE_AGGREGATE_URI', inputs['BABBAGE_AGGREGATE_URI']);
    } else {
      body.set('BABBAGE_FACT_URI', inputs['BABBAGE_FACT_URI']);
    }


    return that.http.get(configuration.endpoint.toString(), {search: body}).map(res => {
      return res.json();
    }).mergeMap(resp => {


      const headersAdditional = new Headers;
      headersAdditional.append('Cache-control', 'no-cache');
      headersAdditional.append('Cache-control', 'no-store');
      headersAdditional.append('Expires', '0');
      headersAdditional.append('Pragma', 'no-cache');

      return this.http.get(environment.DAMUrl + '/results/' + resp.jobid, {'headers': headersAdditional})
        .map(res => {
          const response = res.json();

          if (!response.hasOwnProperty('result')) {
            throw new Error('ex');

          }
          if (configuration.name === 'LOF_FACTS' || configuration.name === 'LOF_AGGREGATE') {
            const values: any = response.result.result;
            return {values: values};

          } else {
            const values: any = response.result;
            const new_values = [];
            const mappings = {};

            Object.keys(values[0]).forEach(function (key) {
              mappings[key] = key;
              cube.model.dimensions.forEach(function (dimension) {
                dimension.significants.forEach(function (attribute) {
                  if (key === (dimension.ref + '_' + attribute.shortRef).toLowerCase()) {
                    mappings[key] = attribute.ref;
                  }
                });
              });
              cube.model.measures.forEach(function (measure) {
                if (key === (measure.ref).toLowerCase()) {
                  mappings[key] = 'Target';
                }
              })
            });
            values.forEach(function (value) {
              const new_value = {};
              Object.keys(value).forEach(function (key) {
                new_value[mappings[key]] = value[key];
              });
              new_values.push(new_value);
            });


            return {values: new_values};

          }


        }).retryWhen(function (attempts) {
          return Observable.range(1, environment.DAMretries).zip(attempts, function (i) {
            return i;
          }).flatMap(function (i) {
            console.log('delay retry by ' + i + ' second(s)');
            if (i === environment.DAMretries) {
              return Observable.throw(new JobTimeoutException);
            }
            return Observable.timer(i * environment.DAMpollingInitialStep);
          });
        });
    });


  }
Example #3
0
  timeseries(configuration, inputs) {
    const that = this;
    const body = new URLSearchParams('', new PureURIEncoder());
    body.set('amount', '\'' + inputs['amount'] + '\'');
    body.set('time', '\'' + inputs['time'] + '\'');
    body.set('prediction_steps', inputs['prediction_steps']);
    body.set('json_data', '\'' + (inputs['json_data']) + '\'');

    return that.http.post(configuration.endpoint.toString(), body).map(res => {
      const response = res.json();


      const forecasts = response['forecasts'];
      const values: any = [];
      for (let i = 0; i < forecasts.data_year.length; i++) {
        values.push({
          year: parseInt(forecasts.data_year[i], 10),
          amount: parseFloat(forecasts.data[i])
        });
      }
      for (let i = 0; i < forecasts.predict_time.length; i++) {
        const val: any = {
          year: parseInt(forecasts.predict_time[i], 10),
          amount: parseFloat(forecasts.predict_values[i])

        };


        if (!isNaN(forecasts.up80[i])) {
          val.up80 = parseFloat(forecasts.up80[i]);
        }
        if (!isNaN(forecasts.up95[i])) {
          val.up95 = parseFloat(forecasts.up95[i]);
        }
        if (!isNaN(forecasts.low80[i])) {
          val.low80 = parseFloat(forecasts.low80[i]);
        }
        if (!isNaN(forecasts.low95[i])) {
          val.low95 = parseFloat(forecasts.low95[i]);
        }

        values.push(val);
      }
      const acfRegular = response['acf.param']['acf.parameters'];
      const acfValues = [];

      for (let i = 0; i < acfRegular['acf.lag'].length; i++) {
        acfValues.push({
          lag: parseFloat(acfRegular['acf.lag'][i]),
          correlation: parseFloat(acfRegular['acf'][i])
        });
      }

      const pacfRegular = response['acf.param']['pacf.parameters'];
      const pacfValues = [];

      for (let i = 0; i < pacfRegular['pacf.lag'].length; i++) {
        pacfValues.push({
          lag: parseFloat(pacfRegular['pacf.lag'][i]),
          correlation: parseFloat(pacfRegular['pacf'][i])
        });
      }


      const acfResiduals = response['acf.param']['acf.residuals.parameters'];
      const acfResValues = [];

      for (let i = 0; i < acfResiduals['acf.residuals.lag'].length; i++) {
        acfResValues.push({
          lag: parseFloat(acfResiduals['acf.residuals.lag'][i]),
          correlation: parseFloat(acfResiduals['acf.residuals'][i])
        });
      }

      const pacfResiduals = response['acf.param']['pacf.residuals.parameters'];
      const pacfResValues = [];

      for (let i = 0; i < pacfResiduals['pacf.residuals.lag'].length; i++) {
        pacfResValues.push({
          lag: parseFloat(pacfResiduals['pacf.residuals.lag'][i]),
          correlation: parseFloat(pacfResiduals['pacf.residuals'][i])
        });
      }


      const stl_plot = response.decomposition['stl.plot'];
      const trends: any = [];
      for (let i = 0; i < stl_plot.time.length; i++) {
        const val: any = {
          year: parseInt(stl_plot.time[i], 10),
          amount: parseFloat(stl_plot.trend[i])
        };
        if (stl_plot['conf.interval.low']) {
          if (!isNaN(stl_plot['conf.interval.low'][i])) {
            val.low80 = parseFloat(stl_plot['conf.interval.low'][i]);
          }
        }
        if (stl_plot['conf.interval.up']) {
          if (!isNaN(stl_plot['conf.interval.up'][i])) {
            val.up80 = parseFloat(stl_plot['conf.interval.up'][i]);
          }
        }
        trends.push(val);
      }
      const seasonals: any = [];
      for (let i = 0; i < stl_plot.time.length; i++) {
        const val = {
          year: parseInt(stl_plot.time[i], 10),
          amount: parseFloat(stl_plot.seasonal[i])
        };

        seasonals.push(val);
      }
      const remainders: any = [];
      for (let i = 0; i < stl_plot.time.length; i++) {
        const val = {
          year: parseInt(stl_plot.time[i], 10),
          amount: parseFloat(stl_plot.remainder[i])
        };

        remainders.push(val);
      }


      const stl_general = response.decomposition['stl.general'];
      const compare = response.decomposition['compare'];

      const residuals = response.decomposition['residuals_fitted'];

      const fitted_residuals: any = [];
      for (let i = 0; i < residuals.fitted.length; i++) {
        const val = {
          year: parseFloat(residuals.fitted[i]),
          amount: parseFloat(residuals.residuals[i])
        };

        fitted_residuals.push(val);
      }


      const time_residuals: any = [];
      for (let i = 0; i < residuals.time.length; i++) {
        const val = {
          year: parseFloat(residuals.time[i]),
          amount: parseFloat(residuals.residuals[i])
        };

        time_residuals.push(val);
      }

      const time_fitted: any = [];
      for (let i = 0; i < residuals.time.length; i++) {
        const val = {
          year: parseFloat(residuals.time[i]),
          amount: parseFloat(residuals.fitted[i])
        };

        time_fitted.push(val);
      }


      const model_fitting = response['model.param'].residuals_fitted;
      const model_fitting_compare = response['model.param'].compare;
      const model = response['model.param'].model;

      const model_fitted_residuals: any = [];
      for (let i = 0; i < model_fitting.fitted.length; i++) {
        const val = {
          year: parseFloat(model_fitting.fitted[i]),
          amount: parseFloat(model_fitting.residuals[i])
        };

        model_fitted_residuals.push(val);
      }


      const model_time_residuals: any = [];
      for (let i = 0; i < model_fitting.time.length; i++) {
        const val = {
          year: parseFloat(model_fitting.time[i]),
          amount: parseFloat(model_fitting.residuals[i])
        };

        model_time_residuals.push(val);
      }

      const model_time_fitted: any = [];
      for (let i = 0; i < model_fitting.time.length; i++) {
        const val = {
          year: parseFloat(model_fitting.time[i]),
          amount: parseFloat(model_fitting.fitted[i])
        };

        model_time_fitted.push(val);
      }


      return {
        forecast: {
          values: values, model: forecasts['ts.model'][0]
        },
        autocorrelation: {
          acf: {
            regular: {
              values: acfValues,
              interval_up: acfRegular['confidence.interval.up'][0],
              interval_low: acfRegular['confidence.interval.low'][0]

            },
            residuals: {
              values: acfResValues,
              interval_up: acfResiduals['confidence.interval.up'][0],
              interval_low: acfResiduals['confidence.interval.low'][0]
            },
          },

          pacf: {
            regular: {
              values: pacfValues,
              interval_up: pacfRegular['confidence.interval.up'][0],
              interval_low: pacfRegular['confidence.interval.low'][0]
            },
            residuals: {
              values: pacfResValues,
              interval_up: pacfResiduals['confidence.interval.up'][0],
              interval_low: pacfResiduals['confidence.interval.low'][0]
            }
          }
        },
        decomposition: {
          trends: trends,
          remainders: remainders,
          seasonals: seasonals,
          time_fitted: time_fitted,
          time_residuals: time_residuals,
          fitted_residuals: fitted_residuals,
          general: stl_general,
          compare: compare,
          seasonal: Object.keys(stl_plot.seasonal).length > 0

        },
        fitting: {
          time_fitted: model_time_fitted,
          time_residuals: model_time_residuals,
          fitted_residuals: model_fitted_residuals,
          compare: model_fitting_compare,
          model: model
        }


      }
        ;
    });


  }
Example #4
0
 protected getParams():URLSearchParams{
     let params = new URLSearchParams();
     this._select && params.set("$select", this._select);
     this._expand && params.set("$expand", this._expand);
     return params;
 }
	getPerson(nhsNumber : string) : Observable<UIPatient> {
		var params = new URLSearchParams();
		params.append('nhsNumber', nhsNumber);

		return this.httpGet('api/recordViewer/getPerson', {search: params});
	}
	getServiceName(uuid : string) : Observable<string> {
		let params = new URLSearchParams();
		params.set('serviceId', uuid);
		return this.httpGet('api/recordViewer/getServiceName', {search: params});
	}
Example #7
0
    public params(object: Object) : URLSearchParams {
        let params: URLSearchParams = null;

        if (object) {
            let paramsLength = 0;
            params = new URLSearchParams();

            for (var key in object) {
                if (!object.hasOwnProperty(key)) {
                    continue;
                }

                var obj = object[key];

                if (obj === undefined || obj === null) {
                    continue;
                }


                if (key === 'ordenamiento' && typeof obj === "object") {

                    let fields = "";
                    let firstField = true;
                    for (var subKey in obj) {

                        if (!obj.hasOwnProperty(subKey)) {
                            continue;
                        }

                        let value = obj[subKey];

                        if (value === undefined) {
                            continue;
                        }

                        let prefix = firstField ? "" : ",";

                        let order = ""; //asc
                        if (obj[subKey] === false) {
                            order = "-"; //desc
                        }

                        fields += `${prefix}${order}${subKey}`;
                        firstField = false;
                    }

                    if (fields.length > 0) {
                        params.append(key, fields);
                    }
                    

                } else {
                    params.append(key, obj);
                }
                paramsLength++;
            }

            if (!paramsLength) {
                params = null;
            }
        }

        return params;
    }
Example #8
0
 Object.keys(params || {}).forEach(key => { searchParams.append(key, params[key]) })
 getProcesses(sort: string): Observable<any> {
     let params: URLSearchParams = new URLSearchParams();
     params.set('sort', sort);
     return this.getData('/system/os/processes', params);
 }
Example #10
0
 public getActiveTournaments(): Observable<Tournament[]> {
     let params = new URLSearchParams();
     params.set('state', 'active');
     return this.getTournaments(params);
 }