@opengis/fastify-table 1.1.147 → 1.1.149

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.1.147",
3
+ "version": "1.1.149",
4
4
  "type": "module",
5
5
  "description": "core-plugins",
6
6
  "keywords": [
@@ -1,5 +1,6 @@
1
1
  create schema if not exists admin;
2
2
  create schema if not exists crm;
3
+ create schema if not exists setting;
3
4
 
4
5
  -- drop old
5
6
  DROP TABLE IF EXISTS setting.extra_data;
@@ -142,3 +143,42 @@ CREATE INDEX IF NOT EXISTS crm_extra_data_cdate_btree_idx ON crm.extra_data USIN
142
143
  CREATE INDEX IF NOT EXISTS crm_extra_data_property_id_btree_idx ON crm.extra_data USING btree (property_id COLLATE pg_catalog."default");
143
144
  CREATE INDEX IF NOT EXISTS crm_extra_data_property_entity_btree_idx ON crm.extra_data USING btree (property_entity COLLATE pg_catalog."default");
144
145
  CREATE INDEX IF NOT EXISTS crm_extra_data_object_id_btree_idx ON crm.extra_data USING btree (object_id COLLATE pg_catalog."default");
146
+
147
+
148
+ CREATE TABLE IF NOT EXISTS setting.property ();
149
+ ALTER TABLE setting.property DROP CONSTRAINT IF EXISTS setting_property_pkey;
150
+
151
+ ALTER TABLE setting.property ADD COLUMN IF NOT EXISTS property_id text;
152
+ ALTER TABLE setting.property ADD COLUMN IF NOT EXISTS property_entity text;
153
+ ALTER TABLE setting.property ADD COLUMN IF NOT EXISTS property_key text;
154
+ ALTER TABLE setting.property ADD COLUMN IF NOT EXISTS property_text text;
155
+ ALTER TABLE setting.property ADD COLUMN IF NOT EXISTS property_json json;
156
+ ALTER TABLE setting.property ADD COLUMN IF NOT EXISTS property_int integer;
157
+ ALTER TABLE setting.property ADD COLUMN IF NOT EXISTS level text;
158
+ ALTER TABLE setting.property ADD COLUMN IF NOT EXISTS object_id text;
159
+ ALTER TABLE setting.property ADD COLUMN IF NOT EXISTS category text;
160
+
161
+ ALTER TABLE setting.property ADD COLUMN IF NOT EXISTS uid text;
162
+ ALTER TABLE setting.property ADD COLUMN IF NOT EXISTS editor_id text;
163
+ ALTER TABLE setting.property ADD COLUMN IF NOT EXISTS editor_date timestamp without time zone;
164
+ ALTER TABLE setting.property ADD COLUMN IF NOT EXISTS cdate timestamp without time zone;
165
+ ALTER TABLE setting.property ALTER COLUMN cdate SET DEFAULT date_trunc('seconds'::text, now());
166
+ ALTER TABLE setting.property ADD COLUMN IF NOT EXISTS files json;
167
+
168
+ ALTER TABLE setting.property ADD CONSTRAINT setting_property_pkey PRIMARY KEY (property_id);
169
+
170
+ COMMENT ON TABLE setting.property IS 'Налаштування';
171
+ COMMENT ON COLUMN setting.property.property_entity IS 'Сутність';
172
+ COMMENT ON COLUMN setting.property.property_key IS 'Ключ';
173
+ COMMENT ON COLUMN setting.property.property_text IS 'Текстове значення налаштування';
174
+ COMMENT ON COLUMN setting.property.property_json IS 'Значення налаштування';
175
+ COMMENT ON COLUMN setting.property.level IS 'Рівень (user/system)';
176
+ COMMENT ON COLUMN setting.property.object_id IS 'ID Об''єкту';
177
+ COMMENT ON COLUMN setting.property.category IS 'Категорія (filter/menu/...)';
178
+ COMMENT ON COLUMN setting.property.property_int IS 'Цілочислове значения';
179
+
180
+ CREATE INDEX if not exists setting_property_object_id_gin_idx ON setting.property USING gin (object_id COLLATE pg_catalog."default" gin_trgm_ops);
181
+ CREATE INDEX if not exists setting_property_property_entity_gin_idx ON setting.property USING gin (property_entity COLLATE pg_catalog."default" gin_trgm_ops);
182
+ CREATE INDEX if not exists setting_property_property_int_btree_idx ON setting.property USING btree (property_int);
183
+ CREATE INDEX if not exists setting_property_property_key_gin_idx ON setting.property USING gin (property_key COLLATE pg_catalog."default" gin_trgm_ops);
184
+ CREATE INDEX if not exists setting_property_property_text_gin_idx ON setting.property USING gin (property_text COLLATE pg_catalog."default" gin_trgm_ops);
@@ -1,5 +1,9 @@
1
- const dateTypeList = ['date', 'timestamp', 'timestamp without time zone'];
1
+ const dateTypeList = ['date', 'timestamp', 'timestamp without time zone', 'timestamp with time zone'];
2
2
  const numberTypeList = ['float8', 'int4', 'int8', 'numeric', 'double precision', 'integer'];
3
+ const isValidDate = (dateStr) => {
4
+ const [dd, mm, yyyy] = dateStr.split('.');
5
+ return new Date(mm + '/' + dd + '/' + yyyy).toString() !== 'Invalid Date';
6
+ };
3
7
 
4
8
  function dt(y, m, d) {
5
9
  return new Date(Date.UTC(y, m, d)).toISOString().slice(0, 10);
@@ -53,6 +57,10 @@ function formatValue({
53
57
  const [startDate, endDate] = value.split('-');
54
58
  const min = formatDateISOString(startDate);
55
59
  const max = formatDateISOString(endDate);
60
+
61
+ if (!isValidDate(startDate) || !isValidDate(endDate)) {
62
+ return { op: 'between', query: 'false', extra };
63
+ }
56
64
  const query = extra && pk
57
65
  ? `${pk} in (select object_id from crm.extra_data where property_key='${name}' and value_date::date >= '${min}'::date and value_date::date <= '${max}'::date)`
58
66
  : `${name}::date >= '${min}'::date and ${name}::date <= '${max}'::date`;