@websy/websy-designs 0.0.129 → 1.0.0

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.
@@ -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 = null
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 = null
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))
@@ -3,6 +3,7 @@ const bodyParser = require('body-parser')
3
3
  // const cookie = require('cookie')
4
4
  const cookieParser = require('cookie-parser')
5
5
  const expressSession = require('express-session')
6
+ const { log } = require('grunt')
6
7
  // const sessionHelper = require('./helpers/v1/sessionHelper')
7
8
  // const DBSession = require(process.env.EXPRESS_SESSION_CONNECT)(expressSession)
8
9
 
@@ -96,7 +97,7 @@ module.exports = function (options) {
96
97
  DBSession = require('connect-pg-simple')(expressSession)
97
98
  store = new DBSession({
98
99
  pool: dbHelper.pool, // Connection pool, need to make dynamic to accommodate mySql
99
- tableName: 'sessions' // Use another table-name than the default "session" one
100
+ tableName: process.env.SESSION_TABLE || 'sessions' // Use another table-name than the default "session" one
100
101
  })
101
102
  }
102
103
  }
@@ -107,7 +108,21 @@ module.exports = function (options) {
107
108
  cookie: cookieConfig,
108
109
  name: process.env.COOKIE_NAME,
109
110
  store: store
110
- })))
111
+ })))
112
+ if (process.env.TRANSLATE === true || process.env.TRANSLATE === 'true') {
113
+ app.use((req, res, next) => {
114
+ console.log(req.session)
115
+ if (req.query.lang && req.session) {
116
+ req.session.language = req.query.lang
117
+ req.session.save(() => {
118
+ next()
119
+ })
120
+ }
121
+ else {
122
+ next()
123
+ }
124
+ })
125
+ }
111
126
  if (options.uses && Array.isArray(options.uses)) {
112
127
  try {
113
128
  options.uses.forEach(u => app.use(u))