@opengis/fastify-table 1.3.9 → 1.3.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengis/fastify-table",
3
- "version": "1.3.9",
3
+ "version": "1.3.11",
4
4
  "type": "module",
5
5
  "description": "core-plugins",
6
6
  "keywords": [
@@ -5,6 +5,7 @@ import pgClients from '../../pg/pgClients.js';
5
5
 
6
6
  import extraData from '../../extra/extraData.js';
7
7
  import logChanges from './utils/logChanges.js';
8
+ import logger from '../../logger/getLogger.js';
8
9
 
9
10
  const rclient = getRedis();
10
11
 
@@ -22,7 +23,11 @@ export default async function dataDelete({
22
23
  pg.pk = pgClients.client?.pk;
23
24
  }
24
25
 
25
- const { pk } = await getMeta({ pg, table });
26
+ const { pk } = await getMeta({ pg, table })
27
+ .catch(err => {
28
+ logger.file('crud/delete', { error: err.toString(), stack: err.stack, table, id, referer, uid });
29
+ throw new Error(err.toString());
30
+ });
26
31
  const table1 = table.replace(/"/g, '');
27
32
  if (!pg.tlist?.includes(table1)) return 'table not exist';
28
33
  const delQuery = `delete from ${table} WHERE ${pk} = $1 returning *`;
@@ -31,7 +36,12 @@ export default async function dataDelete({
31
36
  table, form: tokenData?.form, id, uid,
32
37
  }, pg);
33
38
 
34
- const res = await pg.query(delQuery, [id]).then(el => el.rows?.[0] || {});
39
+ const res = await pg.query(delQuery, [id])
40
+ .catch(err => {
41
+ logger.file('crud/delete', { error: err.toString(), stack: err.stack, table, id, referer, uid, q: delQuery });
42
+ throw new Error(err.toString());
43
+ })
44
+ .then(el => el.rows?.[0] || {});
35
45
 
36
46
  await logChanges({
37
47
  pg, table, tokenData, referer, id, uid, type: 'DELETE',
@@ -5,6 +5,7 @@ import pgClients from '../../pg/pgClients.js';
5
5
 
6
6
  import logChanges from './utils/logChanges.js';
7
7
  import extraData from '../../extra/extraData.js';
8
+ import logger from '../../logger/getLogger.js';
8
9
 
9
10
  const rclient = getRedis();
10
11
 
@@ -46,7 +47,10 @@ export default async function dataInsert({
46
47
 
47
48
  returning *`;
48
49
 
49
- const res = await pg.query(insertQuery, [...filterData.map((el) => (typeof el[1] === 'object' && (!Array.isArray(el[1]) || typeof el[1]?.[0] === 'object') ? JSON.stringify(el[1]) : el[1]))]) || {};
50
+ const res = await pg.query(insertQuery, [...filterData.map((el) => (typeof el[1] === 'object' && (!Array.isArray(el[1]) || typeof el[1]?.[0] === 'object') ? JSON.stringify(el[1]) : el[1]))]).catch(err => {
51
+ logger.file('crud/insert', { error: err.toString(), stack: err.stack, table, id, referer, uid, data, q: insertQuery });
52
+ throw new Error(err.toString());
53
+ }) || {};
50
54
 
51
55
  const table1 = pg.pk[table] ? table : table.replace(/"/g, '');
52
56
 
@@ -5,6 +5,7 @@ import pgClients from '../../pg/pgClients.js';
5
5
 
6
6
  import extraData from '../../extra/extraData.js';
7
7
  import logChanges from './utils/logChanges.js';
8
+ import logger from '../../logger/getLogger.js';
8
9
 
9
10
  const rclient = getRedis();
10
11
  const srids = {};
@@ -66,7 +67,12 @@ export default async function dataUpdate({
66
67
  ${filterData?.map((key, i) => assignValue(key, i, srids[table]?.[key] || 4326, pg.pgType?.[columns.find(col => col.name === key)?.dataTypeID || '']))?.join(',')}
67
68
  WHERE ${pk} = $1 returning *`;
68
69
  // console.log(updateQuery, filterValue);
69
- const res = await pg.query(updateQuery, [id, ...filterValue]).then(el => el?.rows?.[0]) || {};
70
+ const res = await pg.query(updateQuery, [id, ...filterValue])
71
+ .catch(err => {
72
+ logger.file('crud/update', { error: err.toString(), stack: err.stack, table, id, referer, uid, data, q: updateQuery });
73
+ throw new Error(err.toString());
74
+ })
75
+ .then(el => el?.rows?.[0]) || {};
70
76
 
71
77
  const extraRes = await extraData({ table, form: tokenData?.form, id, data, uid }, pg);
72
78
 
@@ -56,7 +56,7 @@ export default async function tableAPI(req) {
56
56
  const cols = loadTable?.table
57
57
  ? Object.keys(schema || {}).filter((col) => columnList.includes(col) && !extraKeys.includes(col))?.map((col) => (col?.includes('geom') && schema?.[col]?.type === 'Geom' ? `st_asgeojson(${col})::json as "${col}"` : `"${col}"`))?.join(',')
58
58
  : fields.map((el) => (el?.name?.includes('geom') && pg.pgType[el?.dataTypeID] === 'geometry' ? `st_asgeojson(${el.name})::json as "${el.name}"` : `"${el?.name}"`)).join(',');
59
- const where = [`"${pk}" = $1`, loadTable.query, accessQuery].filter((el) => el);
59
+ const where = [`"${pk}" = $1`, loadTable.query, accessQuery].filter((el) => el).filter((el) => (user?.user_type === 'superadmin' ? !el.includes('{{uid}}') : true));
60
60
  const geom = dbColumns.find((el) => el.name === 'geom' && pg.pgType[el.dataTypeID] === 'geometry') ? ',st_asgeojson(geom)::json as geom' : '';
61
61
  const q = `select "${pk}" as id, ${cols || '*'} ${geom} from ${tableName} t where ${where.join(' and ') || 'true'} limit 1`;
62
62
 
@@ -67,7 +67,7 @@ export default async function filterAPI(req) {
67
67
  const clsData = await getSelectVal({ pg, values: ids, name: el.data });
68
68
 
69
69
  const options = countArr.rows.map(cel => {
70
- const data = cls?.arr?.find(c => c.id === cel.id) || { text: clsData[cel.id] };
70
+ const data = cls?.arr?.find(c => c.id?.toString?.() === cel.id?.toString?.()) || { text: clsData[cel.id]?.text || clsData[cel.id] };
71
71
  return { ...cel, ...data };
72
72
  });
73
73
  Object.assign(el, { options });