-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfigure.js
More file actions
110 lines (88 loc) · 2.7 KB
/
Copy pathfigure.js
File metadata and controls
110 lines (88 loc) · 2.7 KB
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
'use strict';
Figure.DEFAULT_HOST = 'api.figure.co';
Figure.DEFAULT_PROTOCOL = 'https';
Figure.DEFAULT_TIMEOUT = 60000; // 1 min
var resources = {
Photobooths: require('./resources/Photobooths.js'),
Places: require('./resources/Places.js'),
Events: require('./resources/Events.js'),
TicketTemplates: require('./resources/TicketTemplates.js'),
Texts: require('./resources/Texts.js'),
TextVariables: require('./resources/TextVariables.js'),
Images: require('./resources/Images.js'),
ImageVariables: require('./resources/ImageVariables.js'),
Portraits: require('./resources/Portraits.js'),
Albums: require('./resources/Albums.js'),
A1Posters: require('./resources/A1Posters.js'),
A3Posters: require('./resources/A3Posters.js'),
A1PosterOrders: require('./resources/A1PosterOrders.js'),
Newspapers: require('./resources/Newspapers.js'),
Posts: require('./resources/Posts.js'),
PostRows: require('./resources/PostRows.js'),
PostRowCells: require('./resources/PostRowCells.js'),
FigureGif: require('./resources/FigureGif.js'),
PlaceGifs: require('./resources/PlaceGifs.js'),
EventGifs: require('./resources/EventGifs.js'),
Users: require('./resources/Users.js'),
Analytics: require('./resources/Analytics.js'),
Auth: require('./resources/Auth.js'),
SubmittedPlaces: require('./resources/SubmittedPlaces.js')
};
Figure.resources = resources;
function Figure(options){
var opts = typeof options === 'object' ? options : {};
if (!(this instanceof Figure)) {
return new Figure(opts);
}
this._api = {
token: opts.token || null,
host: opts.host || Figure.DEFAULT_HOST,
protocol: opts.protocol || Figure.DEFAULT_PROTOCOL,
basePath: opts.basePath || '',
timeout: opts.timeout || Figure.DEFAULT_TIMEOUT
}
this._prepResources();
}
Figure.prototype = {
setToken: function(token) {
if (token) {
this._setApiField(
'token',
token)
}
},
setBasePath: function(basePath) {
this._setApiField(
'basePath',
basePath);
},
setHost: function(host, protocol) {
this._setApiField('host', host);
if (protocol) {
this.setProtocol(protocol);
}
},
setProtocol: function(protocol) {
this._setApiField('protocol', protocol);
},
setTimeout: function(timeout) {
this._setApiField(
'timeout',
timeout == null ? Figure.DEFAULT_TIMEOUT : timeout
);
},
_setApiField: function(key, value) {
this._api[key] = value;
},
getApiField: function(key) {
return this._api[key];
},
_prepResources: function() {
for (var name in resources) {
this[
name[0].toLowerCase() + name.substring(1)
] = new resources[name](this);
}
},
}
module.exports = Figure;