@opengis/fastify-table 1.1.26 → 1.1.28

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/Changelog.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # fastify-table
2
2
 
3
- ## 1.1.26 - 08.10.2024
3
+ ## 1.1.28 - 09.10.2024
4
+
5
+ - add after crud hook
6
+
7
+ ## 1.1.27 - 08.10.2024
4
8
 
5
9
  - add migrations
6
10
 
@@ -1,8 +1,6 @@
1
- import dataInsert from '../funcs/dataInsert.js';
2
- import getToken from '../funcs/getToken.js';
3
- import checkXSS from './utils/checkXSS.js';
4
- import getTemplate from '../../table/controllers/utils/getTemplate.js';
5
- import getAccess from '../funcs/getAccess.js';
1
+ import {
2
+ applyHook, getAccess, getTemplate, checkXSS, getToken, dataInsert,
3
+ } from '../../utils.js';
6
4
 
7
5
  export default async function insert(req) {
8
6
  const { actions = [] } = await getAccess(req, req.params.table) || {};
@@ -42,6 +40,9 @@ export default async function insert(req) {
42
40
  table: add || table, data: req.body, uid,
43
41
  });
44
42
 
43
+ // table_properties
44
+ await applyHook('afterInsert', { req, res });
45
+ // form DataTable
45
46
  const extraKeys = Object.keys(formData)?.filter((key) => formData?.[key]?.type === 'DataTable' && formData?.[key]?.table && formData?.[key]?.parent_id && req.body[key].length);
46
47
  if (extraKeys?.length) {
47
48
  res.extra = {};
@@ -1,10 +1,6 @@
1
- import dataUpdate from '../funcs/dataUpdate.js';
2
- import dataInsert from '../funcs/dataInsert.js';
3
- import pgClients from '../../pg/pgClients.js';
4
- import getToken from '../funcs/getToken.js';
5
- import checkXSS from './utils/checkXSS.js';
6
- import getTemplate from '../../table/controllers/utils/getTemplate.js';
7
- import getAccess from '../funcs/getAccess.js';
1
+ import {
2
+ pgClients, applyHook, getAccess, getTemplate, checkXSS, getToken, dataInsert, dataUpdate,
3
+ } from '../../utils.js';
8
4
 
9
5
  export default async function update(req) {
10
6
  const { actions = [], scope, my } = await getAccess(req, req.params.table, req.params.id) || {};
@@ -42,6 +38,10 @@ export default async function update(req) {
42
38
  table: tokenData?.table || table, id: tokenData?.id || id, data: req.body, uid,
43
39
  });
44
40
 
41
+ // table_properties
42
+ await applyHook('afterUpdate', { req, res });
43
+
44
+ // form DataTable
45
45
  const extraKeys = Object.keys(formData)?.filter((key) => formData?.[key]?.type === 'DataTable' && formData?.[key]?.table && formData?.[key]?.parent_id && req.body[key].length);
46
46
  if (extraKeys?.length) {
47
47
  res.extra = {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengis/fastify-table",
3
- "version": "1.1.26",
3
+ "version": "1.1.28",
4
4
  "type": "module",
5
5
  "description": "core-plugins",
6
6
  "main": "index.js",
@@ -90,14 +90,17 @@ COMMENT ON COLUMN admin.table_properties.property_data IS 'Класифікат
90
90
  CREATE TABLE if not exists setting.extra_data();
91
91
  ALTER TABLE setting.extra_data DROP CONSTRAINT IF EXISTS setting_extra_data_pkey;
92
92
  ALTER TABLE setting.extra_data DROP CONSTRAINT IF EXISTS setting_extra_data_property_id_fkey;
93
+ ALTER TABLE setting.extra_data DROP CONSTRAINT IF EXISTS setting_extra_data_property_key_object_id_entity_unique;
93
94
  ALTER TABLE setting.extra_data ADD COLUMN IF NOT EXISTS extra_data_id text;
94
95
  ALTER TABLE setting.extra_data ALTER COLUMN extra_data_id SET NOT NULL;
95
96
  ALTER TABLE setting.extra_data ALTER COLUMN extra_data_id SET DEFAULT next_id();
96
97
 
97
98
  ALTER TABLE setting.extra_data ADD COLUMN IF NOT EXISTS property_id text;
99
+ ALTER TABLE setting.extra_data ADD COLUMN IF NOT EXISTS property_key text;
98
100
  ALTER TABLE setting.extra_data ADD COLUMN IF NOT EXISTS property_entity text;
99
101
  ALTER TABLE setting.extra_data ADD COLUMN IF NOT EXISTS object_id text;
100
- ALTER TABLE setting.extra_data ADD COLUMN IF NOT EXISTS value_json json;
102
+ ALTER TABLE setting.extra_data ADD COLUMN IF NOT EXISTS value_text text;
103
+ ALTER TABLE setting.extra_data ADD COLUMN IF NOT EXISTS value_date timestamp without time zone;
101
104
  ALTER TABLE setting.extra_data ADD COLUMN IF NOT EXISTS uid text;
102
105
  ALTER TABLE setting.extra_data ALTER COLUMN uid SET DEFAULT '1'::text;
103
106
  ALTER TABLE setting.extra_data ADD COLUMN IF NOT EXISTS cdate timestamp without time zone;
@@ -107,12 +110,15 @@ ALTER TABLE setting.extra_data ADD COLUMN IF NOT EXISTS editor_date timestamp wi
107
110
  ALTER TABLE setting.extra_data ADD COLUMN IF NOT EXISTS files json;
108
111
  ALTER TABLE setting.extra_data ADD CONSTRAINT setting_extra_data_pkey PRIMARY KEY (extra_data_id);
109
112
  ALTER TABLE setting.extra_data ADD CONSTRAINT setting_extra_data_property_id_fkey FOREIGN KEY (property_id) REFERENCES admin.table_properties (property_id) MATCH SIMPLE;
113
+ ALTER TABLE setting.extra_data ADD CONSTRAINT setting_extra_data_property_key_object_id_entity_unique UNIQUE (property_key, object_id, property_entity);
110
114
 
111
115
  COMMENT ON TABLE setting.extra_data IS 'Значення користувацьких полів';
112
116
  COMMENT ON COLUMN setting.extra_data.property_id IS 'ID поля користувача';
117
+ COMMENT ON COLUMN setting.extra_data.property_key IS 'Назва колонки';
113
118
  COMMENT ON COLUMN setting.extra_data.property_entity IS 'Таблиця';
114
119
  COMMENT ON COLUMN setting.extra_data.object_id IS 'Ідентифікатор об''єкту';
115
- COMMENT ON COLUMN setting.extra_data.value_json IS 'Значення';
120
+ COMMENT ON COLUMN setting.extra_data.value_text IS 'Значення';
121
+ COMMENT ON COLUMN setting.extra_data.value_date IS 'Дата';
116
122
  COMMENT ON COLUMN setting.extra_data.uid IS 'ID користувача';
117
123
 
118
124
  CREATE INDEX IF NOT EXISTS setting_extra_data_cdate_btree_idx ON setting.extra_data USING btree (cdate);
@@ -18,6 +18,7 @@ ALTER TABLE admin.users add column if not exists enabled boolean;
18
18
  ALTER TABLE admin.users add column if not exists user_personal_code text;
19
19
  ALTER TABLE admin.users add column if not exists last_activity_date timestamp without time zone;
20
20
  ALTER TABLE admin.users add column if not exists user_type text DEFAULT 'regular'::text;
21
+ ALTER TABLE admin.users add column if not exists user_rnokpp text;
21
22
  ALTER TABLE admin.users add column if not exists salt text;
22
23
  ALTER TABLE admin.users add column if not exists cdate timestamp without time zone DEFAULT date_trunc('seconds'::text, now());
23
24
  ALTER TABLE admin.users add column if not exists editor_id text;
@@ -28,7 +28,7 @@ export default async function userCls(req) {
28
28
  case when type='sql' then data else null end as sql from admin.user_cls u
29
29
  where (case when type='json' then parent is null else true end)
30
30
  and uid=(select uid from admin.users where $1 in (login,uid) limit 1)
31
- and ${params?.id ? 'u.name=$2' : '1=1'}`;
31
+ and parent is null and ${params?.id ? 'u.name=$2' : '1=1'}`;
32
32
 
33
33
  if (query?.sql) return q;
34
34