You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Global-sales/wai-server/services/agent_sessions.service.js

43 lines
1.3 KiB
JavaScript

'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 };