@veritree/services 0.11.1 → 0.13.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
@@ -1,5 +1,6 @@
1
1
  import { createCountriesApiService } from './src/services/countries.js';
2
2
  import { createFieldUpdatesApiService } from './src/services/field-updates.js';
3
+ import { createFieldUpdateVerificationsApiService } from './src/services/field-udpate-verifications.js';
3
4
  import { createFormSubmissionsApiService } from './src/services/form-submissions.js';
4
5
  import { createForestTypesApiService } from './src/services/forest-types.js';
5
6
  import { createImagesApiService } from './src/services/images.js';
@@ -14,6 +15,7 @@ import { createTreeOrdersApiService } from './src/services/trees-orders.js';
14
15
  export {
15
16
  createCountriesApiService,
16
17
  createFieldUpdatesApiService,
18
+ createFieldUpdateVerificationsApiService,
17
19
  createForestTypesApiService,
18
20
  createFormSubmissionsApiService,
19
21
  createOrgsApiService,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veritree/services",
3
- "version": "0.11.1",
3
+ "version": "0.13.1",
4
4
  "description": "A collection of javascript functions/services to talk to veritree API",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -0,0 +1,41 @@
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 = (page, orderBy, pageSize) => {
28
+ const pageParam = page ? `&page=${page}` : "";
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}`;
34
+ };
35
+
36
+ return {
37
+ get,
38
+ post,
39
+ update,
40
+ };
41
+ };
@@ -1,5 +1,6 @@
1
1
  import Api from "../helpers/api";
2
2
  import { getSession } from "../helpers/session";
3
+ import { createParamsStringFromArgs } from "../utils/args";
3
4
 
4
5
  export const createFieldUpdatesApiService = () => {
5
6
  const resource = `field-updates`;
@@ -10,16 +11,8 @@ export const createFieldUpdatesApiService = () => {
10
11
  }
11
12
 
12
13
  const get = {
13
- async all(countryId, regionId, subsiteId, page = 1, orderBy = 'date_planted-desc', pageSize = 10) {
14
- const params = `${_getParams(
15
- countryId,
16
- regionId,
17
- subsiteId,
18
- page,
19
- orderBy,
20
- pageSize
21
- )}`;
22
- const url = `${_getUrl()}?${params}`;
14
+ async all() {
15
+ const url = `${_getUrl()}?${_getParams(arguments)}`;
23
16
 
24
17
  return await Api.get(url);
25
18
  },
@@ -69,16 +62,10 @@ export const createFieldUpdatesApiService = () => {
69
62
  return `${Api.baseUrl}/${resource}`;
70
63
  };
71
64
 
72
- const _getParams = (countryId, regionId, subsiteId, page, orderBy, pageSize) => {
73
- const countryIdParam = countryId ? `&country_id=${countryId}` : "";
74
- const regionIdParam = regionId ? `&region_id=${regionId}` : "";
75
- const subsiteIdParam = subsiteId ? `&subsite_id=${subsiteId}` : "";
76
- const pageParam = page ? `&page=${page}` : "";
77
- const orderByParam = orderBy ? `&orderBy=${orderBy}` : "";
78
- const pageSizeParam = pageSize ? `&page_size=${pageSize}` : "";
79
- const params = `${countryIdParam}${regionIdParam}${subsiteIdParam}${pageParam}${pageSizeParam}${orderByParam}`;
65
+ const _getParams = (args) => {
66
+ const paramsString = createParamsStringFromArgs(args);
80
67
 
81
- return `org_id=${orgId}&org_type=${orgType}${params}`;
68
+ return `org_id=${orgId}&org_type=${orgType}${paramsString}`;
82
69
  };
83
70
 
84
71
  return {
@@ -1,4 +1,5 @@
1
1
  import Api from '../helpers/api';
2
+ import { createParamsStringFromArgs } from '../utils/args';
2
3
  import { getSession } from "../helpers/session";
3
4
 
4
5
  export const createForestTypesApiService = () => {
@@ -11,10 +12,12 @@ export const createForestTypesApiService = () => {
11
12
 
12
13
  const get = {
13
14
  /**
15
+ * @param {object} arguments
14
16
  * @returns {object} envelope
15
17
  */
16
- async all(page = 1, pageSize = 10) {
17
- const url = `${_getUrl()}?${_getParams(page, pageSize)}`;
18
+ async all() {
19
+ const url = `${_getUrl()}?${_getParams(arguments)}`;
20
+
18
21
  return await Api.get(url);
19
22
  },
20
23
 
@@ -23,7 +26,8 @@ export const createForestTypesApiService = () => {
23
26
  * @returns {object} envelope
24
27
  */
25
28
  async specific(id) {
26
- const url = `${_getUrl()}/${id}?${_getParams(page, pageSize)}`;
29
+ const url = `${_getUrl()}/${id}?${_getParams()}`;
30
+
27
31
  return await Api.get(url);
28
32
  },
29
33
  };
@@ -32,12 +36,10 @@ export const createForestTypesApiService = () => {
32
36
  return `${Api.baseUrl}/${resource}`;
33
37
  };
34
38
 
35
- const _getParams = (page, pageSize) => {
36
- const pageParam = page ? `&page=${page}` : '';
37
- const pageSizeParam = pageSize ? `&page_size=${pageSize}` : '';
38
- const params = `${pageParam}${pageSizeParam}`;
39
+ const _getParams = (args) => {
40
+ const paramsString = createParamsStringFromArgs(args);
39
41
 
40
- return `org_id=${orgId}&org_type=${orgType}${params}`;
42
+ return `org_id=${orgId}&org_type=${orgType}${paramsString}`;
41
43
  };
42
44
 
43
45
  return {
@@ -1,5 +1,6 @@
1
1
  import Api from '../helpers/api';
2
2
  import { getSession } from "../helpers/session";
3
+ import { createParamsStringFromArgs } from '../utils/args';
3
4
 
4
5
  export const createFormSubmissionsApiService = () => {
5
6
  const resource = 'form-submissions';
@@ -10,8 +11,8 @@ export const createFormSubmissionsApiService = () => {
10
11
  }
11
12
 
12
13
  const get = {
13
- async all(page = 1, pageSize = 10) {
14
- const url = `${_getUrl()}?${_getParams(page, pageSize)}`;
14
+ async all() {
15
+ const url = `${_getUrl()}?${_getParams(arguments)}`;
15
16
  return await Api.get(url);
16
17
  },
17
18
  };
@@ -20,12 +21,10 @@ export const createFormSubmissionsApiService = () => {
20
21
  return `${Api.baseUrl}/${resource}`;
21
22
  };
22
23
 
23
- const _getParams = (page, pageSize) => {
24
- const pageParam = page ? `&page=${page}` : '';
25
- const pageSizeParam = pageSize ? `&page_size=${pageSize}` : '';
26
- const params = `${pageParam}${pageSizeParam}`;
24
+ const _getParams = (args) => {
25
+ const paramsString = createParamsStringFromArgs(args);
27
26
 
28
- return `org_id=${orgId}&org_type=${orgType}${params}`;
27
+ return `org_id=${orgId}&org_type=${orgType}${paramsString}`;
29
28
  };
30
29
 
31
30
  return {
@@ -1,31 +1,18 @@
1
1
  import Api from "../helpers/api";
2
2
  import { getSession } from "../helpers/session";
3
+ import { createParamsStringFromArgs } from "../utils/args";
3
4
 
4
5
  export const createImagesApiService = () => {
5
6
  const resource = "images";
6
7
  const { orgId, orgType } = getSession();
7
8
 
8
9
  if (!orgId && !orgType) {
9
- throw new Error('Organization id and type are required');
10
+ throw new Error("Organization id and type are required");
10
11
  }
11
12
 
12
13
  const get = {
13
- async all(
14
- purpose,
15
- countryId,
16
- regionId,
17
- subsiteId,
18
- page = 1,
19
- pageSize = 10
20
- ) {
21
- const url = `${_getUrl()}?${_getParams(
22
- purpose,
23
- countryId,
24
- regionId,
25
- subsiteId,
26
- page,
27
- pageSize
28
- )}`;
14
+ async all() {
15
+ const url = `${_getUrl()}?${_getParams(arguments)}`;
29
16
  return await Api.get(url);
30
17
  },
31
18
 
@@ -33,31 +20,17 @@ export const createImagesApiService = () => {
33
20
  const url = `${_getUrl()}/${id}?${_getParams()}`;
34
21
 
35
22
  return await Api.get(url);
36
- }
23
+ },
37
24
  };
38
25
 
39
26
  const _getUrl = () => {
40
27
  return `${Api.baseUrl}/${resource}`;
41
28
  };
42
29
 
43
- const _getParams = (
44
- purpose,
45
- countryId,
46
- regionId,
47
- subsiteId,
48
- page,
49
- pageSize
50
- ) => {
51
- const paramPageSize = pageSize ? `&page_size=${pageSize}` : "";
52
- const paramPurpose = purpose ? `&purpose=${purpose}` : "";
53
- const paramCountryId = countryId ? `&country_id=${countryId}` : "";
54
- const paramRegionId = regionId ? `&region_id=${regionId}` : "";
55
- const paramSubsiteId = subsiteId ? `&subsite_id=${subsiteId}` : "";
56
- const paramPage = page ? `&page=${page}` : "";
57
-
58
- const params = `${paramPurpose}${paramPageSize}${paramCountryId}${paramRegionId}${paramSubsiteId}${paramPage}`;
30
+ const _getParams = (args) => {
31
+ const paramsString = createParamsStringFromArgs(args);
59
32
 
60
- return `org_id=${orgId}&org_type=${orgType}${params}`;
33
+ return `org_id=${orgId}&org_type=${orgType}${paramsString}`;
61
34
  };
62
35
 
63
36
  return {
@@ -1,5 +1,6 @@
1
1
  import Api from "../helpers/api";
2
2
  import { getSession } from "../helpers/session";
3
+ import { createParamsStringFromArgs } from "../utils/args";
3
4
 
4
5
  export const createRegionsApiService = () => {
5
6
  const resource = "regions";
@@ -10,43 +11,31 @@ export const createRegionsApiService = () => {
10
11
  }
11
12
 
12
13
  const get = {
13
- /**
14
- * Gets all regions of an organization
15
- *
16
- * @param {obj} pagination { page, pageSize }
17
- * @param {obj} filters { countryId, regionId }
18
- * @returns {obj} envelope
19
- */
20
- async all(
21
- pagination = { page: 1, pageSize: 10},
22
- filters = { countryId: null },
23
- advancedQuery = { includes: [], excludes: [] },
24
- ) {
25
- let { page, pageSize } = pagination;
26
- const { countryId } = filters;
27
- const { includes, excludes } = advancedQuery;
28
-
29
- const url = `${_getUrl()}?${_getParams(countryId, page, pageSize, includes, excludes)}`;
14
+ async all() {
15
+ const url = `${_getUrl()}?${_getParams(arguments)}`;
16
+
30
17
  return await Api.get(url);
31
18
  },
32
19
  };
33
20
 
21
+ const post = (data) => {
22
+ const url = `${_getUrl()}?${_getParams()}`;
23
+
24
+ return Api.post(url, data);
25
+ };
26
+
34
27
  const _getUrl = () => {
35
28
  return `${Api.baseUrl}/${resource}`;
36
29
  };
37
30
 
38
- const _getParams = (countryId, page, pageSize, includes, excludes) => {
39
- const countryIdParam = countryId ? `&country_id=${countryId}` : "";
40
- const pageParam = page ? `&page=${page}` : "";
41
- const pageSizeParam = pageSize ? `&page_size=${pageSize}` : "";
42
- const includeParams = includes ? includes.map(item => `&include[]=${item}`).join('') : "";
43
- const excludeParams = excludes ? excludes.map(item => `&exclude=${item}`).join('') : "";
44
- const params = `${countryIdParam}${pageParam}${pageSizeParam}${includeParams}${excludeParams}`;
31
+ const _getParams = (args) => {
32
+ const paramsString = createParamsStringFromArgs(args)
45
33
 
46
- return `org_id=${orgId}&org_type=${orgType}${params}`;
34
+ return `org_id=${orgId}&org_type=${orgType}${paramsString}`;
47
35
  };
48
36
 
49
37
  return {
50
38
  get,
39
+ post,
51
40
  };
52
41
  };
@@ -1,30 +1,21 @@
1
- import Api from '../helpers/api';
1
+ import Api from "../helpers/api";
2
2
  import { getSession } from "../helpers/session";
3
+ import { createParamsStringFromArgs } from "../utils/args";
3
4
 
4
5
  export const createSubsitesApiService = () => {
5
- const resource = 'subsites';
6
+ const resource = "subsites";
6
7
  const { orgId, orgType } = getSession();
7
8
 
8
9
  if (!orgId && !orgType) {
9
- throw new Error('Organization id and type are required');
10
+ throw new Error("Organization id and type are required");
10
11
  }
11
12
 
12
13
  const get = {
13
14
  /**
14
- * Gets all subsites of an organization
15
- *
16
- * @param {obj} pagination { page, pageSize }
17
- * @param {obj} filters { countryId, regionId }
18
15
  * @returns {obj} envelope
19
16
  */
20
- async all(
21
- pagination = { page: 1, pageSize: 10},
22
- filters = { countryId: null, regionId: null }
23
- ) {
24
- let { page, pageSize } = pagination;
25
- const { countryId, regionId } = filters;
26
-
27
- const url = `${_getUrl()}?${_getUrlParams(countryId, regionId, page, pageSize)}`;
17
+ async all() {
18
+ const url = `${_getUrl()}?${_getUrlParams(arguments)}`;
28
19
 
29
20
  return await Api.get(url);
30
21
  },
@@ -36,8 +27,8 @@ export const createSubsitesApiService = () => {
36
27
  * @param {number/string} page
37
28
  * @returns {object} envelope
38
29
  */
39
- async specific(id, page = 1, pageSize = 10) {
40
- const url = `${_getUrl()}/${id}?${_getUrlParams(page, pageSize)}`;
30
+ async specific(id) {
31
+ const url = `${_getUrl()}/${id}?${_getUrlParams()}`;
41
32
 
42
33
  return await Api.get(url);
43
34
  },
@@ -47,14 +38,10 @@ export const createSubsitesApiService = () => {
47
38
  return `${Api.baseUrl}/${resource}`;
48
39
  };
49
40
 
50
- const _getUrlParams = (countryId, regionId, page, pageSize) => {
51
- const countryIdParam = countryId ? `&country_id=${countryId}` : "";
52
- const regionIdParam = regionId ? `&region_id=${regionId}` : "";
53
- const pageParam = page ? `&page=${page}` : "";
54
- const pageSizeParam = pageSize ? `&page_size=${pageSize}` : "";
55
- const params = `${countryIdParam}${regionIdParam}${pageParam}${pageSizeParam}`;
41
+ const _getUrlParams = (args) => {
42
+ const paramsString = createParamsStringFromArgs(args);
56
43
 
57
- return `org_id=${orgId}&org_type=${orgType}${params}`;
44
+ return `org_id=${orgId}&org_type=${orgType}${paramsString}`;
58
45
  };
59
46
 
60
47
  return {
@@ -0,0 +1,32 @@
1
+ export const createParamsStringFromArgs = (args) => {
2
+ if(!args) return '';
3
+
4
+ const paramsString = [];
5
+ let arr = [];
6
+
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}`;
15
+
16
+ return index === 0 ? `${param}` : `&${param}`;
17
+ }).join('');
18
+
19
+ paramsString.push(arr);
20
+ } else {
21
+ if(arg[key] !== undefined) {
22
+ paramsString.push(`${key}=${arg[key]}`);
23
+ }
24
+ }
25
+ }
26
+ }
27
+ }
28
+
29
+ if(!paramsString.length) return '';
30
+
31
+ return `&${paramsString.join('&')}`;
32
+ }
package/utils/args.js DELETED
@@ -1,33 +0,0 @@
1
- function getArgs() {
2
- const argsString = [];
3
- let arr = [];
4
-
5
- for(arg of arguments) {
6
- if(typeof arg === 'object') {
7
- for(key in arg) {
8
- if(arg[key] === null) return;
9
-
10
- if(Array.isArray(arg[key])) {
11
- arr = arg[key].map((item, index) => {
12
- const param = `${key}[]=${item}`;
13
-
14
- return index === 0 ? `${param}` : `&${param}`;
15
- }).join('');
16
-
17
- argsString.push(arr);
18
- } else {
19
- argsString.push(`${key}=${arg[key]}`);
20
- }
21
- }
22
- }
23
- }
24
-
25
- console.log(argsString.join('&'));
26
- }
27
-
28
- const pagination = { page: 1, pageSize: 3}
29
- const filter = { countryId: 4, regionId: 5}
30
- const sort = { orderBy: 'date_planted-desc'}
31
- const advancedQuery = { include: ['a', 'b'], exclude: ['country']}
32
-
33
- getArgs(pagination, filter, sort, advancedQuery);