'use strict'; const db = require('../config').database; const { domain, name } = require('../config').server; const { objectMapper, pick, isEmpty } = require('../utils/commons.util'); const initModels = require('../models/init-models'); const Sequelize = db.sequelize; const models = initModels(Sequelize); const AgentSessionsModelModel = models.agent_sessions; const getAgentSession = async where => { const r = await AgentSessionsModelModel.findOne({ where, }); return r?.toJSON() || {}; }; const createAgentSession = async data => { const r = await AgentSessionsModelModel.create(data); return r; }; const update = async (data, where) => { // const r = await AgentSessionsModelModel.create(data); const [rows] = await AgentSessionsModelModel.update(data, { where }); return rows; }; const upsert = async (data, where = {}) => { const _where = isEmpty(where) ? data : where; const [instance, created] = await AgentSessionsModelModel.findOrCreate({ where: _where, defaults: { ...data } }); if (!created) { await instance.update({ ...data }, { where }); const savedI = await instance.save(); // reload return savedI.toJSON(); } return instance.toJSON(); }; module.exports = { getAgentSession, createAgentSession, update, upsert };