The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
grafana/common/lib/elastic-angular-client.js

80 lines
2.3 KiB

/*! elastic.js - v1.0.0 - 2013-01-15
* https://github.com/fullscale/elastic.js
* Copyright (c) 2013 FullScale Labs, LLC; Licensed MIT */
/*jshint browser:true */
/*global angular:true */
'use strict';
/*
Angular.js service wrapping the elastic.js API. This module can simply
be injected into your angular controllers.
*/
angular.module('elasticjs.service', [])
.factory('ejsResource', ['$http', function ($http) {
return function (url) {
var
// use existing ejs object if it exists
ejs = window.ejs || {},
/* results are returned as a promise */
promiseThen = function (httpPromise, successcb, errorcb) {
return httpPromise.then(function (response) {
(successcb || angular.noop)(response.data);
return response.data;
}, function (response) {
(errorcb || angular.noop)(undefined);
return undefined;
});
};
// set url to empty string if it was not specified
if (url == null) {
url = '';
}
/* implement the elastic.js client interface for angular */
ejs.client = {
server: function (s) {
if (s == null) {
return url;
}
url = s;
return this;
},
post: function (path, data, successcb, errorcb) {
path = url + path;
return promiseThen($http.post(path, data), successcb, errorcb);
},
get: function (path, data, successcb, errorcb) {
path = url + path;
return promiseThen($http.get(path, data), successcb, errorcb);
},
put: function (path, data, successcb, errorcb) {
path = url + path;
return promiseThen($http.put(path, data), successcb, errorcb);
},
del: function (path, data, successcb, errorcb) {
path = url + path;
return promiseThen($http.delete(path, data), successcb, errorcb);
},
head: function (path, data, successcb, errorcb) {
path = url + path;
return $http.head(path, data)
.then(function (response) {
(successcb || angular.noop)(response.headers());
return response.headers();
}, function (response) {
(errorcb || angular.noop)(undefined);
return undefined;
});
}
};
return ejs;
};
}]);