-
Notifications
You must be signed in to change notification settings - Fork 63
/
MandrillAPI.js
43 lines (36 loc) · 1.51 KB
/
MandrillAPI.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
var MandrillAPI_v1_0 = require('./MandrillAPI_v1_0'),
fs = require('fs');
/**
* Returns a Mandrill API wrapper object in the specified version. The only API
* version currently supported (even the only version available at the time of
* writing) is 1.0 but as soon as other versions are available and
* implemented you can specify the one you want in the options parameter.
*
* Available options are:
* - version The API version to use, currently only '1.0' is supported.
* Defaults to '1.0'.
* - secure Whether or not to use secure connections over HTTPS
* (true/false). Defaults to false.
* - userAgent Custom User-Agent description to use in the request header.
*
* @param apiKey The API key to access the Mandrill API with
* @param options Configuration options as described above
* @return Instance of the Mandrill API in the specified version
*/
function MandrillAPI (apiKey, options) {
if (!options)
var options = {};
if (!apiKey)
throw 'You have to provide an API key for this to work.';
try {
var packageInfo = fs.readFileSync(__dirname+"/../../package.json");
} catch (error) {
throw 'Required package file package.json not found for this module.';
}
options.packageInfo = JSON.parse(packageInfo.toString());
if (!options.version || options.version == '1.0')
return new MandrillAPI_v1_0(apiKey, options);
else
throw 'Version ' + options.version + ' of the Mandrill API is currently not supported.';
}
module.exports = MandrillAPI;