/
script.js
47 lines (37 loc) · 969 Bytes
/
script.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
44
45
46
47
function ManualPoller(
api
) {
return ManualPoller;
function ManualPoller(options) {
var repository = options.repository;
var filter = options.filter;
var processErrors = options.processErrors;
var selectItems = options.itemSelector || defaultItemSelector;
this.run = function () {
var result = api({
repository: repository,
action: 'list',
parameters: filter,
}).then(function (response) {
if (response.error) {
if (processErrors) {
return processErrors(response.error);
} else {
return;
}
}
var body = selectHttpBody(response);
var items = selectItems(body);
return items;
});
return result;
};
function selectHttpBody(response) {
return response.data;
}
function defaultItemSelector(page) {
return page.items;
}
}
}
export default ManualPoller;