@webda/postgres 3.3.4 → 3.4.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.
@@ -4,9 +4,9 @@ import { SQLResult, SQLStore, SQLStoreParameters } from "./sqlstore.js";
4
4
  /**
5
5
  *
6
6
  */
7
- declare class PostgresParameters extends SQLStoreParameters {
7
+ export declare class PostgresParameters extends SQLStoreParameters {
8
8
  /**
9
- * @default false
9
+ * @default true
10
10
  */
11
11
  usePool?: boolean;
12
12
  /**
@@ -15,8 +15,20 @@ declare class PostgresParameters extends SQLStoreParameters {
15
15
  postgresqlServer?: ClientConfig | PoolConfig;
16
16
  /**
17
17
  * Auto create table if not exists
18
+ * @default true
18
19
  */
19
20
  autoCreateTable?: boolean;
21
+ /**
22
+ * View name prefix
23
+ */
24
+ viewPrefix?: string;
25
+ /**
26
+ * Regexp of models to include
27
+ *
28
+ * @default [".*"]
29
+ */
30
+ views?: string[];
31
+ constructor(params: any, store: PostgresStore);
20
32
  }
21
33
  /**
22
34
  * Store data within PostgreSQL with JSONB
@@ -34,12 +46,12 @@ declare class PostgresParameters extends SQLStoreParameters {
34
46
  *
35
47
  * @WebdaModda
36
48
  */
37
- export default class PostgresStore<T extends CoreModel = CoreModel, K extends PostgresParameters = PostgresParameters> extends SQLStore<T, K> {
49
+ export declare class PostgresStore<T extends CoreModel = CoreModel, K extends PostgresParameters = PostgresParameters> extends SQLStore<T, K> {
38
50
  client: pg.Client | pg.Pool;
39
51
  /**
40
52
  * @override
41
53
  */
42
- loadParameters(params: any): any;
54
+ loadParameters(params: any): PostgresParameters;
43
55
  /**
44
56
  * @override
45
57
  */
@@ -60,6 +72,13 @@ export default class PostgresStore<T extends CoreModel = CoreModel, K extends Po
60
72
  * @returns
61
73
  */
62
74
  executeQuery(query: string, values?: any[]): Promise<SQLResult<T>>;
75
+ /**
76
+ * Create views for each models
77
+ *
78
+ * @param [prefix=""] prefix to add to the view name
79
+ * @param [skips=[]] list of models to skip
80
+ */
81
+ createViews(): Promise<void>;
63
82
  /**
64
83
  * @override
65
84
  */
@@ -92,4 +111,4 @@ export default class PostgresStore<T extends CoreModel = CoreModel, K extends Po
92
111
  */
93
112
  _deleteItemFromCollection(uuid: string, attribute: string, index: number, itemWriteCondition: any, itemWriteConditionField: string, updateDate: Date): Promise<any>;
94
113
  }
95
- export {};
114
+ export default PostgresStore;
@@ -1,4 +1,4 @@
1
- import { StoreNotFoundError, UpdateConditionFailError } from "@webda/core";
1
+ import { RegExpStringValidator, StoreNotFoundError, UpdateConditionFailError } from "@webda/core";
2
2
  import pg from "pg";
3
3
  import { SQLStore, SQLStoreParameters } from "./sqlstore.js";
4
4
  /*
@@ -14,7 +14,14 @@ import { SQLStore, SQLStoreParameters } from "./sqlstore.js";
14
14
  /**
15
15
  *
16
16
  */
17
- class PostgresParameters extends SQLStoreParameters {
17
+ export class PostgresParameters extends SQLStoreParameters {
18
+ constructor(params, store) {
19
+ super(params, store);
20
+ this.autoCreateTable ?? (this.autoCreateTable = true);
21
+ this.usePool ?? (this.usePool = false);
22
+ this.viewPrefix ?? (this.viewPrefix = "");
23
+ this.views ?? (this.views = ["regex:.*"]);
24
+ }
18
25
  }
19
26
  /**
20
27
  * Store data within PostgreSQL with JSONB
@@ -32,7 +39,7 @@ class PostgresParameters extends SQLStoreParameters {
32
39
  *
33
40
  * @WebdaModda
34
41
  */
35
- export default class PostgresStore extends SQLStore {
42
+ export class PostgresStore extends SQLStore {
36
43
  /**
37
44
  * @override
38
45
  */
@@ -61,6 +68,7 @@ export default class PostgresStore extends SQLStore {
61
68
  if (!this.parameters.autoCreateTable) {
62
69
  return;
63
70
  }
71
+ this.log("DEBUG", `CREATE TABLE IF NOT EXISTS ${this.parameters.table} (uuid VARCHAR(255) NOT NULL, data jsonb, CONSTRAINT ${this.parameters.table}_pkey PRIMARY KEY (uuid))`);
64
72
  await this.client.query(`CREATE TABLE IF NOT EXISTS ${this.parameters.table} (uuid VARCHAR(255) NOT NULL, data jsonb, CONSTRAINT ${this.parameters.table}_pkey PRIMARY KEY (uuid))`);
65
73
  }
66
74
  /**
@@ -84,6 +92,68 @@ export default class PostgresStore extends SQLStore {
84
92
  rowCount: res.rowCount
85
93
  };
86
94
  }
95
+ /**
96
+ * Create views for each models
97
+ *
98
+ * @param [prefix=""] prefix to add to the view name
99
+ * @param [skips=[]] list of models to skip
100
+ */
101
+ async createViews() {
102
+ // CREATE VIEW my_view AS SELECT uuid,data->>'status' as status from table;
103
+ const webda = this.getWebda();
104
+ const models = webda.getModels();
105
+ const app = webda.getApplication();
106
+ const validator = new RegExpStringValidator(this.parameters.views);
107
+ for (let model of Object.values(models)) {
108
+ const store = webda.getModelStore(model);
109
+ if (!(store instanceof PostgresStore)) {
110
+ continue;
111
+ }
112
+ const fields = ["uuid"];
113
+ const schema = model.getSchema();
114
+ console.log("SCHEMA", schema, model.getIdentifier(false), validator.validate(model.getIdentifier(false)), this.parameters.views);
115
+ if (!schema || !validator.validate(model.getIdentifier(false))) {
116
+ continue;
117
+ }
118
+ const plural = webda.getApplication().getModelPlural(model.getIdentifier());
119
+ for (let field of Object.keys(schema.properties)) {
120
+ if (field === "uuid" || !field.match(/^[0-9a-zA-Z-_$]+$/)) {
121
+ continue;
122
+ }
123
+ let cast = "";
124
+ let type = schema.properties[field].type;
125
+ if (type === "number") {
126
+ cast = "::bigint";
127
+ }
128
+ else if (type === "boolean") {
129
+ cast = "::boolean";
130
+ }
131
+ else if (type === "string") {
132
+ cast = "::text";
133
+ }
134
+ else if (type === "array") {
135
+ cast = "::jsonb";
136
+ }
137
+ else if (type === "object") {
138
+ cast = "::jsonb";
139
+ }
140
+ fields.push(`(data->>'${field}')${cast} as ${field}`);
141
+ }
142
+ let query = `CREATE OR REPLACE VIEW ${this.parameters.viewPrefix}${plural} AS SELECT ${fields.join(",")} FROM ${store.getParameters().table}`;
143
+ if (store.handleModel(model) > 0) {
144
+ query += ` WHERE (data#>>'{__types}')::jsonb ? '${app.getShortId(app.getModelName(model))}'`;
145
+ }
146
+ try {
147
+ this.log("INFO", "Dropping view");
148
+ await store.getClient().query(`DROP VIEW IF EXISTS ${this.parameters.viewPrefix}${plural}`);
149
+ this.log("INFO", query);
150
+ await store.getClient().query(query);
151
+ }
152
+ catch (err) {
153
+ this.log("ERROR", err);
154
+ }
155
+ }
156
+ }
87
157
  /**
88
158
  * @override
89
159
  */
@@ -197,4 +267,5 @@ export default class PostgresStore extends SQLStore {
197
267
  }
198
268
  }
199
269
  }
270
+ export default PostgresStore;
200
271
  //# sourceMappingURL=postgresstore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"postgresstore.js","sourceRoot":"","sources":["../src/postgresstore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgresstore.js","sourceRoot":"","sources":["../src/postgresstore.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webda/postgres",
3
- "version": "3.3.4",
3
+ "version": "3.4.1",
4
4
  "description": "Implements Postgres on webda",
5
5
  "keywords": [
6
6
  "postgres",
@@ -19,7 +19,7 @@
19
19
  "test": "c8 mocha --recursive --exit --timeout=100000 src/**/*.spec.ts src/*.spec.ts"
20
20
  },
21
21
  "dependencies": {
22
- "@webda/core": "^3.13.2",
22
+ "@webda/core": "^3.15.0",
23
23
  "pg": "^8.7.1"
24
24
  },
25
25
  "files": [
@@ -48,7 +48,7 @@
48
48
  },
49
49
  "devDependencies": {
50
50
  "@types/node": "18.11.13",
51
- "@webda/shell": "^3.9.3"
51
+ "@webda/shell": "^3.10.0"
52
52
  },
53
53
  "type": "module",
54
54
  "engines": {
@@ -60,5 +60,5 @@
60
60
  "@webda/shell"
61
61
  ]
62
62
  },
63
- "gitHead": "a04e42ab925a5c486ec7bd2a945f9c3671a2c549"
63
+ "gitHead": "17df8665107ab92b599cd8f5707b32690e3470a0"
64
64
  }
package/test/config.json CHANGED
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "asyncDelete": true,
39
39
  "type": "PostgresStore",
40
- "table": "public.idents",
40
+ "table": "idents",
41
41
  "model": "Webda/Ident"
42
42
  },
43
43
  "users": {
@@ -49,7 +49,7 @@
49
49
  }
50
50
  },
51
51
  "type": "PostgresStore",
52
- "table": "public.users",
52
+ "table": "users",
53
53
  "model": "Webda/User"
54
54
  }
55
55
  }
package/webda.module.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "beans": {},
3
3
  "deployers": {},
4
4
  "moddas": {
5
- "Webda/PostgresStore": "lib/postgresstore:default"
5
+ "Webda/PostgresStore": "lib/postgresstore:PostgresStore"
6
6
  },
7
7
  "models": {
8
8
  "graph": {},
@@ -132,7 +132,7 @@
132
132
  },
133
133
  "usePool": {
134
134
  "type": "boolean",
135
- "default": false
135
+ "default": true
136
136
  },
137
137
  "postgresqlServer": {
138
138
  "anyOf": [
@@ -2346,7 +2346,22 @@
2346
2346
  },
2347
2347
  "autoCreateTable": {
2348
2348
  "type": "boolean",
2349
- "description": "Auto create table if not exists"
2349
+ "description": "Auto create table if not exists",
2350
+ "default": true
2351
+ },
2352
+ "viewPrefix": {
2353
+ "type": "string",
2354
+ "description": "View name prefix"
2355
+ },
2356
+ "views": {
2357
+ "type": "array",
2358
+ "items": {
2359
+ "type": "string"
2360
+ },
2361
+ "description": "Regexp of models to include",
2362
+ "default": [
2363
+ ".*"
2364
+ ]
2350
2365
  },
2351
2366
  "openapi": {
2352
2367
  "type": "object",