@veritree/services 0.14.2 → 0.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js
CHANGED
|
@@ -10,6 +10,7 @@ import { createRegionsApiService } from './src/services/regions.js';
|
|
|
10
10
|
import { createSponsorsApiService } from './src/services/sponsors.js';
|
|
11
11
|
import { createSubdomainsApiService } from './src/services/subdomains.js';
|
|
12
12
|
import { createSubsitesApiService } from './src/services/subsites.js';
|
|
13
|
+
import { createSubsiteTypesApiService } from './src/services/subsite-types.js';
|
|
13
14
|
import { createTreeOrdersApiService } from './src/services/trees-orders.js';
|
|
14
15
|
|
|
15
16
|
export {
|
|
@@ -25,5 +26,6 @@ export {
|
|
|
25
26
|
createSponsorsApiService,
|
|
26
27
|
createSubdomainsApiService,
|
|
27
28
|
createSubsitesApiService,
|
|
29
|
+
createSubsiteTypesApiService,
|
|
28
30
|
createTreeOrdersApiService,
|
|
29
31
|
}
|
package/package.json
CHANGED
package/src/helpers/api.js
CHANGED
|
@@ -4,16 +4,34 @@ const Api = {
|
|
|
4
4
|
baseUrl: `${process.env.API_VERITREE_URL}/api`,
|
|
5
5
|
forceEnvelopeResponse: true, // TODO: remove when API is fully migrated to envelopes
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
* @param {string} url
|
|
10
|
+
* @returns {promise}
|
|
11
|
+
*/
|
|
7
12
|
async get(url) {
|
|
8
13
|
return await this.unWrap(url);
|
|
9
14
|
},
|
|
10
15
|
|
|
11
|
-
|
|
12
|
-
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @param {string} url
|
|
19
|
+
* @param {object} data
|
|
20
|
+
* @returns {promise}
|
|
21
|
+
*/
|
|
22
|
+
async post(url, data, as) {
|
|
23
|
+
return await this.unWrap(url, "post", data, as);
|
|
13
24
|
},
|
|
14
25
|
|
|
15
|
-
|
|
16
|
-
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
* @param {string} url
|
|
29
|
+
* @param {object} data
|
|
30
|
+
* @param {string} as - 'put' // necessary for updates because of how Laravel handles PUT requests
|
|
31
|
+
* @returns {promise}
|
|
32
|
+
*/
|
|
33
|
+
async update(url, data, as = "put") {
|
|
34
|
+
return await this.post(url, data, as);
|
|
17
35
|
},
|
|
18
36
|
|
|
19
37
|
/**
|
|
@@ -24,9 +42,9 @@ const Api = {
|
|
|
24
42
|
* @param {object} data
|
|
25
43
|
* @returns {object} envelope
|
|
26
44
|
*/
|
|
27
|
-
async unWrap(url, method = "get", data) {
|
|
45
|
+
async unWrap(url, method = "get", data, as) {
|
|
28
46
|
if (this.forceEnvelopeResponse) url = this.handleEnvelopParam(url, data); // TODO: remove when API is fully migrated to envelopes
|
|
29
|
-
const config = this.getConfig(method, data);
|
|
47
|
+
const config = this.getConfig(method, data, as);
|
|
30
48
|
|
|
31
49
|
try {
|
|
32
50
|
const response = await fetch(url, config);
|
|
@@ -45,8 +63,9 @@ const Api = {
|
|
|
45
63
|
* @param {object} body
|
|
46
64
|
* @returns {object} data
|
|
47
65
|
*/
|
|
48
|
-
getConfig(method, data) {
|
|
66
|
+
getConfig(method, data, as) {
|
|
49
67
|
const isGet = method === "get";
|
|
68
|
+
const isPut = as === "put";
|
|
50
69
|
const isFormData = this._isFormData(data);
|
|
51
70
|
const accessToken = `Bearer ${getCookie('access_token')}`;
|
|
52
71
|
|
|
@@ -61,8 +80,15 @@ const Api = {
|
|
|
61
80
|
config.headers['Content-Type'] = 'application/json';
|
|
62
81
|
}
|
|
63
82
|
|
|
83
|
+
// TODO: improve this ifs and elses
|
|
64
84
|
if (!isGet) {
|
|
65
|
-
isFormData
|
|
85
|
+
if(isFormData) {
|
|
86
|
+
if(isPut) data.set('_method', 'PUT');
|
|
87
|
+
config.body = data;
|
|
88
|
+
} else {
|
|
89
|
+
if(isPut) data._method = 'PUT';
|
|
90
|
+
config.body = JSON.stringify(data);
|
|
91
|
+
}
|
|
66
92
|
}
|
|
67
93
|
|
|
68
94
|
return config;
|
|
@@ -24,13 +24,8 @@ export const createFieldUpdateVerificationsApiService = () => {
|
|
|
24
24
|
return `${Api.baseUrl}/${resource}`;
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
const _getParams = (
|
|
28
|
-
|
|
29
|
-
const orderByParam = orderBy ? `&orderBy=${orderBy}` : "";
|
|
30
|
-
const pageSizeParam = pageSize ? `&page_size=${pageSize}` : "";
|
|
31
|
-
const params = `${pageParam}${pageSizeParam}${orderByParam}`;
|
|
32
|
-
|
|
33
|
-
return `org_id=${orgId}&org_type=${orgType}${params}`;
|
|
27
|
+
const _getParams = () => {
|
|
28
|
+
return `org_id=${orgId}&org_type=${orgType}`;
|
|
34
29
|
};
|
|
35
30
|
|
|
36
31
|
return {
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import Api from "../helpers/api";
|
|
2
|
+
import { getSession } from "../helpers/session";
|
|
3
|
+
import { createParamsStringFromArgs } from "../utils/args";
|
|
4
|
+
|
|
5
|
+
export const createSubsiteTypesApiService = () => {
|
|
6
|
+
const resource = "subsite-types";
|
|
7
|
+
const { orgId, orgType } = getSession();
|
|
8
|
+
|
|
9
|
+
if (!orgId && !orgType) {
|
|
10
|
+
throw new Error("Organization id and type are required");
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const get = {
|
|
14
|
+
/**
|
|
15
|
+
* @returns {obj} envelope
|
|
16
|
+
*/
|
|
17
|
+
async all() {
|
|
18
|
+
const url = `${_getUrl()}?${_getUrlParams(arguments)}`;
|
|
19
|
+
|
|
20
|
+
return await Api.get(url);
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Gets a speficific subsite of an organization
|
|
25
|
+
*
|
|
26
|
+
* @param {number/string} id
|
|
27
|
+
* @param {number/string} page
|
|
28
|
+
* @returns {object} envelope
|
|
29
|
+
*/
|
|
30
|
+
async specific(id) {
|
|
31
|
+
const url = `${_getUrl()}/${id}?${_getUrlParams()}`;
|
|
32
|
+
|
|
33
|
+
return await Api.get(url);
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
async stats(id) {
|
|
37
|
+
const url = `${_getUrl()}/${id}/stats`;
|
|
38
|
+
|
|
39
|
+
return await Api.get(url);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const post = (data) => {
|
|
44
|
+
const url = `${_getUrl()}?${_getUrlParams()}`;
|
|
45
|
+
|
|
46
|
+
return Api.post(url, data);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const update = (id, data) => {
|
|
50
|
+
const url = `${_getUrl()}/${id}?${_getUrlParams()}`;
|
|
51
|
+
|
|
52
|
+
return Api.update(url, data);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const _getUrl = () => {
|
|
56
|
+
return `${Api.baseUrl}/${resource}`;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const _getUrlParams = (args) => {
|
|
60
|
+
const paramsString = createParamsStringFromArgs(args);
|
|
61
|
+
|
|
62
|
+
return `org_id=${orgId}&org_type=${orgType}${paramsString}`;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
return {
|
|
66
|
+
get,
|
|
67
|
+
post,
|
|
68
|
+
update
|
|
69
|
+
};
|
|
70
|
+
};
|
package/src/services/subsites.js
CHANGED
|
@@ -32,6 +32,12 @@ export const createSubsitesApiService = () => {
|
|
|
32
32
|
|
|
33
33
|
return await Api.get(url);
|
|
34
34
|
},
|
|
35
|
+
|
|
36
|
+
async stats(id) {
|
|
37
|
+
const url = `${_getUrl()}/${id}/stats`;
|
|
38
|
+
|
|
39
|
+
return await Api.get(url);
|
|
40
|
+
}
|
|
35
41
|
};
|
|
36
42
|
|
|
37
43
|
const post = (data) => {
|
|
@@ -40,6 +46,12 @@ export const createSubsitesApiService = () => {
|
|
|
40
46
|
return Api.post(url, data);
|
|
41
47
|
}
|
|
42
48
|
|
|
49
|
+
const update = (id, data) => {
|
|
50
|
+
const url = `${_getUrl()}/${id}?${_getUrlParams()}`;
|
|
51
|
+
|
|
52
|
+
return Api.update(url, data);
|
|
53
|
+
}
|
|
54
|
+
|
|
43
55
|
const _getUrl = () => {
|
|
44
56
|
return `${Api.baseUrl}/${resource}`;
|
|
45
57
|
};
|
|
@@ -52,6 +64,7 @@ export const createSubsitesApiService = () => {
|
|
|
52
64
|
|
|
53
65
|
return {
|
|
54
66
|
get,
|
|
55
|
-
post
|
|
67
|
+
post,
|
|
68
|
+
update
|
|
56
69
|
};
|
|
57
70
|
};
|