@opengis/fastify-table 1.0.5 → 1.0.6

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.0.5",
3
+ "version": "1.0.6",
4
4
  "type": "module",
5
5
  "description": "core-plugins",
6
6
  "main": "index.js",
@@ -9,12 +9,13 @@ export default async function suggest(req) {
9
9
 
10
10
  const lang = query.lang || 'ua';
11
11
  const time = Date.now();
12
+ const parent = query.parent || '';
12
13
 
13
14
  const selectName = query.sel || query.name || params.data;
14
15
  if (!selectName) return { headers, status: 400, message: 'name is required' };
15
16
 
16
17
  const meta = await getSelectMeta({ name: selectName });
17
- const pg = meta.db ? getPG(meta.db) : pg1;
18
+ const pg = meta.db ? getPG({ db: meta.db }) : pg1;
18
19
  if (!meta) return { headers, status: 404, message: 'Not found query select ' };
19
20
 
20
21
  const { arr, searchQuery } = meta;
@@ -36,7 +37,7 @@ export default async function suggest(req) {
36
37
  const pk = meta.originalCols.split(',')[0];
37
38
  const val = query.val ? ` ${pk}=any('{${query.val.replace(/'/g, "''")}}')` : '';
38
39
 
39
- const sqlSuggest = `with rows(id,text) as (${meta.original} where ${[search, val].filter((el) => el).join(' and ') || 'true'}) select * from rows limit ${limit}`;
40
+ const sqlSuggest = `with rows(id,text) as (${meta.original.replace(/{{parent}}/gi, parent)} where ${[search, val].filter((el) => el).join(' and ') || 'true'}) select * from rows limit ${limit}`;
40
41
  if (query.sql) return sqlSuggest;
41
42
 
42
43
  // query
@@ -39,7 +39,7 @@ export default async function getSelectMeta({ name, pg: pg1 }) {
39
39
 
40
40
  // column name
41
41
  const cols = dataOrigin.fields.map((el) => el.name);
42
- const type = dataOrigin.fields.map((el) => pg.pgType[el.dataTypeID]);
42
+ const type = dataOrigin.fields.map((el) => pg.pgType?.[el.dataTypeID] || 'text');
43
43
 
44
44
  const searchColumn = cls?.searchColumn || (
45
45
  dataOrigin.fields.find((el) => el.name === 'search') ? 'search' : dataOrigin1.fields[1].name);
@@ -11,13 +11,38 @@ test('api crud', async (t) => {
11
11
  const res = await app.inject({
12
12
  method: 'POST',
13
13
  url: '/api/crud/gis.dataset',
14
- body: { dataset_name: '111' },
14
+ body: { dataset_name: '111', dataset_id: '5400000' },
15
15
  });
16
16
 
17
17
  const rep = JSON.parse(res?.body);
18
18
  // rep.dataset_id
19
- // console.log(rep.total);
20
- pgClients.client.query('delete from gis.dataset where dataset_id=$1', [rep.dataset_id]);
19
+ // console.log(rep);
20
+ // pgClients.client.query('delete from gis.dataset where dataset_id=$1', [rep.dataset_id]);
21
21
  assert.ok(rep.dataset_id);
22
22
  });
23
+
24
+ await t.test('PUT /update', async () => {
25
+ const res = await app.inject({
26
+ method: 'PUT',
27
+ url: '/api/crud/gis.dataset/5400000',
28
+ body: { editor_id: '11' },
29
+ });
30
+
31
+ const rep = JSON.parse(res?.body);
32
+ // rep.dataset_id
33
+ // console.log(rep);
34
+ assert.equal(rep.editor_id, '11')
35
+ });
36
+
37
+ await t.test('DELETE /delete', async () => {
38
+ const res = await app.inject({
39
+ method: 'DELETE',
40
+ url: '/api/crud/gis.dataset/5400000',
41
+ });
42
+
43
+ const rep = JSON.parse(res?.body);
44
+ // rep.dataset_id
45
+ // console.log(rep);
46
+ assert.ok(rep);
47
+ });
23
48
  });
@@ -26,4 +26,24 @@ test('api table', async (t) => {
26
26
  // console.log(rep.total);
27
27
  assert.ok(rep.total);
28
28
  });
29
+ await t.test('GET /form', async () => {
30
+ const res = await app.inject({
31
+ method: 'GET',
32
+ url: '/api/form/cp_building.form',
33
+ });
34
+ // console.log(res);
35
+ const rep = JSON.parse(res?.body);
36
+ // console.log(rep.total);
37
+ assert.ok(rep);
38
+ });
39
+ await t.test('GET /filter', async () => {
40
+ const res = await app.inject({
41
+ method: 'GET',
42
+ url: '/api/filter/gis.dataset.table',
43
+ });
44
+ // console.log(res);
45
+ const rep = JSON.parse(res?.body);
46
+ // console.log(rep.total);
47
+ assert.ok(rep);
48
+ });
29
49
  });
@@ -7,17 +7,21 @@ import rclient from '../../redis/client.js';
7
7
 
8
8
  import dataInsert from '../../crud/funcs/dataInsert.js';
9
9
  import dataUpdate from '../../crud/funcs/dataUpdate.js';
10
+ import dataDelete from '../../crud/funcs/dataDelete.js';
11
+ import isFileExists from '../../crud/funcs/isFileExists.js';
10
12
 
11
13
  import getOpt from '../../crud/funcs/getOpt.js';
12
14
  import setOpt from '../../crud/funcs/setOpt.js';
13
15
 
14
- test('fucns crud', async (t) => {
16
+ test('funcs crud', async (t) => {
17
+
15
18
  await t.test('getOpt/setOpt', async () => {
16
19
  const opt = await setOpt({ table: 'gis.dataset' });
17
20
  const data = await getOpt(opt);
18
21
  // console.log(data);
19
22
  assert.equal(data.table, 'gis.dataset');
20
23
  });
24
+
21
25
  const id = (Math.random() * 10000).toFixed();
22
26
  await t.test('dataInsert', async () => {
23
27
  const data = await dataInsert({ table: 'gis.dataset', data: { dataset_id: id, dataset_name: '222' } });
@@ -29,7 +33,17 @@ test('fucns crud', async (t) => {
29
33
  assert.equal(data.dataset_name, '22211');
30
34
  });
31
35
 
32
- pgClients.client.query('delete from gis.dataset where dataset_id=$1', [id]);
36
+ await t.test('dataDelete', async () => {
37
+ const data = await dataDelete({ table: 'gis.dataset', id });
38
+ assert.ok(data);
39
+ });
40
+
41
+ await t.test('isFileExists', async () => {
42
+ const data = await isFileExists({filepath: '../../crud/funcs/isFileExists.js'});
43
+ assert.equal(data, false);
44
+ });
45
+
46
+ // pgClients.client.query('delete from gis.dataset where dataset_id=$1', [id]);
33
47
  t.after(() => {
34
48
  pgClients.client?.end();
35
49
  rclient.quit();
@@ -7,6 +7,7 @@ import getMeta from '../../pg/funcs/getMeta.js';
7
7
  import autoIndex from '../../pg/funcs/autoIndex.js';
8
8
  import pgClients from '../../pg/pgClients.js';
9
9
  import rclient from '../../redis/client.js';
10
+ import getPG from '../../pg/funcs/getPG.js'
10
11
 
11
12
  test('funcs pg', async (t) => {
12
13
  await t.test('getMeta', async () => {
@@ -15,6 +16,11 @@ test('funcs pg', async (t) => {
15
16
  assert.ok(columns);
16
17
  });
17
18
 
19
+ await t.test('getPG', async (t) => {
20
+ const data = await getPG({});
21
+ assert.ok(data);
22
+ });
23
+
18
24
  await t.test('autoIndex', async () => {
19
25
  await autoIndex({ table: 'gis.dataset', columns: ['service_type'] });
20
26
  assert.ok(1);
@@ -4,6 +4,11 @@ import '../config.js';
4
4
  import pgClients from '../../pg/pgClients.js';
5
5
  import rclient from '../../redis/client.js';
6
6
  import getFilterSQL from '../../table/funcs/getFilterSQL/index.js';
7
+ import getTableSql from '../../table/funcs/getFilterSQL/index.js';
8
+ import getCustomQuery from '../../table/funcs/getFilterSQL/index.js';
9
+ import getFilterQuery from '../../table/funcs/getFilterSQL/index.js';
10
+ import formatValue from '../../table/funcs/getFilterSQL/index.js';
11
+ import getOptimizedQuery from '../../table/funcs/getFilterSQL/index.js';
7
12
 
8
13
  test('fucns table', async (t) => {
9
14
  await t.test('getMeta', async () => {
@@ -11,7 +16,31 @@ test('fucns table', async (t) => {
11
16
  // console.log(data);
12
17
  assert.ok(data.q);
13
18
  });
14
-
19
+
20
+ await t.test('formatValue', async (t) => {
21
+ const data = await formatValue( {table: 'gis.dataset'} );
22
+ assert.ok(data);
23
+ });
24
+
25
+ await t.test('getCustomQuery', async (t) => {
26
+ const data = await getCustomQuery( {table: 'gis.dataset'} );
27
+ assert.ok(data);
28
+ });
29
+
30
+ await t.test('getFilterQuery', async (t) => {
31
+ const data = await getFilterQuery( {table: 'gis.dataset'} );
32
+ assert.ok(data);
33
+ });
34
+
35
+ await t.test('getOptimizedQuery', async (t) => {
36
+ const data = await getOptimizedQuery( {table: 'gis.dataset'} );
37
+ assert.ok(data);
38
+ });
39
+
40
+ await t.test('getTableSql', async (t) => {
41
+ const data = await getTableSql( {table: 'gis.dataset'} );
42
+ assert.ok(data);
43
+ });
15
44
  t.after(() => {
16
45
  pgClients.client.end();
17
46
  rclient.quit();
File without changes