forked from resource-watch/resource-watch
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpages.js
113 lines (107 loc) · 2.92 KB
/
pages.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
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
110
111
112
113
import 'isomorphic-fetch';
import { get, post, remove } from 'utils/request';
import sortBy from 'lodash/sortBy';
import { Deserializer } from 'jsonapi-serializer';
export default class PagesService {
constructor(options = {}) {
this.opts = options;
}
// GET ALL DATA
fetchAllData() {
return new Promise((resolve, reject) => {
get({
url: `${process.env.WRI_API_URL}/static_page/?published=all&application=${process.env.APPLICATIONS}&env=${process.env.API_ENV}`,
headers: [{
key: 'Content-Type',
value: 'application/json'
}, {
key: 'Authorization',
value: this.opts.authorization
},
{
key: 'Upgrade-Insecure-Requests',
value: 1
}],
onSuccess: (response) => {
new Deserializer({ keyForAttribute: 'underscore_case' }).deserialize(response, (err, pages) => {
resolve(sortBy(pages, 'name'));
});
},
onError: (error) => {
reject(error);
}
});
});
}
fetchData(id) {
return new Promise((resolve, reject) => {
get({
url: `${process.env.WRI_API_URL}/static_page/${id}?application=${process.env.APPLICATIONS}&env=${process.env.API_ENV}`,
headers: [{
key: 'Content-Type',
value: 'application/json'
}, {
key: 'Authorization',
value: this.opts.authorization
},
{
key: 'Upgrade-Insecure-Requests',
value: 1
}],
onSuccess: (response) => {
new Deserializer({ keyForAttribute: 'underscore_case' }).deserialize(response, (err, page) => {
resolve(page);
});
},
onError: (error) => {
reject(error);
}
});
});
}
saveData({ type, body, id }) {
return new Promise((resolve, reject) => {
post({
url: `${process.env.WRI_API_URL}/static_page/${id}`,
type,
body: {
...body,
application: [process.env.APPLICATIONS],
env: process.env.API_ENV
},
headers: [{
key: 'Content-Type',
value: 'application/json'
}, {
key: 'Authorization',
value: this.opts.authorization
}],
onSuccess: (response) => {
new Deserializer({ keyForAttribute: 'underscore_case' }).deserialize(response, (err, page) => {
resolve(page);
});
},
onError: (error) => {
reject(error);
}
});
});
}
deleteData(id) {
return new Promise((resolve, reject) => {
remove({
url: `${process.env.WRI_API_URL}/static_page/${id}`,
headers: [{
key: 'Authorization',
value: this.opts.authorization
}],
onSuccess: (response) => {
resolve(response);
},
onError: (error) => {
reject(error);
}
});
});
}
}