const _ = require('lodash/fp'); const api = require('./api'); const Client = require('./client'); const forEach = _.forEach.convert({cap: false}); const initialClient = new Client({}); /* section: dogapi *comment: configure the dogapi client with your app/api keys *params: * options: * | * An object which allows you to override the default set parameters for interacting * with the datadog api. The available options are. * * api_key: your api key * * app_key: your app key * * api_version: the version of the api [default: `v1`] * * api_host: the host to call [default: `api.datadoghq.com`] * * proxy_agent: Optional, A Https Proxy agent. *example: * | * ```javascript * var dogapi = require("dogapi"); * * // Optional for Proxy -------8<---------- * // Code from http://blog.vanamco.com/proxy-requests-in-node-js/ * var HttpsProxyAgent = require("./httpsproxyagent"); * * var agent = new HttpsProxyAgent({ * proxyHost: "MY_PROXY_HOST", * proxyPort: 3128 * }); * // Optional for Proxy -------->8---------- * * var options = { * api_key: "", * app_key: "", * proxy_agent: agent // Optional for Proxy * }; * dogapi.initialize(options); * dogapi.event.create(...); * ``` */ function initialize(options) { options = options || {}; for (const key in options) { if (initialClient.hasOwnProperty(key)) { initialClient[key] = options[key]; } } } function DogApi(options) { const client = new Client(options || {}); forEach((value, key) => { this[key] = value(client); }, api); } DogApi.initialize = initialize; forEach((value, key) => { DogApi[key] = value(initialClient); }, api); /* section: dogapi *comment: get the current POSIX timestamp *example: | * ```javascript * var dogapi = require("dogapi"); * dogapi.now(); * // this is the same as * parseInt(new Date().getTime() / 1000); * ``` */ function now() { return parseInt(new Date().getTime() / 1000); } module.exports = DogApi; module.exports.now = now; module.exports.OK = 0; module.exports.WARNING = 1; module.exports.CRITICAL = 2; module.exports.UNKNOWN = 3;