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.
43 lines
1.3 KiB
JavaScript
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 };
|