@veritree/services 1.0.0-0 → 1.0.0-11

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.
Files changed (46) hide show
  1. package/index.js +34 -36
  2. package/package.json +1 -1
  3. package/src/{services/countries2.js → endpoints/countries.js} +1 -1
  4. package/src/endpoints/field-udpate-verifications.js +5 -0
  5. package/src/endpoints/field-updates.js +5 -0
  6. package/src/endpoints/forest-type-species.js +5 -0
  7. package/src/endpoints/forest-types-profiles.js +5 -0
  8. package/src/endpoints/forest-types.js +5 -0
  9. package/src/endpoints/form-submissions.js +5 -0
  10. package/src/{services/images2.js → endpoints/images.js} +1 -1
  11. package/src/endpoints/notes.js +13 -0
  12. package/src/endpoints/orgs.js +25 -0
  13. package/src/{services/regions2.js → endpoints/regions.js} +1 -1
  14. package/src/endpoints/sdgs.js +5 -0
  15. package/src/endpoints/sponsors.js +34 -0
  16. package/src/endpoints/stats.js +17 -0
  17. package/src/endpoints/subdomains.js +5 -0
  18. package/src/endpoints/subsite-types.js +5 -0
  19. package/src/{services/subsites2.js → endpoints/subsites.js} +1 -1
  20. package/src/endpoints/tags.js +13 -0
  21. package/src/endpoints/trees-orders.js +6 -0
  22. package/src/endpoints/user.js +15 -0
  23. package/src/helpers/api.js +171 -79
  24. package/src/helpers/relations.js +32 -0
  25. package/src/helpers/session.js +0 -4
  26. package/src/utils/args.js +17 -22
  27. package/src/helpers/api-v2.js +0 -159
  28. package/src/services/countries.js +0 -35
  29. package/src/services/field-udpate-verifications.js +0 -34
  30. package/src/services/field-updates.js +0 -77
  31. package/src/services/forest-type-species.js +0 -63
  32. package/src/services/forest-type-species2.js +0 -5
  33. package/src/services/forest-types.js +0 -62
  34. package/src/services/forest-types2.js +0 -5
  35. package/src/services/form-submissions.js +0 -33
  36. package/src/services/forms.js +0 -33
  37. package/src/services/images.js +0 -39
  38. package/src/services/me.js +0 -20
  39. package/src/services/orgs.js +0 -31
  40. package/src/services/regions.js +0 -41
  41. package/src/services/sponsors.js +0 -31
  42. package/src/services/subdomains.js +0 -26
  43. package/src/services/subsite-types.js +0 -70
  44. package/src/services/subsites.js +0 -70
  45. package/src/services/trees-orders.js +0 -42
  46. package/src/utils/methods.js +0 -16
package/src/utils/args.js CHANGED
@@ -1,32 +1,27 @@
1
1
  export const createParamsStringFromArgs = (args) => {
2
- if(!args) return '';
2
+ if (!args && typeof args !== 'object' && !Array.isArray(args)) {
3
+ return "";
4
+ }
3
5
 
4
6
  const paramsString = [];
5
7
  let arr = [];
6
8
 
7
- for(const arg of args) {
8
- if(typeof arg === 'object') {
9
- for(const key in arg) {
10
- if(arg[key] === null) return;
11
-
12
- if(Array.isArray(arg[key])) {
13
- arr = arg[key].map((item, index) => {
14
- const param = `${key}[]=${item}`;
9
+ Object.entries(args).forEach(([key, value]) => {
10
+ if (value === null) return;
15
11
 
16
- return index === 0 ? `${param}` : `&${param}`;
17
- }).join('');
12
+ if (Array.isArray(value)) {
13
+ arr = value.map((item, index) => {
14
+ const param = `${key}[]=${item}`;
15
+ return index === 0 ? `${param}` : `&${param}`;
16
+ }).join("");
18
17
 
19
- paramsString.push(arr);
20
- } else {
21
- if(arg[key] !== undefined) {
22
- paramsString.push(`${key}=${arg[key]}`);
23
- }
24
- }
18
+ paramsString.push(arr);
19
+ } else {
20
+ if (value !== undefined) {
21
+ paramsString.push(`${key}=${value}`);
25
22
  }
26
23
  }
27
- }
28
-
29
- if(!paramsString.length) return '';
24
+ });
30
25
 
31
- return `&${paramsString.join('&')}`;
32
- }
26
+ return paramsString.length ? `&${paramsString.join("&")}` : "";
27
+ };
@@ -1,159 +0,0 @@
1
- import { getCookie } from "./cookies";
2
- import { getSession } from "./session";
3
- import { createParamsStringFromArgs } from "../utils/args";
4
-
5
- export default function Api(resource) {
6
- const baseUrl = `${process.env.API_VERITREE_URL}/api`;
7
- const { orgId, orgType } = getSession();
8
-
9
- if (!orgId && !orgType) {
10
- throw new Error("Organization id and type are required");
11
- }
12
-
13
- /**
14
- *
15
- * @returns {promise}
16
- */
17
- this.all = async function () {
18
- const url = `${this.getUrl()}?${this.getUrlParams(arguments)}`;
19
- return await this.get(url);
20
- };
21
-
22
- /**
23
- *
24
- * @param {string, number} id
25
- * @returns {promise}
26
- */
27
- this.single = async function (id) {
28
- const url = `${this.getUrl()}/${id}?${this.getUrlParams()}`;
29
- return await this.get(url);
30
- };
31
-
32
- /**
33
- *
34
- * @param {object} data
35
- * @returns {promise}
36
- */
37
- this.create = async function (data) {
38
- const url = `${this.getUrl()}?${this.getUrlParams()}`;
39
- return await this.post(url, data);
40
- };
41
-
42
- /**
43
- *
44
- * @param {string} url
45
- * @param {object} data
46
- * @param {string} as - 'put' // necessary for updates because of how Laravel handles PUT requests
47
- * @returns {promise}
48
- */
49
- this.update = async function (id, data, as = 'put') {
50
- const url = `${this.getUrl()}/${id}?${this.getUrlParams()}`;
51
- return await this.post(url, data, as);
52
- };
53
-
54
- // ----------
55
- // --
56
- this.getUrl = () => {
57
- return `${baseUrl}/${resource}`;
58
- }
59
-
60
- this.getUrlParams = (args) => {
61
- return `org_id=${orgId}&org_type=${orgType}${createParamsStringFromArgs(args)}`;
62
- }
63
-
64
- /**
65
- *
66
- * @param {string} url
67
- * @returns {promise}
68
- */
69
- this.get = async function (url) {
70
- return await this.unWrap(url);
71
- };
72
-
73
- /**
74
- *
75
- * @param {string} url
76
- * @param {object} data
77
- * @returns {promise}
78
- */
79
- this.post = async function (url, data, as) {
80
- return await this.unWrap(url, "post", data, as);
81
- };
82
-
83
- /**
84
- * Deals with all fetch requests
85
- *
86
- * @param {string} url
87
- * @param {string} method
88
- * @param {object} data
89
- * @returns {object} envelope
90
- */
91
- this.unWrap = async function (url, method = "get", data, as) {
92
- url = this.handleEnvelopParam(url, data); // TODO: remove when API is fully migrated to envelopes
93
- const config = this.getConfig(method, data, as);
94
-
95
- try {
96
- const response = await fetch(url, config);
97
- const envelope = await response.json();
98
-
99
- return envelope;
100
- } catch (err) {
101
- throw new Error(err);
102
- }
103
- };
104
-
105
- /**
106
- * Handles how the data should be sent in the fetch method
107
- *
108
- * @param {string} method
109
- * @param {object} body
110
- * @returns {object} data
111
- */
112
- this.getConfig = function (method, data, as) {
113
- const isGet = method === "get";
114
- const isPut = as === "put";
115
- const isFormData = this.isFormData(data);
116
- const accessToken = `Bearer ${getCookie("access_token")}`;
117
-
118
- const config = {
119
- method,
120
- headers: {
121
- Authorization: accessToken,
122
- },
123
- };
124
-
125
- if (!isFormData) {
126
- config.headers["Content-Type"] = "application/json";
127
- }
128
-
129
- // TODO: improve this ifs and elses
130
- if (!isGet) {
131
- if (isFormData) {
132
- if (isPut) data.set("_method", "PUT");
133
- config.body = data;
134
- } else {
135
- if (isPut) data._method = "PUT";
136
- config.body = JSON.stringify(data);
137
- }
138
- }
139
-
140
- return config;
141
- };
142
-
143
- /**
144
- * Adds the envelope argument to the url
145
- *
146
- * @param {string} url
147
- * @returns {string} url
148
- */
149
- this.handleEnvelopParam = function (url) {
150
- if (!url || url.includes("_result=1")) return url;
151
-
152
- const urlHasArgs = url.includes("?");
153
- const urlEvenlopeArg = urlHasArgs ? "&_result=1" : "?_result=1";
154
-
155
- return `${url}${urlEvenlopeArg}`;
156
- };
157
-
158
- this.isFormData = (data) => data instanceof FormData;
159
- }
@@ -1,35 +0,0 @@
1
- import Api from '../helpers/api';
2
-
3
- export const createCountriesApiService = () => {
4
- const resource = 'countries';
5
-
6
- const get = {
7
- async all() {
8
- const url = _getUrl();
9
- return await Api.get(url);
10
- },
11
-
12
- async specific(countriId) {
13
- const url = `${_getUrl()}/${countriId}`;
14
- return await Api.get(url);
15
- }
16
- }
17
-
18
- const stats = {
19
- async get(countryId) {
20
- const type = countryId ? `${countryId}` : 'global';
21
- const url = `${_getUrl()}/${type}/stats`;
22
-
23
- return await Api.get(url);
24
- }
25
- }
26
-
27
- const _getUrl = () => {
28
- return `${Api.baseUrl}/${resource}`;
29
- };
30
-
31
- return {
32
- get,
33
- stats
34
- };
35
- };
@@ -1,34 +0,0 @@
1
- import Api from "../helpers/api";
2
- import { getSession } from "../helpers/session";
3
-
4
- export const createFieldUpdateVerificationsApiService = () => {
5
- const resource = `field-update-verifications`;
6
- const { orgId, orgType } = getSession();
7
-
8
- if (!orgId && !orgType) {
9
- throw new Error('Organization id and type are required');
10
- }
11
-
12
- /**
13
- *
14
- * @param {object} data
15
- * @returns
16
- */
17
- const post = (data) => {
18
- const url = `${_getUrl()}?${_getParams()}`;
19
-
20
- return Api.post(url, data);
21
- };
22
-
23
- const _getUrl = () => {
24
- return `${Api.baseUrl}/${resource}`;
25
- };
26
-
27
- const _getParams = () => {
28
- return `org_id=${orgId}&org_type=${orgType}`;
29
- };
30
-
31
- return {
32
- post,
33
- };
34
- };
@@ -1,77 +0,0 @@
1
- import Api from "../helpers/api";
2
- import { getSession } from "../helpers/session";
3
- import { createParamsStringFromArgs } from "../utils/args";
4
-
5
- export const createFieldUpdatesApiService = () => {
6
- const resource = `field-updates`;
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
- async all() {
15
- const url = `${_getUrl()}?${_getParams(arguments)}`;
16
-
17
- return await Api.get(url);
18
- },
19
-
20
- async specific(id) {
21
- const url = `${_getUrl()}/${id}?${_getParams()}`;
22
-
23
- return await Api.get(url);
24
- }
25
- };
26
-
27
- /**
28
- *
29
- * @param {object} data
30
- * @returns
31
- */
32
- const post = (data) => {
33
- const url = `${_getUrl()}?${_getParams()}`;
34
-
35
- return Api.post(url, data);
36
- };
37
-
38
- /**
39
- *
40
- * @param {string} fieldUpdateId
41
- * @param {object} data
42
- * @returns
43
- */
44
- const update = (fieldUpdateId, data) => {
45
- const url = `${_getUrl()}/${fieldUpdateId}?${_getParams()}`;
46
-
47
- return Api.post(url, data);
48
- };
49
-
50
- /**
51
- *
52
- */
53
- const remove = {
54
- async img(fieldUpdateId, data) {
55
- const url = `${_getUrl()}/${fieldUpdateId}/images/detach?${_getParams()}`;
56
-
57
- return await Api.post(url, data);
58
- }
59
- }
60
-
61
- const _getUrl = () => {
62
- return `${Api.baseUrl}/${resource}`;
63
- };
64
-
65
- const _getParams = (args) => {
66
- const paramsString = createParamsStringFromArgs(args);
67
-
68
- return `org_id=${orgId}&org_type=${orgType}${paramsString}`;
69
- };
70
-
71
- return {
72
- get,
73
- post,
74
- update,
75
- remove
76
- };
77
- };
@@ -1,63 +0,0 @@
1
- import Api from "../helpers/api";
2
- import { createParamsStringFromArgs } from "../utils/args";
3
- import { getSession } from "../helpers/session";
4
- // import { all, getUrl, getUrlParams } from "../utils/methods";
5
-
6
- export const createForestTypeSpeciesApiService = () => {
7
- const resource = "forest-type-species";
8
- const { orgId, orgType } = getSession();
9
-
10
- if (!orgId && !orgType) {
11
- throw new Error("Organization id and type are required");
12
- }
13
-
14
- const get = {
15
- /**
16
- * @param {object} arguments
17
- * @returns {object} envelope
18
- */
19
- async all() {
20
- const url = `${_getUrl()}?${_getUrlParams(arguments)}`;
21
-
22
- return await Api.get(url);
23
- },
24
-
25
- /**
26
- * @param {number/string} id
27
- * @returns {object} envelope
28
- */
29
- async specific(id) {
30
- const url = `${_getUrl()}/${id}?${_getUrlParams()}`;
31
-
32
- return await Api.get(url);
33
- },
34
- };
35
-
36
- const post = (data) => {
37
- const url = `${_getUrl()}?${_getUrlParams()}`;
38
-
39
- return Api.post(url, data);
40
- };
41
-
42
- const update = (id, data) => {
43
- const url = `${_getUrl()}/${id}?${_getUrlParams()}`;
44
-
45
- return Api.update(url, data);
46
- };
47
-
48
- const _getUrl = () => {
49
- return `${Api.baseUrl}/${resource}`;
50
- };
51
-
52
- const _getUrlParams = (args) => {
53
- const paramsString = createParamsStringFromArgs(args);
54
-
55
- return `org_id=${orgId}&org_type=${orgType}${paramsString}`;
56
- };
57
-
58
- return {
59
- get,
60
- post,
61
- update,
62
- };
63
- };
@@ -1,5 +0,0 @@
1
- import Api from "../helpers/api-v2";
2
-
3
- const resource = "forest-type-species";
4
-
5
- export const ForestTypeSpecies = new Api(resource);
@@ -1,62 +0,0 @@
1
- import Api from "../helpers/api";
2
- import { createParamsStringFromArgs } from "../utils/args";
3
- import { getSession } from "../helpers/session";
4
-
5
- export const createForestTypesApiService = () => {
6
- const resource = "forest-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
- * @param {object} arguments
16
- * @returns {object} envelope
17
- */
18
- async all() {
19
- const url = `${_getUrl()}?${_getUrlParams(arguments)}`;
20
-
21
- return await Api.get(url);
22
- },
23
-
24
- /**
25
- * @param {number/string} id
26
- * @returns {object} envelope
27
- */
28
- async specific(id) {
29
- const url = `${_getUrl()}/${id}?${_getUrlParams()}`;
30
-
31
- return await Api.get(url);
32
- },
33
- };
34
-
35
- const post = (data) => {
36
- const url = `${_getUrl()}?${_getUrlParams()}`;
37
-
38
- return Api.post(url, data);
39
- };
40
-
41
- const update = (id, data) => {
42
- const url = `${_getUrl()}/${id}?${_getUrlParams()}`;
43
-
44
- return Api.update(url, data);
45
- };
46
-
47
- const _getUrl = () => {
48
- return `${Api.baseUrl}/${resource}`;
49
- };
50
-
51
- const _getUrlParams = (args) => {
52
- const paramsString = createParamsStringFromArgs(args);
53
-
54
- return `org_id=${orgId}&org_type=${orgType}${paramsString}`;
55
- };
56
-
57
- return {
58
- get,
59
- post,
60
- update,
61
- };
62
- };
@@ -1,5 +0,0 @@
1
- import Api from "../helpers/api-v2";
2
-
3
- const resource = "forest-types";
4
-
5
- export const ForestTypes = new Api(resource);
@@ -1,33 +0,0 @@
1
- import Api from '../helpers/api';
2
- import { getSession } from "../helpers/session";
3
- import { createParamsStringFromArgs } from '../utils/args';
4
-
5
- export const createFormSubmissionsApiService = () => {
6
- const resource = 'form-submissions';
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
- async all() {
15
- const url = `${_getUrl()}?${_getParams(arguments)}`;
16
- return await Api.get(url);
17
- },
18
- };
19
-
20
- const _getUrl = () => {
21
- return `${Api.baseUrl}/${resource}`;
22
- };
23
-
24
- const _getParams = (args) => {
25
- const paramsString = createParamsStringFromArgs(args);
26
-
27
- return `org_id=${orgId}&org_type=${orgType}${paramsString}`;
28
- };
29
-
30
- return {
31
- get,
32
- };
33
- };
@@ -1,33 +0,0 @@
1
- import Api from '../helpers/api';
2
-
3
- export const createFormApiService = (orgId, orgType) => {
4
- if (!orgId && !orgType) throw new Error('orgId and orgType are required');
5
- const resource = 'orgs';
6
-
7
- const get = {
8
- async all(page = 1, pageSize = 10) {
9
- const url = `${_getUrl()}/${orgId}/forms?${_getParams(page, pageSize)}`;
10
- return await Api.get(url);
11
- },
12
-
13
- async specific(formId) {
14
- const url = `${_getUrl()}/${orgId}/forms/${formId}?${_getParams()}`;
15
- return await Api.get(url);
16
- },
17
- };
18
-
19
- const _getUrl = () => {
20
- return `${Api.baseUrl}/${resource}`;
21
- };
22
-
23
- const _getParams = (page, pageSize) => {
24
- const paramPageSize = pageSize ? `&page_size=${pageSize}` : '';
25
- const paramPage = page ? `&page=${page}` : '';
26
-
27
- return `org_type=${orgType}${paramPageSize}${paramPage}`;
28
- };
29
-
30
- return {
31
- get,
32
- };
33
- };
@@ -1,39 +0,0 @@
1
- import Api from "../helpers/api";
2
- import { getSession } from "../helpers/session";
3
- import { createParamsStringFromArgs } from "../utils/args";
4
-
5
- export const createImagesApiService = () => {
6
- const resource = "images";
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
- async all() {
15
- const url = `${_getUrl()}?${_getParams(arguments)}`;
16
- return await Api.get(url);
17
- },
18
-
19
- async specific(id) {
20
- const url = `${_getUrl()}/${id}?${_getParams()}`;
21
-
22
- return await Api.get(url);
23
- },
24
- };
25
-
26
- const _getUrl = () => {
27
- return `${Api.baseUrl}/${resource}`;
28
- };
29
-
30
- const _getParams = (args) => {
31
- const paramsString = createParamsStringFromArgs(args);
32
-
33
- return `org_id=${orgId}&org_type=${orgType}${paramsString}`;
34
- };
35
-
36
- return {
37
- get,
38
- };
39
- };
@@ -1,20 +0,0 @@
1
- import Api from '../helpers/api';
2
-
3
- export const createMeApiService = () => {
4
- const resource = 'me';
5
-
6
- const get = {
7
- async me() {
8
- const url = _getUrl();
9
- return await Api.get(url);
10
- },
11
- };
12
-
13
- const _getUrl = () => {
14
- return `${Api.baseUrl}/${resource}`;
15
- };
16
-
17
- return {
18
- get,
19
- };
20
- };
@@ -1,31 +0,0 @@
1
- import Api from '../helpers/api';
2
-
3
- export const createOrgsApiService = (orgId, orgType) => {
4
- if (!orgId && !orgType) throw new Error('No org id and/or type provided');
5
- const resource = 'orgs';
6
-
7
- // filter for stats data
8
- const stats = {
9
- async get(isPublic) {
10
- const endpoint = _getStatsEndpoint(isPublic);
11
- const url = `${_getUrl()}/${endpoint}?${_getUrlParams()}`;
12
- return await Api.get(url);
13
- },
14
- };
15
-
16
- const _getStatsEndpoint = (isPublic) => {
17
- return isPublic ? 'pstats' : 'stats';
18
- }
19
-
20
- const _getUrl = () => {
21
- return `${Api.baseUrl}/${resource}`;
22
- };
23
-
24
- const _getUrlParams = () => {
25
- return `org_id=${orgId}&org_type=${orgType}`
26
- }
27
-
28
- return {
29
- stats,
30
- };
31
- };
@@ -1,41 +0,0 @@
1
- import Api from "../helpers/api";
2
- import { getSession } from "../helpers/session";
3
- import { createParamsStringFromArgs } from "../utils/args";
4
-
5
- export const createRegionsApiService = () => {
6
- const resource = "regions";
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
- async all() {
15
- const url = `${_getUrl()}?${_getParams(arguments)}`;
16
-
17
- return await Api.get(url);
18
- },
19
- };
20
-
21
- const post = (data) => {
22
- const url = `${_getUrl()}?${_getParams()}`;
23
-
24
- return Api.post(url, data);
25
- };
26
-
27
- const _getUrl = () => {
28
- return `${Api.baseUrl}/${resource}`;
29
- };
30
-
31
- const _getParams = (args) => {
32
- const paramsString = createParamsStringFromArgs(args)
33
-
34
- return `org_id=${orgId}&org_type=${orgType}${paramsString}`;
35
- };
36
-
37
- return {
38
- get,
39
- post,
40
- };
41
- };