-'use strict';
-
-var _ = require('lodash');
-var Contact = require('../../models').Contact;
-var ContactPhone = require('../../models').ContactPhone;
-var ContactEmail = require('../../models').ContactEmail;
-var ReportCall = require('../../models').ReportCall;
-var ReportCallHistory = require('../../models').history.ReportCallHistory;
-var ReportMailSession = require('../../models').ReportMailSession;
-var ReportMailSessionHistory = require('../../models').history.ReportMailSessionHistory;
-var Tag = require('../../models').Tag;
-var stream = require('stream');
-var sequelize = require('../../models').sequelize;
-var util = require('util');
-
-// Get list of contacts
-exports.index = function(req, res) {
-
- var attributes = ['name', 'surname', 'description'];
- var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
- var page = req.query.page ? parseInt(req.query.page, 10) : 0;
-
- var query = {
- where: {},
- limit: per_page,
- offset: page * per_page
- };
-
- _.forIn(req.query, function(value, key) {
- switch (key) {
- case 'per_page':
- case 'page':
- break;
- case 'sort_by':
- query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
- break;
- case 'sort_order':
- break;
- case '$':
- query.where.$or = [];
- attributes.forEach(function(attribute) {
- var tmp = {};
- tmp[attribute] = {
- $like: '%' + value + '%'
- };
-
- query.where.$or.push(tmp);
- });
- break;
- default:
- query.where[key] = {
- $like: {}
- };
- query.where[key].$like = '%' + value + '%';
- }
- });
-
-
- Contact
- .findAndCountAll(query)
- .then(function(managed_contacts) {
- return res.status(200).send(managed_contacts);
- })
- .catch(function(err) {
- return handleError(res, err);
- });
-};
-
-// Get a single managed_contact
-exports.show = function(req, res) {
- Contact
- .findById(req.params.id, {
- include: [{
- model: ContactPhone,
- as: 'Phones',
- include: [{
- model: ReportCall,
- as: 'Inbounds',
- include: [{
- all: true
- }]
- }, {
- model: ReportCall,
- as: 'Outbounds',
- include: [{
- all: true
- }]
- }, {
- model: ReportCallHistory,
- as: 'HistoryInbounds',
- include: [{
- all: true
- }]
- }, {
- model: ReportCallHistory,
- as: 'HistoryOutbounds',
- include: [{
- all: true
- }]
- }]
- }, {
- model: ContactEmail,
- as: 'Emails',
- include: [{
- model: ReportMailSession,
- as: 'InboundMessages',
- include: [{
- all: true
- }]
- }, {
- model: ReportMailSession,
- as: 'OutboundMessages',
- include: [{
- all: true
- }]
- }, {
- model: ReportMailSessionHistory,
- as: 'HistoryInboundMessages',
- include: [{
- all: true
- }]
- }, {
- model: ReportMailSessionHistory,
- as: 'HistoryOutboundMessages',
- include: [{
- all: true
- }]
- }]
- }]
- })
- .then(function(managed_contact) {
- if (!managed_contact) {
- return res.sendStatus(404);
- }
- return res.send(managed_contact);
- })
- .catch(function(err) {
- console.log(err);
- return handleError(res, err);
- });
-};
-
-exports.getHistory = function(req, res) {
-
-};
-
-// validate contact uniqueness
-exports.contactValidation = function(req, res) {
- Contact.findAll({
- where: {
- $or: {
- '$Phones.phone$': req.body.phones,
- '$Emails.email$': req.body.emails
- }
- },
- include: [{
- all: true
- }]
- })
- .then(function(contacts) {
- console.log(contacts);
- return res.status(200).send(contacts);
- })
- .catch(function(err) {
- console.log(err);
- return handleError(res, err);
- });
-};
-// Creates a new managed_contact in the DB.
-exports.create = function(req, res, next) {
- var newPhones = [],
- newEmails = [];
- Tag.findAll()
- .then(function(tags) {
- var newTags = [];
- var tagList = _.pluck(_.pluck(tags, 'dataValues'), 'name');
- if (req.body.tags) {
- var contactTags = req.body.tags.split(',');
- contactTags.forEach(function(elem) {
- if (!_.includes(tags, elem)) {
- newTags.push({
- name: elem
- });
- }
- });
- if (newTags.length) {
- Tag.bulkCreate(newTags, {
- individualHooks: true
- });
- }
- }
- req.body.UserId = req.user.id;
- console.log('body', req.body);
- var phones = _.uniq(_.pluck(req.body.Phones, 'phone'));
- console.log(phones);
- var emails = _.uniq(_.pluck(req.body.Emails, 'email'));
- console.log(emails);
- var contactPhones = [];
- req.body.Phones.forEach(function(elem) {
- console.log('elem', elem);
- contactPhones.push(ContactPhone.findOrCreate({
- where: {
- phone: elem.phone
- },
- defaults: {
- phone: elem.phone
- }
- }));
- });
- console.log('return cP');
- return contactPhones;
- })
- .all()
- .then(function(res) {
- newPhones = _.map(res, function(elem) {
- return elem[0];
- });
-
- var contactEmails = [];
- req.body.Emails.forEach(function(elem) {
- console.log('elem', elem);
- contactEmails.push(ContactEmail.findOrCreate({
- where: {
- email: elem.email
- },
- defaults: {
- email: elem.email
- }
- }));
- });
-
- return contactEmails;
- })
- .all()
- .then(function(res) {
- newEmails = _.map(res, function(elem) {
- return elem[0];
- });
- delete req.body.Phones;
- delete req.body.Emails;
-
- return Contact.create(req.body);
- })
- .then(function(contact) {
- return [contact, contact.setPhones(newPhones)];
- })
- .spread(function(contact) {
- return [contact, contact.setEmails(newEmails)];
- })
- .spread(function(contact) {
- return res.status(201).send(contact);
- })
- .catch(function(err) {
- console.log(err);
- return next(err);
- });
-};
-
-// Updates an existing managed_contact in the DB.
-exports.update = function(req, res, next) {
- req.body.Phones = _.uniq(_.pluck(req.body.Phones, 'phone'));
- req.body.Emails = _.uniq(_.pluck(req.body.Emails, 'email'));
- console.log(req.body.Phones);
- console.log(req.body.Emails);
- Contact.findAll({
- where: {
- $or: {
- '$Phones.phone$': req.body.Phones,
- '$Emails.email$': req.body.Emails
- },
- id: {
- $ne: req.params.id
- }
- },
- include: [{
- all: true
- }]
- })
- .then(function(contacts) {
- console.log(contacts);
- if (!contacts) {
- return res.sendStatus(404);
- }
- if (contacts.length > 0) {
- return res.status(500).send({
- message: 'MESSAGE_EXIST_PHONE_OR_EMAIL'
- });
- }
- Tag.findAll()
- .then(function(tags) {
- var newTags = [];
- var tagList = _.pluck(_.pluck(tags, 'dataValues'), 'name');
- if (req.body.tags) {
- var contactTags = req.body.tags.split(',');
- contactTags.forEach(function(elem) {
- if (!_.includes(tags, elem)) {
- newTags.push({
- name: elem
- });
- }
- });
- if (newTags.length) {
- Tag.bulkCreate(newTags, {
- individualHooks: true
- });
- }
- }
- delete req.body.id;
- var phones = _.map(req.body.Phones, function(elem) {
- return {
- phone: elem,
- ContactId: req.params.id
- };
- });
- var emails = _.map(req.body.Emails, function(elem) {
- return {
- email: elem,
- ContactId: req.params.id
- };
- });
- delete req.body.Phones;
- delete req.body.Emails;
- return sequelize.transaction(function(t) {
- return Contact.update(req.body, {
- where: {
- id: req.params.id
- }
- }, {
- transaction: t,
- include: [{
- all: true
- }]
- })
- .then(function() {
- return ContactPhone
- .destroy({
- where: {
- ContactId: req.params.id
- }
- }, {
- transaction: t
- })
- .then(function() {
- return ContactPhone
- .bulkCreate(phones, {
- transaction: t
- })
- .then(function() {
- return ContactEmail
- .destroy({
- where: {
- ContactId: req.params.id
- }
- }, {
- transaction: t
- })
- .then(function() {
- return ContactEmail
- .bulkCreate(emails, {
- transaction: t
- })
- .then(function() {
- return res.sendStatus(201);
- })
- })
- })
- })
- })
- })
- .catch(function(err) {
- return handleError(res, err);
- });
- })
- .catch(function(err) {
- return handleError(res, err);
- });
-
- })
- .catch(function(err) {
- console.log(err);
- return handleError(res, err);
- });
-};
-
-// Join contacts info in the DB.
-exports.joinContacts = function(req, res, next) {
- if (req.body.tags) {
- Tag.findAll()
- .then(function(tags) {
- var newTags = [];
- var tagList = _.pluck(_.pluck(tags, 'dataValues'), 'name');
- var contactTags = req.body.tags.split(',');
- contactTags.forEach(function(elem) {
- if (!_.includes(tags, elem)) {
- newTags.push({
- name: elem
- });
- }
- });
- if (newTags.length) {
- Tag.bulkCreate(newTags, {
- individualHooks: true
- });
- }
- })
- .catch(function(err) {
- return handleError(res, err);
- });
- }
- var updateId = req.body.id;
- delete req.body.id;
- var phones = _.map(req.body.Phones, function(elem) {
- return {
- phone: elem.phone,
- ContactId: updateId
- };
- });
- var emails = _.map(req.body.Emails, function(elem) {
- return {
- email: elem.email,
- ContactId: updateId
- };
- });
- delete req.body.Phones;
- delete req.body.Emails;
- return sequelize.transaction(function(t) {
- return Contact.update(req.body, {
- where: {
- id: updateId
- }
- }, {
- transaction: t,
- include: [{
- all: true
- }]
- })
- .then(function(contact) {
- return ContactPhone
- .bulkCreate(phones, {
- transaction: t
- })
- .then(function() {
- return ContactEmail
- .bulkCreate(emails, {
- transaction: t
- })
- .then(function() {
- return Contact.findById(updateId, {
- transaction: t
- })
- .then(function(contact) {
- return res.status(201).send(contact);
- })
- })
- })
- })
- })
- .catch(function(err) {
- console.log(err);
- return next(err);
- });
-};
-
-// Deletes a managed_contact from the DB.
-exports.destroy = function(req, res) {
- Contact
- .findById(req.params.id)
- .then(function(managed_contact) {
- if (!managed_contact) {
- return res.sendStatus(404);
- }
- managed_contact.destroy()
- .then(function() {
- return res.sendStatus(204);
- })
- .catch(function(err) {
- return handleError(res, err);
- });
- })
- .catch(function(err) {
- return handleError(res, err);
- });
-};
-
-// Deletes a managed_contact from the DB.
-exports.bulkDestroy = function(req, res) {
- Contact
- .destroy({
- where: {
- id: req.query.id
- },
- individualHooks: true
- })
- .then(function() {
- return res.sendStatus(204);
- })
- .catch(function(err) {
- return handleError(res, err);
- });
-};
-
-function handleError(res, err) {
- return res.status(500).send(err);
-}
+var _0xd672=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x43\x6F\x6E\x74\x61\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x43\x6F\x6E\x74\x61\x63\x74\x50\x68\x6F\x6E\x65","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65\x48\x69\x73\x74\x6F\x72\x79","\x68\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x4C\x69\x73\x74","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C\x48\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x52\x6F\x6F\x6D\x48\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x54\x61\x67","\x73\x74\x72\x65\x61\x6D","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x61\x73\x79\x6E\x63","\x69\x6E\x64\x65\x78","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x69\x64","\x6D\x61\x70","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x6C\x69\x73\x74","\x63\x6F\x6D\x70\x61\x6E\x79","\x63\x6F\x6D\x70\x61\x6E\x79\x5F\x6C\x69\x73\x74\x5F\x66\x69\x6C\x74\x65\x72","\x73\x63\x6F\x70\x65","\x67\x65\x74\x4C\x69\x73\x74\x73","\x75\x73\x65\x72","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x67\x65\x6E\x74","\x72\x6F\x6C\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x67\x65\x74\x4C\x6F\x67","\x64\x65\x74\x61\x69\x6C","\x67\x65\x6E\x65\x72\x61\x6C","\x73\x68\x6F\x77","\x70\x68\x6F\x6E\x65","\x6C\x6F\x67\x54\x79\x70\x65","\x6A\x6F\x75\x72\x6E\x61\x6C","\x74\x79\x70\x65","\x69\x6E\x62\x6F\x75\x6E\x64","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E","\x6D\x6F\x62\x69\x6C\x65","\x73\x6F\x75\x72\x63\x65","\x66\x72\x6F\x6D","\x65\x6D\x61\x69\x6C","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x71\x75\x65\x75\x65","\x70\x61\x72\x61\x6D\x73","\x6D\x65\x72\x67\x65","\x6C\x65\x6E\x67\x74\x68","\x2C","\x6A\x6F\x69\x6E","\x6E\x61\x6D\x65","\x53\x45\x4C\x45\x43\x54\x20\x25\x73\x20\x46\x52\x4F\x4D\x20\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73\x20\x57\x48\x45\x52\x45\x20\x69\x64\x3D\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x4C\x69\x73\x74\x49\x64","\x66\x69\x6E\x64\x41\x6C\x6C","\x67\x65\x74\x45\x76\x65\x6E\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x76\x6F\x69\x63\x65","\x6D\x61\x69\x6C","\x65\x76\x65\x6E\x74\x43\x68\x61\x6E\x6E\x65\x6C","\x63\x72\x65\x61\x74\x65","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x62\x6F\x64\x79","\x25\x73\x3D\x27\x25\x73\x27","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x55\x50\x44\x41\x54\x45\x20\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73\x20\x53\x45\x54\x20\x25\x73\x20\x57\x48\x45\x52\x45\x20\x69\x64\x3D\x25\x73","\x55\x73\x65\x72\x49\x64","\x61\x6C\x6C","\x74\x61\x67\x73","\x73\x70\x6C\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x63\x6F\x6E\x74\x61\x63\x74\x73","\x6B\x6F","\x6F\x6B","\x66\x6F\x72\x45\x61\x63\x68\x4F\x66","\x75\x6E\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73"];_0xd672[0];var _=require(_0xd672[1]);var Contact=require(_0xd672[3])[_0xd672[2]];var User=require(_0xd672[3])[_0xd672[4]];var ContactPhone=require(_0xd672[3])[_0xd672[5]];var ContactEmail=require(_0xd672[3])[_0xd672[6]];var CustomField=require(_0xd672[3])[_0xd672[7]];var ReportCall=require(_0xd672[3])[_0xd672[8]];var ReportQueue=require(_0xd672[3])[_0xd672[9]];var ReportQueueHistory=require(_0xd672[3])[_0xd672[11]][_0xd672[10]];var ReportIntegration=require(_0xd672[3])[_0xd672[12]];var List=require(_0xd672[3])[_0xd672[13]];var ReportCallHistory=require(_0xd672[3])[_0xd672[11]][_0xd672[14]];var ReportMailSession=require(_0xd672[3])[_0xd672[15]];var ReportMailRoom=require(_0xd672[3])[_0xd672[16]];var ReportMailRoomHistory=require(_0xd672[3])[_0xd672[11]][_0xd672[17]];var ReportMailSessionHistory=require(_0xd672[3])[_0xd672[11]][_0xd672[18]];var Tag=require(_0xd672[3])[_0xd672[19]];var stream=require(_0xd672[20]);var sequelize=require(_0xd672[3])[_0xd672[21]];var util=require(_0xd672[22]);var Util=require(_0xd672[23]);var Async=require(_0xd672[24]);exports[_0xd672[25]]=function(_0x819bx17,_0x819bx18,_0x819bx19){switch(_0x819bx17[_0xd672[41]][_0xd672[44]]){case _0xd672[43]:return User[_0xd672[42]](_0x819bx17[_0xd672[41]][_0xd672[31]])[_0xd672[30]](function(_0x819bx1e){return _0x819bx1e[_0xd672[40]]()})[_0xd672[30]](function(_0x819bx1c){var _0x819bx1d=_[_0xd672[32]](_0x819bx1c,_0xd672[31]);return Contact[_0xd672[39]](_0xd672[36],_0xd672[37],{method:[_0xd672[38],_0x819bx17[_0xd672[33]]]})[_0xd672[35]](Util[_0xd672[34]](_0x819bx17[_0xd672[33]],{ListId:{$in:_0x819bx1d}}))})[_0xd672[30]](function(_0x819bx1b){_0x819bx18[_0xd672[29]](200)[_0xd672[28]](_0x819bx1b)})[_0xd672[27]](function(_0x819bx1a){console[_0xd672[26]](_0x819bx1a);return handleError(_0x819bx18,_0x819bx1a)});default:return Contact[_0xd672[39]](_0xd672[36],_0xd672[37],{method:[_0xd672[38],_0x819bx17[_0xd672[33]]]})[_0xd672[35]](Util[_0xd672[34]](_0x819bx17[_0xd672[33]]))[_0xd672[30]](function(_0x819bx1b){_0x819bx18[_0xd672[29]](200)[_0xd672[28]](_0x819bx1b)})[_0xd672[27]](function(_0x819bx1a){console[_0xd672[26]](_0x819bx1a);return handleError(_0x819bx18,_0x819bx1a)})}};exports[_0xd672[45]]=function(_0x819bx17,_0x819bx18){return Contact[_0xd672[45]]()[_0xd672[30]](function(_0x819bx1f){return _0x819bx18[_0xd672[29]](200)[_0xd672[28]](_0x819bx1f)})[_0xd672[27]](function(_0x819bx1a){return handleError(_0x819bx18,_0x819bx1a)})};exports[_0xd672[46]]=function(_0x819bx17,_0x819bx18,_0x819bx19){_0x819bx17[_0xd672[33]][_0xd672[47]]=_0x819bx17[_0xd672[33]][_0xd672[47]]||_0xd672[48];_0x819bx17[_0xd672[33]][_0xd672[49]]=_0x819bx17[_0xd672[33]][_0xd672[49]]||_0xd672[50];_0x819bx17[_0xd672[33]][_0xd672[51]]=_0x819bx17[_0xd672[33]][_0xd672[51]]||_0xd672[52];_0x819bx17[_0xd672[33]][_0xd672[53]]=_0x819bx17[_0xd672[33]][_0xd672[53]]||_0xd672[54];var _0x819bx20,_0x819bx21={};return Contact[_0xd672[42]](_0x819bx17[_0xd672[64]][_0xd672[31]])[_0xd672[30]](function(_0x819bx22){if(!_0x819bx22){return _0x819bx18[_0xd672[55]](404)};switch(_0x819bx17[_0xd672[33]][_0xd672[47]]){case _0xd672[48]:switch(_0x819bx17[_0xd672[33]][_0xd672[49]]){case _0xd672[50]:_0x819bx20=(_0x819bx17[_0xd672[33]][_0xd672[51]]===_0xd672[11])?ReportCallHistory:ReportCall;if(_0x819bx17[_0xd672[33]][_0xd672[53]]===_0xd672[56]){_0x819bx21[_0xd672[57]]=[_0x819bx22[_0xd672[50]],_0x819bx22[_0xd672[58]]]}else {_0x819bx21[_0xd672[59]]=[_0x819bx22[_0xd672[50]],_0x819bx22[_0xd672[58]]]};break;case _0xd672[61]:_0x819bx20=(_0x819bx17[_0xd672[33]][_0xd672[51]]===_0xd672[11])?ReportMailRoomHistory:ReportMailRoom;_0x819bx21[_0xd672[60]]=_0x819bx22[_0xd672[61]];break;default:_0x819bx20=(_0x819bx17[_0xd672[33]][_0xd672[51]]===_0xd672[11])?ReportCallHistory:ReportCall};break;case _0xd672[63]:switch(_0x819bx17[_0xd672[33]][_0xd672[49]]){case _0xd672[50]:_0x819bx20=(_0x819bx17[_0xd672[33]][_0xd672[51]]===_0xd672[11])?ReportQueueHistory:ReportQueue;_0x819bx21[_0xd672[62]]=[_0x819bx22[_0xd672[50]],_0x819bx22[_0xd672[58]]];break;case _0xd672[61]:return _0x819bx18[_0xd672[55]](404);default:_0x819bx20=(_0x819bx17[_0xd672[33]][_0xd672[51]]===_0xd672[11])?ReportQueueHistory:ReportQueue};break;default:_0x819bx20=ReportCall;_0x819bx17[_0xd672[33]][_0xd672[49]]=_0xd672[50]};delete _0x819bx17[_0xd672[33]][_0xd672[47]];delete _0x819bx17[_0xd672[33]][_0xd672[49]];delete _0x819bx17[_0xd672[33]][_0xd672[51]];delete _0x819bx17[_0xd672[33]][_0xd672[53]];return _0x819bx20[_0xd672[35]](Util[_0xd672[34]](_0x819bx17[_0xd672[33]],_0x819bx21))})[_0xd672[30]](function(_0x819bx1b){_0x819bx18[_0xd672[29]](200)[_0xd672[28]](_0x819bx1b)})[_0xd672[27]](function(_0x819bx1a){console[_0xd672[26]](_0x819bx1a);return handleError(_0x819bx18,_0x819bx1a)})};exports[_0xd672[49]]=function(_0x819bx17,_0x819bx18){var _0x819bx23;return Contact[_0xd672[39]](_0xd672[36],_0xd672[41],_0xd672[37])[_0xd672[42]](_0x819bx17[_0xd672[64]][_0xd672[31]])[_0xd672[30]](function(_0x819bx27){if(!_0x819bx27){return _0x819bx18[_0xd672[55]](404)};_0x819bx23=_0x819bx27[_0xd672[74]];return CustomField[_0xd672[76]]({where:{ListId:_0x819bx23[_0xd672[75]]}})})[_0xd672[30]](function(_0x819bx25){if(_0x819bx25[_0xd672[66]]){var _0x819bx26=_[_0xd672[32]](_0x819bx25,_0xd672[69])[_0xd672[68]](_0xd672[67]);return sequelize[_0xd672[33]](util[_0xd672[71]](_0xd672[70],_0x819bx26,_0x819bx17[_0xd672[64]][_0xd672[31]]),{type:sequelize[_0xd672[73]][_0xd672[72]]})}})[_0xd672[30]](function(_0x819bx24){if(_0x819bx24){_[_0xd672[65]](_0x819bx23,_0x819bx24[0])}})[_0xd672[30]](function(){return _0x819bx18[_0xd672[29]](200)[_0xd672[28]](_0x819bx23)})[_0xd672[27]](function(_0x819bx1a){console[_0xd672[26]](_0x819bx1a);return handleError(_0x819bx18,_0x819bx1a)})};exports[_0xd672[77]]=function(_0x819bx17,_0x819bx18){return ReportIntegration[_0xd672[42]](_0x819bx17[_0xd672[64]][_0xd672[31]])[_0xd672[30]](function(_0x819bx29){var _0x819bx21={};switch(_0x819bx29[_0xd672[80]]){case _0xd672[78]:_0x819bx21={$or:{phone:_0x819bx29[_0xd672[62]],mobile:_0x819bx29[_0xd672[62]]}};break;case _0xd672[79]:_0x819bx21={email:_0x819bx29[_0xd672[60]]};break;default:_0x819bx21={}};return Contact[_0xd672[76]]({where:_0x819bx21,include:[{model:List,where:{id:_[_0xd672[32]](_[_0xd672[32]](_0x819bx17[_0xd672[41]].Lists,_0xd672[74]),_0xd672[31])}}]})})[_0xd672[30]](function(_0x819bx28){return _0x819bx18[_0xd672[29]](200)[_0xd672[28]](_0x819bx28)})[_0xd672[27]](function(_0x819bx1a){console[_0xd672[26]](_0x819bx1a);return handleError(_0x819bx18,_0x819bx1a)})};exports[_0xd672[81]]=function(_0x819bx17,_0x819bx18,_0x819bx19){var _0x819bx23;return Tag[_0xd672[76]]()[_0xd672[30]](function(_0x819bx2b){var _0x819bx2c=[];var _0x819bx2d=_[_0xd672[32]](_[_0xd672[32]](_0x819bx2b,_0xd672[74]),_0xd672[69]);if(_0x819bx17[_0xd672[83]][_0xd672[90]]){var _0x819bx2e=_0x819bx17[_0xd672[83]][_0xd672[90]][_0xd672[91]](_0xd672[67]);_0x819bx2e[_0xd672[86]](function(_0x819bx2a){if(!_[_0xd672[92]](_0x819bx2d,_0x819bx2a)){_0x819bx2c[_0xd672[85]](Tag[_0xd672[81]]({name:_0x819bx2a}))}})};return _0x819bx2c})[_0xd672[89]]()[_0xd672[30]](function(){_0x819bx17[_0xd672[83]][_0xd672[88]]=_0x819bx17[_0xd672[41]][_0xd672[31]];return Contact[_0xd672[81]](_0x819bx17[_0xd672[83]])})[_0xd672[30]](function(_0x819bx22){_0x819bx23=_0x819bx22;return CustomField[_0xd672[76]]({where:{ListId:_0x819bx23[_0xd672[75]]}})})[_0xd672[30]](function(_0x819bx25){if(_0x819bx25[_0xd672[66]]){var _0x819bx26=[];_0x819bx25[_0xd672[86]](function(_0x819bx2a){if(_0x819bx17[_0xd672[83]][_0xd672[82]](_0x819bx2a[_0xd672[69]])){_0x819bx26[_0xd672[85]](util[_0xd672[71]](_0xd672[84],_0x819bx2a[_0xd672[69]],_0x819bx17[_0xd672[83]][_0x819bx2a[_0xd672[69]]]))}});if(_0x819bx26[_0xd672[66]]){_0x819bx26=_0x819bx26[_0xd672[68]](_0xd672[67]);return sequelize[_0xd672[33]](util[_0xd672[71]](_0xd672[87],_0x819bx26,_0x819bx23[_0xd672[31]]))}}})[_0xd672[30]](function(){return _0x819bx18[_0xd672[29]](201)[_0xd672[28]](_0x819bx23)})[_0xd672[27]](function(_0x819bx1a){console[_0xd672[26]](_0x819bx1a);return _0x819bx19(_0x819bx1a)})};exports[_0xd672[93]]=function(_0x819bx17,_0x819bx18,_0x819bx19){var _0x819bx2f=[];var _0x819bx30={ok:0,ko:0};return Tag[_0xd672[76]]()[_0xd672[30]](function(_0x819bx2b){var _0x819bx2c=[],_0x819bx2e=[];var _0x819bx2d=_[_0xd672[32]](_[_0xd672[32]](_0x819bx2b,_0xd672[74]),_0xd672[69]);_0x819bx17[_0xd672[83]][_0xd672[94]][_0xd672[86]](function(_0x819bx22){if(_0x819bx22[_0xd672[90]]){_0x819bx2e=_[_0xd672[98]](_0x819bx2e,_0x819bx22[_0xd672[90]][_0xd672[91]](_0xd672[67]))}});_0x819bx2e[_0xd672[86]](function(_0x819bx2a){if(!_[_0xd672[92]](_0x819bx2d,_0x819bx2a)){_0x819bx2c[_0xd672[85]](Tag[_0xd672[81]]({name:_0x819bx2a}))}});return _0x819bx2c})[_0xd672[89]]()[_0xd672[30]](function(){var _0x819bx32=[];Async[_0xd672[97]](_0x819bx17[_0xd672[83]][_0xd672[94]],function(_0x819bx22){_0x819bx22[_0xd672[88]]=_0x819bx17[_0xd672[41]][_0xd672[31]];_0x819bx32[_0xd672[85]](Contact[_0xd672[81]](_0x819bx22)[_0xd672[30]](function(_0x819bx22){_0x819bx2f[_0xd672[85]](_0x819bx22);_0x819bx30[_0xd672[96]]++})[_0xd672[27]](function(_0x819bx1a){_0x819bx30[_0xd672[95]]++}))});return _0x819bx32})[_0xd672[89]]()[_0xd672[30]](function(){return CustomField[_0xd672[76]]({where:{ListId:{$in:_[_0xd672[32]](_0x819bx17[_0xd672[83]][_0xd672[94]],_0xd672[75])}}})})[_0xd672[30]](function(_0x819bx25){var _0x819bx31=[];if(_0x819bx25[_0xd672[66]]){var _0x819bx26=[];_0x819bx2f[_0xd672[86]](function(_0x819bx22){_0x819bx26=[];_0x819bx25[_0xd672[86]](function(_0x819bx2a){if(_0x819bx22[_0xd672[82]](_0x819bx2a[_0xd672[69]])){_0x819bx26[_0xd672[85]](util[_0xd672[71]](_0xd672[84],_0x819bx2a[_0xd672[69]],_0x819bx17[_0xd672[83]][_0x819bx2a[_0xd672[69]]]))}});if(_0x819bx26[_0xd672[66]]){_0x819bx26=_0x819bx26[_0xd672[68]](_0xd672[67]);_0x819bx31[_0xd672[85]](sequelize[_0xd672[33]](util[_0xd672[71]](_0xd672[87],_0x819bx26,_0x819bx22[_0xd672[31]])))}})};return _0x819bx31})[_0xd672[89]]()[_0xd672[30]](function(){return _0x819bx18[_0xd672[29]](201)[_0xd672[28]](_0x819bx30)})[_0xd672[27]](function(_0x819bx1a){console[_0xd672[26]](_0x819bx1a);return _0x819bx19(_0x819bx1a)})};exports[_0xd672[99]]=function(_0x819bx17,_0x819bx18,_0x819bx19){var _0x819bx23;return Tag[_0xd672[76]]()[_0xd672[30]](function(_0x819bx2b){var _0x819bx2c=[];var _0x819bx2d=_[_0xd672[32]](_[_0xd672[32]](_0x819bx2b,_0xd672[74]),_0xd672[69]);if(_0x819bx17[_0xd672[83]][_0xd672[90]]){var _0x819bx2e=_0x819bx17[_0xd672[83]][_0xd672[90]][_0xd672[91]](_0xd672[67]);_0x819bx2e[_0xd672[86]](function(_0x819bx2a){if(!_[_0xd672[92]](_0x819bx2d,_0x819bx2a)){_0x819bx2c[_0xd672[85]](Tag[_0xd672[81]]({name:_0x819bx2a}))}})};return _0x819bx2c})[_0xd672[30]](function(){return Contact[_0xd672[42]](_0x819bx17[_0xd672[64]][_0xd672[31]])})[_0xd672[30]](function(_0x819bx22){delete _0x819bx17[_0xd672[83]][_0xd672[31]];return _0x819bx22[_0xd672[100]](_0x819bx17[_0xd672[83]])})[_0xd672[30]](function(_0x819bx22){_0x819bx23=_0x819bx22;return CustomField[_0xd672[76]]({where:{ListId:_0x819bx23[_0xd672[75]]}})})[_0xd672[30]](function(_0x819bx25){if(_0x819bx25[_0xd672[66]]){var _0x819bx26=[];_0x819bx25[_0xd672[86]](function(_0x819bx2a){if(_0x819bx17[_0xd672[83]][_0xd672[82]](_0x819bx2a[_0xd672[69]])){_0x819bx26[_0xd672[85]](util[_0xd672[71]](_0xd672[84],_0x819bx2a[_0xd672[69]],_0x819bx17[_0xd672[83]][_0x819bx2a[_0xd672[69]]]))}});if(_0x819bx26[_0xd672[66]]){_0x819bx26=_0x819bx26[_0xd672[68]](_0xd672[67]);return sequelize[_0xd672[33]](util[_0xd672[71]](_0xd672[87],_0x819bx26,_0x819bx23[_0xd672[31]]))}}})[_0xd672[30]](function(){return _0x819bx18[_0xd672[29]](200)[_0xd672[28]](_0x819bx23)})[_0xd672[27]](function(_0x819bx1a){console[_0xd672[26]](_0x819bx1a);return handleError(_0x819bx18,_0x819bx1a)})};exports[_0xd672[101]]=function(_0x819bx17,_0x819bx18){return Contact[_0xd672[42]](_0x819bx17[_0xd672[64]][_0xd672[31]])[_0xd672[30]](function(_0x819bx27){if(!_0x819bx27){return _0x819bx18[_0xd672[55]](404)};return _0x819bx27[_0xd672[101]]()})[_0xd672[30]](function(){return _0x819bx18[_0xd672[55]](204)})[_0xd672[27]](function(_0x819bx1a){return handleError(_0x819bx18,_0x819bx1a)})};exports[_0xd672[102]]=function(_0x819bx17,_0x819bx18){return Contact[_0xd672[101]]({where:{id:_0x819bx17[_0xd672[33]][_0xd672[103]]},individualHooks:true})[_0xd672[30]](function(){return _0x819bx18[_0xd672[55]](204)})[_0xd672[27]](function(_0x819bx1a){return handleError(_0x819bx18,_0x819bx1a)})};function handleError(_0x819bx18,_0x819bx1a){return _0x819bx18[_0xd672[29]](500)[_0xd672[28]](_0x819bx1a)}
\ No newline at end of file