28 lines
852 B
JavaScript
28 lines
852 B
JavaScript
const { escapeHtml } = require('../util/escapeHTML')
|
|
|
|
module.exports = async ({ db, from, i18n, session }, next) => {
|
|
// eslint-disable-next-line camelcase
|
|
const { id, first_name, username } = from
|
|
if (!id) return await next()
|
|
await db.User.findOne({ user_id: id })
|
|
.then(root => {
|
|
if (!root) {
|
|
root = new db.User()
|
|
root.user_id = id
|
|
// eslint-disable-next-line camelcase
|
|
root.first_name = escapeHtml(first_name) ?? 'Unknown'
|
|
root.username = username ?? 'Unknown'
|
|
}
|
|
// eslint-disable-next-line camelcase
|
|
root.first_name = escapeHtml(first_name) ?? 'Unknown'
|
|
root.username = username
|
|
// eslint-disable-next-line camelcase
|
|
session.root = root
|
|
i18n.locale(session.root.settings.lang)
|
|
return next().then(async () => {
|
|
await session.root.save()
|
|
})
|
|
})
|
|
.catch(err => console.log(err.message))
|
|
}
|