@websy/websy-designs 0.0.129 → 1.0.2
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/dist/server/helpers/v1/pgHelper.js +39 -3
- package/dist/server/routes/v1/api.js +3 -2
- package/dist/server/routes/v1/shop.js +13 -3
- package/dist/server/websy-designs-server.js +16 -2
- package/dist/websy-designs.debug.js +2658 -1847
- package/dist/websy-designs.js +2825 -1880
- package/dist/websy-designs.min.css +1 -1
- package/dist/websy-designs.min.js +1 -1
- package/package.json +1 -1
|
@@ -39,7 +39,19 @@ const sql = {
|
|
|
39
39
|
createdate timestamp without time zone DEFAULT now(),
|
|
40
40
|
editdate timestamp without time zone DEFAULT now()
|
|
41
41
|
);
|
|
42
|
-
|
|
42
|
+
`,
|
|
43
|
+
sessions: `
|
|
44
|
+
CREATE TABLE "sessions" (
|
|
45
|
+
"sid" varchar NOT NULL COLLATE "default",
|
|
46
|
+
"sess" json NOT NULL,
|
|
47
|
+
"expire" timestamp(6) NOT NULL
|
|
48
|
+
)
|
|
49
|
+
WITH (OIDS=FALSE);
|
|
50
|
+
|
|
51
|
+
ALTER TABLE "sessions" ADD CONSTRAINT "sessions_pkey" PRIMARY KEY ("sid") NOT DEFERRABLE INITIALLY IMMEDIATE;
|
|
52
|
+
|
|
53
|
+
CREATE INDEX "IDX_sessions_expire" ON "sessions" ("expire");
|
|
54
|
+
`
|
|
43
55
|
}
|
|
44
56
|
|
|
45
57
|
class PGHelper {
|
|
@@ -203,7 +215,9 @@ class PGHelper {
|
|
|
203
215
|
}
|
|
204
216
|
checkTables () {
|
|
205
217
|
this.createContentTable().then(() => {
|
|
206
|
-
this.createTranslationTable()
|
|
218
|
+
this.createTranslationTable().then(() => {
|
|
219
|
+
this.createSessionTable()
|
|
220
|
+
})
|
|
207
221
|
})
|
|
208
222
|
}
|
|
209
223
|
createContentTable () {
|
|
@@ -223,6 +237,28 @@ class PGHelper {
|
|
|
223
237
|
})
|
|
224
238
|
})
|
|
225
239
|
}
|
|
240
|
+
createSessionTable () {
|
|
241
|
+
return new Promise((resolve, reject) => {
|
|
242
|
+
if (process.env.SESSION_TABLE) {
|
|
243
|
+
resolve()
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
this.execute(`
|
|
247
|
+
SELECT COUNT(*) AS tableexists FROM information_schema.tables
|
|
248
|
+
WHERE table_name = 'sessions'
|
|
249
|
+
`).then(result => {
|
|
250
|
+
if (result.rows && result.rows[0] && +result.rows[0].tableexists === 0) {
|
|
251
|
+
this.execute(sql.sessions).then(() => {
|
|
252
|
+
resolve()
|
|
253
|
+
})
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
resolve()
|
|
257
|
+
}
|
|
258
|
+
})
|
|
259
|
+
}
|
|
260
|
+
})
|
|
261
|
+
}
|
|
226
262
|
createTranslationTable () {
|
|
227
263
|
return new Promise((resolve, reject) => {
|
|
228
264
|
this.execute(`
|
|
@@ -239,7 +275,7 @@ class PGHelper {
|
|
|
239
275
|
}
|
|
240
276
|
})
|
|
241
277
|
})
|
|
242
|
-
}
|
|
278
|
+
}
|
|
243
279
|
execute (query) {
|
|
244
280
|
console.log(query)
|
|
245
281
|
return new Promise((resolve, reject) => {
|
|
@@ -14,7 +14,7 @@ function APIRoutes (dbHelper) {
|
|
|
14
14
|
dbHelper.execute(sql).then(response => res.json(response), err => res.json(err))
|
|
15
15
|
})
|
|
16
16
|
router.get('/:entity/:id', (req, res) => {
|
|
17
|
-
let lang =
|
|
17
|
+
let lang = process.env.DEFAULT_LANGUAGE
|
|
18
18
|
if (req.session && req.session.language && req.query.notranslate !== 'true') {
|
|
19
19
|
lang = req.session.language
|
|
20
20
|
}
|
|
@@ -24,10 +24,11 @@ function APIRoutes (dbHelper) {
|
|
|
24
24
|
}, err => res.json(err))
|
|
25
25
|
})
|
|
26
26
|
router.get('/:entity', (req, res) => {
|
|
27
|
-
let lang =
|
|
27
|
+
let lang = process.env.DEFAULT_LANGUAGE
|
|
28
28
|
if (req.session && req.session.language && req.query.notranslate !== 'true') {
|
|
29
29
|
lang = req.session.language
|
|
30
30
|
}
|
|
31
|
+
console.log(`lang is ${lang}`)
|
|
31
32
|
const sql = dbHelper.buildSelect(req.params.entity, req.query, req.query.columns, lang)
|
|
32
33
|
dbHelper.execute(sql).then(response => {
|
|
33
34
|
res.json(translate(response))
|
|
@@ -172,7 +172,17 @@ function ShopRoutes (dbHelper, engine, app) {
|
|
|
172
172
|
dbHelper.execute(sql).then(result => {
|
|
173
173
|
if (result.rows.length > 0) {
|
|
174
174
|
let basket = result.rows[0]
|
|
175
|
-
|
|
175
|
+
try {
|
|
176
|
+
basket.items = JSON.parse(JSONSafeRead(basket.items))
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
if (basket.items) {
|
|
180
|
+
basket.items = JSON.parse(basket.items)
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
basket.items = []
|
|
184
|
+
}
|
|
185
|
+
}
|
|
176
186
|
try {
|
|
177
187
|
basket.meta = JSON.parse(JSONSafeRead(basket.meta))
|
|
178
188
|
}
|
|
@@ -230,10 +240,10 @@ function ShopRoutes (dbHelper, engine, app) {
|
|
|
230
240
|
}
|
|
231
241
|
|
|
232
242
|
function JSONSafeWrite (v) {
|
|
233
|
-
return v.replace(/'/g, '\'\'').replace(/\\(?=[bfnrtv0'"])/g, '\\\\').replace(/\t/)
|
|
243
|
+
return v.replace(/'/g, '\'\'').replace(/\\(?=[bfnrtv0'"])/g, '\\\\').replace(/\t/g, '')
|
|
234
244
|
}
|
|
235
245
|
function JSONSafeRead (v) {
|
|
236
|
-
return v.replace(/''/g, '\'').replace(/\\(?=[^bfnrtv0'"])/g, '\\\\')
|
|
246
|
+
return v.replace(/''/g, '\'').replace(/\\(?=[^bfnrtv0'"])/g, '\\\\').replace(/\t/g, '')
|
|
237
247
|
}
|
|
238
248
|
|
|
239
249
|
function readyCallback () {
|
|
@@ -96,7 +96,7 @@ module.exports = function (options) {
|
|
|
96
96
|
DBSession = require('connect-pg-simple')(expressSession)
|
|
97
97
|
store = new DBSession({
|
|
98
98
|
pool: dbHelper.pool, // Connection pool, need to make dynamic to accommodate mySql
|
|
99
|
-
tableName: 'sessions' // Use another table-name than the default "session" one
|
|
99
|
+
tableName: process.env.SESSION_TABLE || 'sessions' // Use another table-name than the default "session" one
|
|
100
100
|
})
|
|
101
101
|
}
|
|
102
102
|
}
|
|
@@ -107,7 +107,21 @@ module.exports = function (options) {
|
|
|
107
107
|
cookie: cookieConfig,
|
|
108
108
|
name: process.env.COOKIE_NAME,
|
|
109
109
|
store: store
|
|
110
|
-
})))
|
|
110
|
+
})))
|
|
111
|
+
if (process.env.TRANSLATE === true || process.env.TRANSLATE === 'true') {
|
|
112
|
+
app.use((req, res, next) => {
|
|
113
|
+
console.log(req.session)
|
|
114
|
+
if (req.query.lang && req.session) {
|
|
115
|
+
req.session.language = req.query.lang
|
|
116
|
+
req.session.save(() => {
|
|
117
|
+
next()
|
|
118
|
+
})
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
next()
|
|
122
|
+
}
|
|
123
|
+
})
|
|
124
|
+
}
|
|
111
125
|
if (options.uses && Array.isArray(options.uses)) {
|
|
112
126
|
try {
|
|
113
127
|
options.uses.forEach(u => app.use(u))
|