3dfac03884016a3c4e5b6d5a06f4ca0047614e6d
[motion2.git] / server / api / cmList / cmList.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xd4eb=['name','query','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','params','keys','include','find','create','user','role','Lists','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','addDisposition','ListId','Disposition','removeDispositions','ids','addContacts','CmContact','isArray','tags','join','push','each','omit','success','dataValues','errors','message','Malformed\x20request\x20syntax','getContacts','CmCustomField','CustomFields','format','cf_%d','alias','select','from','cm_contacts','c.ListId\x20=\x20?','distinct','field','c.cf_','item','cm_contact_has_items','CmContactId\x20=\x20c.id','additionalPhone_','description','ItemTypeId\x20=\x20?','description_additionalPhone_','toString','isEmpty','now','/tmp/list_%d_%s.csv','setHeader','Content-disposition','list_%d_%s.csv','Content-type','addCustomField','findOne','addCustomFields','Sequelize','TEXT','text','number','INTEGER','switch','BOOLEAN','defaultValue','sequelize','cf_%s','findAndCountAll','getGlobalCustomFields','addAgents','spread','emit','userCmList:save','removeAgents','userCmList:remove','getAgents','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','./cmList.socket','register','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','update','then','destroy','get','UserProfileResource','error','stack','send','index','map','CmList','rawAttributes','type','key'];(function(_0x3b7fda,_0x36ff46){var _0x3fe8d0=function(_0x9d5d44){while(--_0x9d5d44){_0x3b7fda['push'](_0x3b7fda['shift']());}};_0x3fe8d0(++_0x36ff46);}(_0xd4eb,0x68));var _0xbd4e=function(_0x27fb04,_0x241192){_0x27fb04=_0x27fb04-0x0;var _0x4a964b=_0xd4eb[_0x27fb04];return _0x4a964b;};'use strict';var emlformat=require(_0xbd4e('0x0'));var rimraf=require(_0xbd4e('0x1'));var zipdir=require(_0xbd4e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xbd4e('0x3'));var moment=require(_0xbd4e('0x4'));var BPromise=require(_0xbd4e('0x5'));var Mustache=require(_0xbd4e('0x6'));var util=require(_0xbd4e('0x7'));var path=require(_0xbd4e('0x8'));var sox=require(_0xbd4e('0x9'));var csv=require(_0xbd4e('0xa'));var ejs=require(_0xbd4e('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xbd4e('0xc'));var squel=require(_0xbd4e('0xd'));var crypto=require(_0xbd4e('0xe'));var jsforce=require(_0xbd4e('0xf'));var deskjs=require(_0xbd4e('0x10'));var toCsv=require(_0xbd4e('0xa'));var querystring=require(_0xbd4e('0x11'));var Papa=require(_0xbd4e('0x12'));var Redis=require(_0xbd4e('0x13'));var authService=require('../../components/auth/service');var qs=require(_0xbd4e('0x14'));var as=require(_0xbd4e('0x15'));var hardwareService=require(_0xbd4e('0x16'));var logger=require('../../config/logger')(_0xbd4e('0x17'));var utils=require('../../config/utils');var config=require(_0xbd4e('0x18'));var licenseUtil=require(_0xbd4e('0x19'));var db=require(_0xbd4e('0x1a'))['db'];var csv_results;config['redis']=_[_0xbd4e('0x1b')](config[_0xbd4e('0x1c')],{'host':_0xbd4e('0x1d'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xbd4e('0x1c')]));require(_0xbd4e('0x1e'))[_0xbd4e('0x1f')](socket);function respondWithStatusCode(_0x18ee00,_0x5b8144){_0x5b8144=_0x5b8144||0xcc;return function(_0x55b168){if(_0x55b168){return _0x18ee00[_0xbd4e('0x20')](_0x5b8144);}return _0x18ee00[_0xbd4e('0x21')](_0x5b8144)[_0xbd4e('0x22')]();};}function respondWithResult(_0x484502,_0x148637){_0x148637=_0x148637||0xc8;return function(_0x440c40){if(_0x440c40){return _0x484502[_0xbd4e('0x21')](_0x148637)['json'](_0x440c40);}};}function respondWithFilteredResult(_0x2edfd2,_0x26940d){return function(_0x542e43){if(_0x542e43){var _0x1995d4=typeof _0x26940d[_0xbd4e('0x23')]===_0xbd4e('0x24')&&typeof _0x26940d['limit']===_0xbd4e('0x24');var _0x678381=_0x542e43[_0xbd4e('0x25')];var _0x3168b0=_0x1995d4?0x0:_0x26940d[_0xbd4e('0x23')];var _0x157769=_0x1995d4?_0x542e43['count']:_0x26940d[_0xbd4e('0x23')]+_0x26940d[_0xbd4e('0x26')];var _0x1fc0d7;if(_0x157769>=_0x678381){_0x157769=_0x678381;_0x1fc0d7=0xc8;}else{_0x1fc0d7=0xce;}_0x2edfd2[_0xbd4e('0x21')](_0x1fc0d7);return _0x2edfd2[_0xbd4e('0x27')](_0xbd4e('0x28'),_0x3168b0+'-'+_0x157769+'/'+_0x678381)[_0xbd4e('0x29')](_0x542e43);}return null;};}function patchUpdates(_0x20fe09){return function(_0x2b7c2c){try{jsonpatch[_0xbd4e('0x2a')](_0x2b7c2c,_0x20fe09,!![]);}catch(_0x2aa26c){return BPromise['reject'](_0x2aa26c);}return _0x2b7c2c['save']();};}function saveUpdates(_0x5b0ebd,_0xbd01ee){return function(_0x1a0347){if(_0x1a0347){return _0x1a0347[_0xbd4e('0x2b')](_0x5b0ebd)[_0xbd4e('0x2c')](function(_0x23f8b0){return _0x23f8b0;});}return null;};}function removeEntity(_0x1d437c,_0x4de9cf){return function(_0x191f27){if(_0x191f27){return _0x191f27[_0xbd4e('0x2d')]()[_0xbd4e('0x2c')](function(){var _0x142bd9=_0x191f27[_0xbd4e('0x2e')]({'plain':!![]});var _0x5b9450='Lists';return db[_0xbd4e('0x2f')][_0xbd4e('0x2d')]({'where':{'type':_0x5b9450,'resourceId':_0x142bd9['id']}})[_0xbd4e('0x2c')](function(){return _0x191f27;});})['then'](function(){_0x1d437c['status'](0xcc)[_0xbd4e('0x22')]();});}};}function handleEntityNotFound(_0x4b8a67,_0x3eca9b){return function(_0x20b295){if(!_0x20b295){_0x4b8a67[_0xbd4e('0x20')](0x194);}return _0x20b295;};}function handleError(_0x541241,_0x31b9aa){_0x31b9aa=_0x31b9aa||0x1f4;return function(_0x5bcf7e){logger[_0xbd4e('0x30')](_0x5bcf7e[_0xbd4e('0x31')]);if(_0x5bcf7e['name']){delete _0x5bcf7e['name'];}_0x541241[_0xbd4e('0x21')](_0x31b9aa)[_0xbd4e('0x32')](_0x5bcf7e);};}exports[_0xbd4e('0x33')]=function(_0x41ff1b,_0x460466){var _0x5d7efe={},_0x5e5a69={},_0x595396={'count':0x0,'rows':[]};var _0x582793=_[_0xbd4e('0x34')](db[_0xbd4e('0x35')][_0xbd4e('0x36')],function(_0x54a149){return{'name':_0x54a149['fieldName'],'type':_0x54a149[_0xbd4e('0x37')][_0xbd4e('0x38')]};});_0x5e5a69['model']=_[_0xbd4e('0x34')](_0x582793,_0xbd4e('0x39'));_0x5e5a69[_0xbd4e('0x3a')]=_['keys'](_0x41ff1b[_0xbd4e('0x3a')]);_0x5e5a69[_0xbd4e('0x3b')]=_['intersection'](_0x5e5a69[_0xbd4e('0x3c')],_0x5e5a69['query']);_0x5d7efe[_0xbd4e('0x3d')]=_[_0xbd4e('0x3e')](_0x5e5a69[_0xbd4e('0x3c')],qs[_0xbd4e('0x3f')](_0x41ff1b[_0xbd4e('0x3a')][_0xbd4e('0x3f')]));_0x5d7efe[_0xbd4e('0x3d')]=_0x5d7efe[_0xbd4e('0x3d')][_0xbd4e('0x40')]?_0x5d7efe[_0xbd4e('0x3d')]:_0x5e5a69[_0xbd4e('0x3c')];if(!_0x41ff1b['query'][_0xbd4e('0x41')](_0xbd4e('0x42'))){_0x5d7efe['limit']=qs['limit'](_0x41ff1b[_0xbd4e('0x3a')]['limit']);_0x5d7efe[_0xbd4e('0x23')]=qs[_0xbd4e('0x23')](_0x41ff1b[_0xbd4e('0x3a')][_0xbd4e('0x23')]);}_0x5d7efe[_0xbd4e('0x43')]=qs[_0xbd4e('0x44')](_0x41ff1b[_0xbd4e('0x3a')][_0xbd4e('0x44')]);_0x5d7efe[_0xbd4e('0x45')]=qs[_0xbd4e('0x3b')](_[_0xbd4e('0x46')](_0x41ff1b['query'],_0x5e5a69['filters']),_0x582793);if(_0x41ff1b[_0xbd4e('0x3a')][_0xbd4e('0x47')]){_0x5d7efe['where']=_['merge'](_0x5d7efe[_0xbd4e('0x45')],{'$or':_[_0xbd4e('0x34')](_0x582793,function(_0x38bbc5){if(_0x38bbc5['type']!==_0xbd4e('0x48')){var _0x546424={};_0x546424[_0x38bbc5[_0xbd4e('0x39')]]={'$like':'%'+_0x41ff1b[_0xbd4e('0x3a')][_0xbd4e('0x47')]+'%'};return _0x546424;}})});}_0x5d7efe=_[_0xbd4e('0x49')]({},_0x5d7efe,_0x41ff1b[_0xbd4e('0x4a')]);var _0x446e65={'where':_0x5d7efe[_0xbd4e('0x45')]};return db[_0xbd4e('0x35')]['count'](_0x446e65)[_0xbd4e('0x2c')](function(_0x273d29){_0x595396[_0xbd4e('0x25')]=_0x273d29;if(_0x41ff1b[_0xbd4e('0x3a')][_0xbd4e('0x4b')]){_0x5d7efe['include']=[{'all':!![]}];}return db[_0xbd4e('0x35')][_0xbd4e('0x4c')](_0x5d7efe);})[_0xbd4e('0x2c')](function(_0x164bab){_0x595396[_0xbd4e('0x4d')]=_0x164bab;return _0x595396;})[_0xbd4e('0x2c')](respondWithFilteredResult(_0x460466,_0x5d7efe))[_0xbd4e('0x4e')](handleError(_0x460466,null));};exports[_0xbd4e('0x4f')]=function(_0x411506,_0x11c40a){var _0x3b6434={'raw':![],'where':{'id':_0x411506[_0xbd4e('0x50')]['id']}},_0xbd5130={};_0xbd5130[_0xbd4e('0x3c')]=_[_0xbd4e('0x51')](db[_0xbd4e('0x35')]['rawAttributes']);_0xbd5130['query']=_[_0xbd4e('0x51')](_0x411506[_0xbd4e('0x3a')]);_0xbd5130['filters']=_[_0xbd4e('0x3e')](_0xbd5130[_0xbd4e('0x3c')],_0xbd5130[_0xbd4e('0x3a')]);_0x3b6434[_0xbd4e('0x3d')]=_[_0xbd4e('0x3e')](_0xbd5130[_0xbd4e('0x3c')],qs[_0xbd4e('0x3f')](_0x411506[_0xbd4e('0x3a')][_0xbd4e('0x3f')]));_0x3b6434[_0xbd4e('0x3d')]=_0x3b6434[_0xbd4e('0x3d')][_0xbd4e('0x40')]?_0x3b6434[_0xbd4e('0x3d')]:_0xbd5130[_0xbd4e('0x3c')];if(_0x411506[_0xbd4e('0x3a')][_0xbd4e('0x4b')]){_0x3b6434[_0xbd4e('0x52')]=[{'all':!![]}];}_0x3b6434=_['merge']({},_0x3b6434,_0x411506[_0xbd4e('0x4a')]);return db['CmList'][_0xbd4e('0x53')](_0x3b6434)[_0xbd4e('0x2c')](handleEntityNotFound(_0x11c40a,null))[_0xbd4e('0x2c')](respondWithResult(_0x11c40a,null))['catch'](handleError(_0x11c40a,null));};exports[_0xbd4e('0x54')]=function(_0x1cfb4d,_0x209b73){return db[_0xbd4e('0x35')][_0xbd4e('0x54')](_0x1cfb4d['body'],{})[_0xbd4e('0x2c')](function(_0xb63db0){var _0x2b69fe=_0x1cfb4d[_0xbd4e('0x55')][_0xbd4e('0x2e')]({'plain':!![]});if(!_0x2b69fe)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2b69fe[_0xbd4e('0x56')]===_0xbd4e('0x55')){var _0x4987a4=_0xb63db0[_0xbd4e('0x2e')]({'plain':!![]});var _0x2b77ff=_0xbd4e('0x57');return db['UserProfileSection'][_0xbd4e('0x53')]({'where':{'name':_0x2b77ff,'userProfileId':_0x2b69fe[_0xbd4e('0x58')]},'raw':!![]})[_0xbd4e('0x2c')](function(_0x57842c){if(_0x57842c&&_0x57842c[_0xbd4e('0x59')]===0x0){return db[_0xbd4e('0x2f')][_0xbd4e('0x54')]({'name':_0x4987a4['name'],'resourceId':_0x4987a4['id'],'type':_0x57842c[_0xbd4e('0x39')],'sectionId':_0x57842c['id']},{})['then'](function(){return _0xb63db0;});}else{return _0xb63db0;}})[_0xbd4e('0x4e')](function(_0x5cc241){logger[_0xbd4e('0x30')](_0xbd4e('0x5a'),_0x5cc241);throw _0x5cc241;});}return _0xb63db0;})[_0xbd4e('0x2c')](respondWithResult(_0x209b73,0xc9))[_0xbd4e('0x4e')](handleError(_0x209b73,null));};exports[_0xbd4e('0x2b')]=function(_0x58fa42,_0x2f8986){if(_0x58fa42[_0xbd4e('0x5b')]['id']){delete _0x58fa42[_0xbd4e('0x5b')]['id'];}return db[_0xbd4e('0x35')][_0xbd4e('0x53')]({'where':{'id':_0x58fa42['params']['id']}})[_0xbd4e('0x2c')](handleEntityNotFound(_0x2f8986,null))[_0xbd4e('0x2c')](saveUpdates(_0x58fa42['body'],null))[_0xbd4e('0x2c')](respondWithResult(_0x2f8986,null))[_0xbd4e('0x4e')](handleError(_0x2f8986,null));};exports[_0xbd4e('0x2d')]=function(_0x286139,_0x222755){return db[_0xbd4e('0x35')][_0xbd4e('0x53')]({'where':{'id':_0x286139['params']['id']}})[_0xbd4e('0x2c')](handleEntityNotFound(_0x222755,null))['then'](removeEntity(_0x222755,null))[_0xbd4e('0x4e')](handleError(_0x222755,null));};exports[_0xbd4e('0x5c')]=function(_0x28b1e0,_0x9487f2){return db[_0xbd4e('0x35')][_0xbd4e('0x5c')]()[_0xbd4e('0x2c')](respondWithResult(_0x9487f2,null))['catch'](handleError(_0x9487f2,null));};exports[_0xbd4e('0x5d')]=function(_0x4ddce1,_0x5022a5,_0x55f18d){if(_0x4ddce1[_0xbd4e('0x5b')]['id']){delete _0x4ddce1[_0xbd4e('0x5b')]['id'];}return db[_0xbd4e('0x35')][_0xbd4e('0x53')]({'where':{'id':_0x4ddce1[_0xbd4e('0x50')]['id']}})[_0xbd4e('0x2c')](handleEntityNotFound(_0x5022a5,null))[_0xbd4e('0x2c')](function(_0x4ba222){if(_0x4ba222){_0x4ddce1[_0xbd4e('0x5b')][_0xbd4e('0x5e')]=_0x4ba222['id'];return db[_0xbd4e('0x5f')][_0xbd4e('0x54')](_0x4ddce1[_0xbd4e('0x5b')]);}})[_0xbd4e('0x2c')](respondWithResult(_0x5022a5,null))['catch'](handleError(_0x5022a5,null));};exports['getDispositions']=function(_0x368566,_0x38b8ed,_0x55666e){var _0x508eb9={'raw':![],'where':{}};var _0x133d66={};var _0xa2b50e={'count':0x0,'rows':[]};return db[_0xbd4e('0x35')]['findOne']({'where':{'id':_0x368566[_0xbd4e('0x50')]['id']}})[_0xbd4e('0x2c')](handleEntityNotFound(_0x38b8ed,null))[_0xbd4e('0x2c')](function(_0x37a636){if(_0x37a636){_0x133d66[_0xbd4e('0x3c')]=_[_0xbd4e('0x51')](db[_0xbd4e('0x5f')][_0xbd4e('0x36')]);_0x133d66[_0xbd4e('0x3a')]=_[_0xbd4e('0x51')](_0x368566[_0xbd4e('0x3a')]);_0x133d66['filters']=_[_0xbd4e('0x3e')](_0x133d66[_0xbd4e('0x3c')],_0x133d66[_0xbd4e('0x3a')]);_0x508eb9[_0xbd4e('0x3d')]=_['intersection'](_0x133d66[_0xbd4e('0x3c')],qs[_0xbd4e('0x3f')](_0x368566[_0xbd4e('0x3a')]['fields']));_0x508eb9[_0xbd4e('0x3d')]=_0x508eb9[_0xbd4e('0x3d')][_0xbd4e('0x40')]?_0x508eb9[_0xbd4e('0x3d')]:_0x133d66[_0xbd4e('0x3c')];if(!_0x368566['query'][_0xbd4e('0x41')]('nolimit')){_0x508eb9['limit']=qs[_0xbd4e('0x26')](_0x368566['query']['limit']);_0x508eb9[_0xbd4e('0x23')]=qs['offset'](_0x368566['query'][_0xbd4e('0x23')]);}_0x508eb9[_0xbd4e('0x43')]=qs[_0xbd4e('0x44')](_0x368566[_0xbd4e('0x3a')][_0xbd4e('0x44')]);_0x508eb9[_0xbd4e('0x45')]=qs[_0xbd4e('0x3b')](_[_0xbd4e('0x46')](_0x368566[_0xbd4e('0x3a')],_0x133d66[_0xbd4e('0x3b')]));_0x508eb9['where'][_0xbd4e('0x5e')]=_0x37a636['id'];if(_0x368566[_0xbd4e('0x3a')]['filter']){_0x508eb9[_0xbd4e('0x45')]=_[_0xbd4e('0x49')](_0x508eb9[_0xbd4e('0x45')],{'$or':_[_0xbd4e('0x34')](_0x508eb9['attributes'],function(_0x261083){var _0x35574f={};_0x35574f[_0x261083]={'$like':'%'+_0x368566[_0xbd4e('0x3a')][_0xbd4e('0x47')]+'%'};return _0x35574f;})});}_0x508eb9=_[_0xbd4e('0x49')]({},_0x508eb9,_0x368566[_0xbd4e('0x4a')]);return db['Disposition']['count']({'where':_0x508eb9[_0xbd4e('0x45')]})['then'](function(_0xc665cf){_0xa2b50e[_0xbd4e('0x25')]=_0xc665cf;if(_0x368566['query'][_0xbd4e('0x4b')]){_0x508eb9[_0xbd4e('0x52')]=[{'all':!![]}];}return db[_0xbd4e('0x5f')][_0xbd4e('0x4c')](_0x508eb9);})[_0xbd4e('0x2c')](function(_0x29f553){_0xa2b50e[_0xbd4e('0x4d')]=_0x29f553;return _0xa2b50e;});}})[_0xbd4e('0x2c')](respondWithFilteredResult(_0x38b8ed,_0x508eb9))[_0xbd4e('0x4e')](handleError(_0x38b8ed,null));};exports[_0xbd4e('0x60')]=function(_0x3734f5,_0x167887,_0x2ed00d){return db['CmList'][_0xbd4e('0x53')]({'where':{'id':_0x3734f5[_0xbd4e('0x50')]['id']}})[_0xbd4e('0x2c')](handleEntityNotFound(_0x167887,null))[_0xbd4e('0x2c')](function(_0xa03b14){if(_0xa03b14){return _0xa03b14[_0xbd4e('0x60')](_0x3734f5[_0xbd4e('0x3a')][_0xbd4e('0x61')]);}})[_0xbd4e('0x2c')](respondWithStatusCode(_0x167887,null))[_0xbd4e('0x4e')](handleError(_0x167887,null));};exports[_0xbd4e('0x62')]=function(_0x21d9b7,_0x226595,_0x367c94){return db[_0xbd4e('0x35')][_0xbd4e('0x53')]({'where':{'id':_0x21d9b7[_0xbd4e('0x50')]['id']}})[_0xbd4e('0x2c')](handleEntityNotFound(_0x226595,null))[_0xbd4e('0x2c')](function(_0x50f057){if(_0x50f057){var _0x4def18=[];var _0x4224c0={'success':[],'errors':[]};return db[_0xbd4e('0x63')]['describe']()[_0xbd4e('0x2c')](function(_0x4033f4){if(_0x21d9b7['body']['tags']&&_[_0xbd4e('0x64')](_0x21d9b7[_0xbd4e('0x5b')][_0xbd4e('0x65')])){if(_0x21d9b7[_0xbd4e('0x5b')][_0xbd4e('0x65')][_0xbd4e('0x40')]){_0x21d9b7[_0xbd4e('0x5b')][_0xbd4e('0x65')]=_0x21d9b7[_0xbd4e('0x5b')][_0xbd4e('0x65')][_0xbd4e('0x66')](';')+';';}else{_0x21d9b7[_0xbd4e('0x5b')][_0xbd4e('0x65')]=null;}}else{_0x21d9b7['body'][_0xbd4e('0x65')]=null;}if(_0x21d9b7[_0xbd4e('0x5b')]&&_[_0xbd4e('0x64')](_0x21d9b7[_0xbd4e('0x5b')])){for(var _0x45cd84=0x0;_0x45cd84<_0x21d9b7[_0xbd4e('0x5b')]['length'];_0x45cd84+=0x1){_0x21d9b7[_0xbd4e('0x5b')][_0x45cd84]['ListId']=_0x21d9b7[_0xbd4e('0x50')]['id'];_0x4def18[_0xbd4e('0x67')](_0x21d9b7['body'][_0x45cd84]);}return BPromise[_0xbd4e('0x68')](_0x4def18,function(_0x9fcca){return db[_0xbd4e('0x63')][_0xbd4e('0x54')](_[_0xbd4e('0x69')](_0x9fcca,['ids','id'])||{},{'fields':_[_0xbd4e('0x51')](_0x4033f4),'raw':!![]})[_0xbd4e('0x2c')](function(_0x2506ce){_0x4224c0[_0xbd4e('0x6a')][_0xbd4e('0x67')](_0x2506ce[_0xbd4e('0x6b')]);})[_0xbd4e('0x4e')](function(_0x36cd87){_0x4224c0[_0xbd4e('0x6c')]['push']({'data':_0x9fcca,'error':_0x36cd87[_0xbd4e('0x6d')]});});})['then'](function(_0x5c1a21){return _0x4224c0;})[_0xbd4e('0x4e')](function(_0x478698){return _0x478698;});}else{_0x226595[_0xbd4e('0x21')](0x190)[_0xbd4e('0x29')]({'message':_0xbd4e('0x6e')});}});}})[_0xbd4e('0x2c')](respondWithResult(_0x226595,null))[_0xbd4e('0x4e')](handleError(_0x226595,null));};exports[_0xbd4e('0x6f')]=function(_0x4a6c92,_0xe1197d,_0x486300){var _0x28917c;return db[_0xbd4e('0x35')][_0xbd4e('0x53')]({'where':{'id':_0x4a6c92['params']['id']},'include':[{'model':db[_0xbd4e('0x70')],'as':_0xbd4e('0x71')}]})['then'](handleEntityNotFound(_0xe1197d,null))[_0xbd4e('0x2c')](function(_0xc2891b){if(_0xc2891b){_0x28917c=_0xc2891b;return db[_0xbd4e('0x63')][_0xbd4e('0x36')];}})[_0xbd4e('0x2c')](function(_0x54e895){if(_0x54e895){var _0x1449e0={};var _0x27379b={};_0x27379b[_0xbd4e('0x3c')]=_['concat'](_[_0xbd4e('0x51')](_0x54e895),_[_0xbd4e('0x34')](_0x28917c[_0xbd4e('0x71')],function(_0x5e08df){return util[_0xbd4e('0x72')](_0xbd4e('0x73'),_0x5e08df['id']);}));_0x27379b['query']=_[_0xbd4e('0x51')](_0x4a6c92[_0xbd4e('0x3a')]);_0x27379b[_0xbd4e('0x3b')]=_[_0xbd4e('0x3e')](_0x27379b[_0xbd4e('0x3c')],_0x27379b[_0xbd4e('0x3a')]);_0x1449e0[_0xbd4e('0x3d')]=_['intersection'](_0x27379b[_0xbd4e('0x3c')],qs[_0xbd4e('0x3f')](_0x4a6c92[_0xbd4e('0x3a')]['fields']));_0x1449e0[_0xbd4e('0x3d')]=_0x1449e0['attributes'][_0xbd4e('0x40')]?_0x1449e0[_0xbd4e('0x3d')]:_0x27379b[_0xbd4e('0x3c')];if(!_0x4a6c92[_0xbd4e('0x3a')][_0xbd4e('0x41')]('nolimit')){_0x1449e0[_0xbd4e('0x26')]=qs[_0xbd4e('0x26')](_0x4a6c92[_0xbd4e('0x3a')][_0xbd4e('0x26')]);_0x1449e0[_0xbd4e('0x23')]=qs[_0xbd4e('0x23')](_0x4a6c92[_0xbd4e('0x3a')][_0xbd4e('0x23')]);}_0x1449e0[_0xbd4e('0x43')]=qs[_0xbd4e('0x44')](_0x4a6c92[_0xbd4e('0x3a')][_0xbd4e('0x44')]);_0x1449e0[_0xbd4e('0x45')]=qs[_0xbd4e('0x3b')](_[_0xbd4e('0x46')](_0x4a6c92['query'],_0x27379b[_0xbd4e('0x3b')]));_0x1449e0['raw']=!![];if(_0x4a6c92[_0xbd4e('0x3a')][_0xbd4e('0x47')]){_0x1449e0[_0xbd4e('0x45')]=_[_0xbd4e('0x49')](_0x1449e0[_0xbd4e('0x45')],{'$or':_['map'](_0x1449e0[_0xbd4e('0x3d')],function(_0x2fb8de){var _0x52fd65={};_0x52fd65[_0x2fb8de]={'$like':'%'+_0x4a6c92[_0xbd4e('0x3a')][_0xbd4e('0x47')]+'%'};return _0x52fd65;})});}_0x1449e0=_[_0xbd4e('0x49')]({},_0x1449e0,_0x4a6c92[_0xbd4e('0x4a')]);return _0x28917c['getContacts'](_0x1449e0);}})[_0xbd4e('0x2c')](respondWithResult(_0xe1197d,null))['catch'](handleError(_0xe1197d,null));};exports['getContactsCsv']=function(_0x4f45d2,_0x7e049b,_0x33b2e0){var _0xd70b59;var _0x272ce4;var _0x585784;var _0x325b38=_0x4f45d2[_0xbd4e('0x50')]['id'];csv_results=[];return db['ContactItemType'][_0xbd4e('0x4c')]({'attributes':['id',_0xbd4e('0x39')],'raw':!![],'order':['OrderBy']})[_0xbd4e('0x2c')](function(_0x1fe689){_0xd70b59=_0x1fe689;var _0x5c2f40=_[_0xbd4e('0x51')](db['CmContact'][_0xbd4e('0x36')]);return db['CmCustomField']['findAll']({'raw':!![],'attributes':['id',_0xbd4e('0x74')]})[_0xbd4e('0x2c')](function(_0x33f40c){_0x272ce4=_0x33f40c;var _0x51f47b=squel[_0xbd4e('0x75')]()['fields'](_0x5c2f40)[_0xbd4e('0x76')](_0xbd4e('0x77'),'c')['where'](_0xbd4e('0x78'),_0x325b38)[_0xbd4e('0x45')]('c.deletedAt\x20is\x20null')[_0xbd4e('0x79')]();for(var _0x19ab46=0x0;_0x19ab46<_0x272ce4['length'];_0x19ab46++){_0x51f47b[_0xbd4e('0x7a')](_0xbd4e('0x7b')+_0x272ce4[_0x19ab46]['id'],'customField_'+_0x272ce4[_0x19ab46][_0xbd4e('0x74')]);}for(var _0x19ab46=0x0;_0x19ab46<_0xd70b59['length'];_0x19ab46++){_0x51f47b[_0xbd4e('0x7a')](squel[_0xbd4e('0x75')]()[_0xbd4e('0x7a')](_0xbd4e('0x7c'))['from'](_0xbd4e('0x7d'))['where']('ItemTypeId\x20=\x20?',_0xd70b59[_0x19ab46]['id'])[_0xbd4e('0x45')](_0xbd4e('0x7e')),_0xbd4e('0x7f')+_0xd70b59[_0x19ab46][_0xbd4e('0x39')]);_0x51f47b[_0xbd4e('0x7a')](squel[_0xbd4e('0x75')]()[_0xbd4e('0x7a')](_0xbd4e('0x80'))['from'](_0xbd4e('0x7d'))[_0xbd4e('0x45')](_0xbd4e('0x81'),_0xd70b59[_0x19ab46]['id'])['where'](_0xbd4e('0x7e')),_0xbd4e('0x82')+_0xd70b59[_0x19ab46]['name']);}var _0xd84d1f=[];_0xd84d1f[_0xbd4e('0x67')](_0x51f47b[_0xbd4e('0x83')]());BPromise['each'](_0xd84d1f,handleQuery)[_0xbd4e('0x2c')](function(_0x53660d){handleQuery(_0x51f47b[_0xbd4e('0x83')]());var _0x50b8ac=csv_results[0x0];if(!_[_0xbd4e('0x84')](_0x50b8ac)){var _0x3ebc83=toCsv(_0x50b8ac);var _0x210010=Date[_0xbd4e('0x85')]();fs['writeFileSync'](util[_0xbd4e('0x72')](_0xbd4e('0x86'),_0x325b38,_0x210010),_0x3ebc83);_0x7e049b[_0xbd4e('0x87')](_0xbd4e('0x88'),'attachment;\x20filename='+util[_0xbd4e('0x72')](_0xbd4e('0x89'),_0x325b38,_0x210010));_0x7e049b[_0xbd4e('0x87')](_0xbd4e('0x8a'),'text/csv');return _0x7e049b['download'](util[_0xbd4e('0x72')](_0xbd4e('0x86'),_0x325b38,_0x210010));}else{return _0x7e049b[_0xbd4e('0x20')](0xcc);}});});});};exports[_0xbd4e('0x8b')]=function(_0x46d2d6,_0x2d4f89,_0x2bf7bc){var _0x2b9cb9;delete _0x46d2d6[_0xbd4e('0x5b')]['id'];return db[_0xbd4e('0x35')][_0xbd4e('0x8c')]({'where':{'id':_0x46d2d6[_0xbd4e('0x50')]['id']}})[_0xbd4e('0x2c')](handleEntityNotFound(_0x2d4f89,null))[_0xbd4e('0x2c')](function(_0x5ea2e9){if(_0x5ea2e9){return db['sequelize']['transaction'](function(_0x3b67c9){return db[_0xbd4e('0x70')][_0xbd4e('0x54')](_0x46d2d6[_0xbd4e('0x5b')],{'transaction':_0x3b67c9})['then'](function(_0x47ab68){_0x2b9cb9=_0x47ab68;return _0x5ea2e9[_0xbd4e('0x8d')](_0x47ab68,{'transaction':_0x3b67c9});})[_0xbd4e('0x2c')](function(){var _0xc67df={'type':db[_0xbd4e('0x8e')][_0xbd4e('0x8f')],'transaction':_0x3b67c9};switch(_0x46d2d6[_0xbd4e('0x5b')][_0xbd4e('0x37')]){case _0xbd4e('0x90'):_0xc67df['type']=db[_0xbd4e('0x8e')][_0xbd4e('0x8f')];break;case _0xbd4e('0x91'):_0xc67df[_0xbd4e('0x37')]=db[_0xbd4e('0x8e')][_0xbd4e('0x92')];break;case _0xbd4e('0x93'):_0xc67df[_0xbd4e('0x37')]=db['Sequelize'][_0xbd4e('0x94')];_0xc67df[_0xbd4e('0x95')]=![];break;default:}return db[_0xbd4e('0x96')]['queryInterface']['addColumn'](_0xbd4e('0x77'),util['format'](_0xbd4e('0x97'),_0x2b9cb9['id']),_0xc67df);})[_0xbd4e('0x2c')](function(){return _0x2b9cb9;});});}})[_0xbd4e('0x2c')](respondWithResult(_0x2d4f89,null))[_0xbd4e('0x4e')](handleError(_0x2d4f89,null));};exports['getCustomFields']=function(_0x4e852a,_0x48b883,_0x5043f9){var _0x524c8b={};var _0x3aa9ba={};var _0x3bab71;var _0x4a7b1c;return db[_0xbd4e('0x35')][_0xbd4e('0x8c')]({'where':{'id':_0x4e852a['params']['id']}})['then'](handleEntityNotFound(_0x48b883,null))[_0xbd4e('0x2c')](function(_0x31baf0){if(_0x31baf0){_0x3bab71=_0x31baf0;_0x3aa9ba[_0xbd4e('0x3c')]=_[_0xbd4e('0x51')](db[_0xbd4e('0x70')]['rawAttributes']);_0x3aa9ba[_0xbd4e('0x3a')]=_[_0xbd4e('0x51')](_0x4e852a[_0xbd4e('0x3a')]);_0x3aa9ba[_0xbd4e('0x3b')]=_[_0xbd4e('0x3e')](_0x3aa9ba[_0xbd4e('0x3c')],_0x3aa9ba['query']);_0x524c8b['attributes']=_[_0xbd4e('0x3e')](_0x3aa9ba[_0xbd4e('0x3c')],qs['fields'](_0x4e852a[_0xbd4e('0x3a')][_0xbd4e('0x3f')]));_0x524c8b['attributes']=_0x524c8b[_0xbd4e('0x3d')][_0xbd4e('0x40')]?_0x524c8b['attributes']:_0x3aa9ba[_0xbd4e('0x3c')];_0x524c8b[_0xbd4e('0x43')]=qs[_0xbd4e('0x44')](_0x4e852a[_0xbd4e('0x3a')][_0xbd4e('0x44')]);_0x524c8b['where']=qs[_0xbd4e('0x3b')](_[_0xbd4e('0x46')](_0x4e852a['query'],_0x3aa9ba['filters']));_0x524c8b['where']=_[_0xbd4e('0x49')](_0x524c8b[_0xbd4e('0x45')],{'$or':[{'ListId':_0x31baf0['id']},{'ListId':null}]});if(_0x4e852a[_0xbd4e('0x3a')][_0xbd4e('0x47')]){_0x524c8b['where']=_[_0xbd4e('0x49')](_0x524c8b[_0xbd4e('0x45')],{'$or':_[_0xbd4e('0x34')](_0x524c8b[_0xbd4e('0x3d')],function(_0x3991f6){var _0x4fefb1={};_0x4fefb1[_0x3991f6]={'$like':'%'+_0x4e852a[_0xbd4e('0x3a')][_0xbd4e('0x47')]+'%'};return _0x4fefb1;})});}_0x524c8b=_[_0xbd4e('0x49')]({},_0x524c8b,_0x4e852a[_0xbd4e('0x4a')]);return db[_0xbd4e('0x70')][_0xbd4e('0x98')](_0x524c8b);}})[_0xbd4e('0x2c')](respondWithResult(_0x48b883,null))['catch'](handleError(_0x48b883,null));};exports[_0xbd4e('0x99')]=function(_0x590a31,_0x6cac5){return db['CmCustomField'][_0xbd4e('0x98')]({'where':{'ListId':null}})['then'](handleEntityNotFound(_0x6cac5,null))[_0xbd4e('0x2c')](function(_0x51d420){return _0x51d420;})[_0xbd4e('0x2c')](respondWithResult(_0x6cac5,null))[_0xbd4e('0x4e')](handleError(_0x6cac5,null));};exports[_0xbd4e('0x9a')]=function(_0x3410f9,_0x499b52,_0x119730){return db[_0xbd4e('0x35')][_0xbd4e('0x53')]({'where':{'id':_0x3410f9[_0xbd4e('0x50')]['id']}})['then'](handleEntityNotFound(_0x499b52,null))['then'](function(_0x2831e9){if(_0x2831e9){return _0x2831e9[_0xbd4e('0x9a')](_0x3410f9[_0xbd4e('0x5b')][_0xbd4e('0x61')],_['omit'](_0x3410f9[_0xbd4e('0x5b')],[_0xbd4e('0x61'),'id'])||{})[_0xbd4e('0x9b')](function(_0x192b07){for(var _0x3fb890=0x0;_0x3fb890<_0x3410f9[_0xbd4e('0x5b')]['ids'][_0xbd4e('0x40')];_0x3fb890+=0x1){socket[_0xbd4e('0x9c')](_0xbd4e('0x9d'),{'UserId':Number(_0x3410f9[_0xbd4e('0x5b')][_0xbd4e('0x61')][_0x3fb890]),'CmListId':Number(_0x3410f9[_0xbd4e('0x50')]['id'])});}return _0x192b07;});}})['then'](respondWithResult(_0x499b52,null))['catch'](handleError(_0x499b52,null));};exports[_0xbd4e('0x9e')]=function(_0x1bd31a,_0x154711,_0x31de63){return db[_0xbd4e('0x35')][_0xbd4e('0x53')]({'where':{'id':_0x1bd31a['params']['id']}})[_0xbd4e('0x2c')](handleEntityNotFound(_0x154711,null))[_0xbd4e('0x2c')](function(_0x498516){if(_0x498516){return _0x498516[_0xbd4e('0x9e')](_0x1bd31a[_0xbd4e('0x3a')][_0xbd4e('0x61')])[_0xbd4e('0x2c')](function(){if(_[_0xbd4e('0x64')](_0x1bd31a[_0xbd4e('0x3a')][_0xbd4e('0x61')])){for(var _0x43be90=0x0;_0x43be90<_0x1bd31a[_0xbd4e('0x3a')][_0xbd4e('0x61')][_0xbd4e('0x40')];_0x43be90+=0x1){socket[_0xbd4e('0x9c')](_0xbd4e('0x9f'),{'UserId':Number(_0x1bd31a[_0xbd4e('0x3a')][_0xbd4e('0x61')][_0x43be90]),'CmListId':Number(_0x1bd31a[_0xbd4e('0x50')]['id'])});}}else{socket[_0xbd4e('0x9c')](_0xbd4e('0x9f'),{'UserId':Number(_0x1bd31a[_0xbd4e('0x3a')][_0xbd4e('0x61')]),'CmListId':Number(_0x1bd31a['params']['id'])});}});}})[_0xbd4e('0x2c')](respondWithStatusCode(_0x154711,null))[_0xbd4e('0x4e')](handleError(_0x154711,null));};exports['getAgents']=function(_0x1a4e70,_0x1fddd2,_0x49394b){var _0x52f90e={};var _0x56fad8={};var _0x18dcf6;var _0x15575c;return db[_0xbd4e('0x35')][_0xbd4e('0x8c')]({'where':{'id':_0x1a4e70['params']['id']}})[_0xbd4e('0x2c')](handleEntityNotFound(_0x1fddd2,null))[_0xbd4e('0x2c')](function(_0x14a7da){if(_0x14a7da){_0x18dcf6=_0x14a7da;_0x56fad8[_0xbd4e('0x3c')]=_['keys'](db['User']['rawAttributes']);_0x56fad8[_0xbd4e('0x3a')]=_[_0xbd4e('0x51')](_0x1a4e70[_0xbd4e('0x3a')]);_0x56fad8['filters']=_[_0xbd4e('0x3e')](_0x56fad8[_0xbd4e('0x3c')],_0x56fad8['query']);_0x52f90e[_0xbd4e('0x3d')]=_['intersection'](_0x56fad8[_0xbd4e('0x3c')],qs[_0xbd4e('0x3f')](_0x1a4e70[_0xbd4e('0x3a')][_0xbd4e('0x3f')]));_0x52f90e['attributes']=_0x52f90e[_0xbd4e('0x3d')][_0xbd4e('0x40')]?_0x52f90e[_0xbd4e('0x3d')]:_0x56fad8[_0xbd4e('0x3c')];_0x52f90e[_0xbd4e('0x43')]=qs[_0xbd4e('0x44')](_0x1a4e70[_0xbd4e('0x3a')][_0xbd4e('0x44')]);_0x52f90e[_0xbd4e('0x45')]=qs[_0xbd4e('0x3b')](_[_0xbd4e('0x46')](_0x1a4e70[_0xbd4e('0x3a')],_0x56fad8[_0xbd4e('0x3b')]));if(_0x1a4e70[_0xbd4e('0x3a')][_0xbd4e('0x47')]){_0x52f90e[_0xbd4e('0x45')]=_[_0xbd4e('0x49')](_0x52f90e['where'],{'$or':_[_0xbd4e('0x34')](_0x52f90e[_0xbd4e('0x3d')],function(_0x518158){var _0x4f01bd={};_0x4f01bd[_0x518158]={'$like':'%'+_0x1a4e70[_0xbd4e('0x3a')][_0xbd4e('0x47')]+'%'};return _0x4f01bd;})});}_0x52f90e=_[_0xbd4e('0x49')]({},_0x52f90e,_0x1a4e70[_0xbd4e('0x4a')]);return _0x18dcf6[_0xbd4e('0xa0')](_0x52f90e);}})[_0xbd4e('0x2c')](function(_0x430d2a){if(_0x430d2a){_0x15575c=_0x430d2a[_0xbd4e('0x40')];if(!_0x1a4e70[_0xbd4e('0x3a')]['hasOwnProperty'](_0xbd4e('0x42'))){_0x52f90e['limit']=qs[_0xbd4e('0x26')](_0x1a4e70[_0xbd4e('0x3a')][_0xbd4e('0x26')]);_0x52f90e[_0xbd4e('0x23')]=qs[_0xbd4e('0x23')](_0x1a4e70['query'][_0xbd4e('0x23')]);}return _0x18dcf6['getAgents'](_0x52f90e);}})['then'](function(_0x1a2310){if(_0x1a2310){return _0x1a2310?{'count':_0x15575c,'rows':_0x1a2310}:null;}})[_0xbd4e('0x2c')](respondWithResult(_0x1fddd2,null))['catch'](handleError(_0x1fddd2,null));};function handleQuery(_0x298e62){logger['info'](_0x298e62);return db['sequelize']['query'](_0x298e62)[_0xbd4e('0x9b')](function(_0x16ac4c){csv_results[_0xbd4e('0x67')](_0x16ac4c);})['catch'](function(_0x4fcb7c){logger[_0xbd4e('0x30')](_0x4fcb7c[_0xbd4e('0x6d')]);});}