29b8cd1b2cf3a2deaeea79f2fa2030392b7b28c6
[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 _0x04ce=['success','dataValues','message','Malformed\x20request\x20syntax','getContacts','CmCustomField','concat','format','cf_%d','raw','getContactsCsv','CustomFields','CmContact','isEmpty','writeFileSync','/tmp/list_%d_%s.csv','setHeader','attachment;\x20filename=','text/csv','download','addCustomField','sequelize','transaction','addCustomFields','TEXT','text','Sequelize','number','switch','BOOLEAN','defaultValue','queryInterface','addColumn','cm_contacts','cf_%s','getCustomFields','addAgents','spread','emit','userCmList:save','removeAgents','userCmList:remove','getAgents','User','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','./cmList.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','get','Lists','UserProfileResource','error','stack','name','send','index','map','CmList','rawAttributes','fieldName','type','model','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','VIRTUAL','options','include','rows','catch','show','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','addDisposition','ListId','Disposition','findOne','order','includeAll','findAll','removeDispositions','ids','addContacts','describe','tags','isArray','join','push','omit'];(function(_0x32a177,_0x51e2d2){var _0x295f5e=function(_0x1c4c05){while(--_0x1c4c05){_0x32a177['push'](_0x32a177['shift']());}};_0x295f5e(++_0x51e2d2);}(_0x04ce,0x156));var _0xe04c=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0x04ce[_0x5ddb1c];return _0x354adc;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xe04c('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xe04c('0x1'));var moment=require(_0xe04c('0x2'));var BPromise=require(_0xe04c('0x3'));var Mustache=require(_0xe04c('0x4'));var util=require(_0xe04c('0x5'));var path=require(_0xe04c('0x6'));var sox=require(_0xe04c('0x7'));var csv=require(_0xe04c('0x8'));var ejs=require(_0xe04c('0x9'));var fs=require('fs');var fs_extra=require(_0xe04c('0xa'));var _=require(_0xe04c('0xb'));var squel=require(_0xe04c('0xc'));var crypto=require(_0xe04c('0xd'));var jsforce=require(_0xe04c('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xe04c('0xf'));var Papa=require('papaparse');var Redis=require(_0xe04c('0x10'));var authService=require(_0xe04c('0x11'));var qs=require(_0xe04c('0x12'));var as=require(_0xe04c('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe04c('0x14'))('api');var utils=require(_0xe04c('0x15'));var config=require(_0xe04c('0x16'));var licenseUtil=require(_0xe04c('0x17'));var db=require(_0xe04c('0x18'))['db'];config['redis']=_[_0xe04c('0x19')](config[_0xe04c('0x1a')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xe04c('0x1b'))[_0xe04c('0x1c')](socket);function respondWithStatusCode(_0x27e4cc,_0x346236){_0x346236=_0x346236||0xcc;return function(_0x45d56e){if(_0x45d56e){return _0x27e4cc[_0xe04c('0x1d')](_0x346236);}return _0x27e4cc[_0xe04c('0x1e')](_0x346236)[_0xe04c('0x1f')]();};}function respondWithResult(_0x28df60,_0x1aa1e8){_0x1aa1e8=_0x1aa1e8||0xc8;return function(_0x5bafa5){if(_0x5bafa5){return _0x28df60['status'](_0x1aa1e8)[_0xe04c('0x20')](_0x5bafa5);}};}function respondWithFilteredResult(_0x2c28e3,_0x91a5ed){return function(_0x4d052e){if(_0x4d052e){var _0x362818=typeof _0x91a5ed[_0xe04c('0x21')]===_0xe04c('0x22')&&typeof _0x91a5ed[_0xe04c('0x23')]===_0xe04c('0x22');var _0x57be39=_0x4d052e[_0xe04c('0x24')];var _0x11cd2d=_0x362818?0x0:_0x91a5ed[_0xe04c('0x21')];var _0x4509e5=_0x362818?_0x4d052e[_0xe04c('0x24')]:_0x91a5ed['offset']+_0x91a5ed[_0xe04c('0x23')];var _0x3862e3;if(_0x4509e5>=_0x57be39){_0x4509e5=_0x57be39;_0x3862e3=0xc8;}else{_0x3862e3=0xce;}_0x2c28e3[_0xe04c('0x1e')](_0x3862e3);return _0x2c28e3[_0xe04c('0x25')](_0xe04c('0x26'),_0x11cd2d+'-'+_0x4509e5+'/'+_0x57be39)[_0xe04c('0x20')](_0x4d052e);}return null;};}function patchUpdates(_0x483c40){return function(_0x51f121){try{jsonpatch[_0xe04c('0x27')](_0x51f121,_0x483c40,!![]);}catch(_0x5a7d34){return BPromise[_0xe04c('0x28')](_0x5a7d34);}return _0x51f121[_0xe04c('0x29')]();};}function saveUpdates(_0x392c16,_0x134b51){return function(_0x52d888){if(_0x52d888){return _0x52d888[_0xe04c('0x2a')](_0x392c16)['then'](function(_0x35ece1){return _0x35ece1;});}return null;};}function removeEntity(_0x81a89d,_0x1c9f73){return function(_0x8105ca){if(_0x8105ca){return _0x8105ca[_0xe04c('0x2b')]()[_0xe04c('0x2c')](function(){var _0x1465ec=_0x8105ca[_0xe04c('0x2d')]({'plain':!![]});var _0x1d52cb=_0xe04c('0x2e');return db[_0xe04c('0x2f')][_0xe04c('0x2b')]({'where':{'type':_0x1d52cb,'resourceId':_0x1465ec['id']}})['then'](function(){return _0x8105ca;});})['then'](function(){_0x81a89d[_0xe04c('0x1e')](0xcc)[_0xe04c('0x1f')]();});}};}function handleEntityNotFound(_0x5b8933,_0x4bd48c){return function(_0x542104){if(!_0x542104){_0x5b8933[_0xe04c('0x1d')](0x194);}return _0x542104;};}function handleError(_0x53d614,_0x55a0df){_0x55a0df=_0x55a0df||0x1f4;return function(_0x1228db){logger[_0xe04c('0x30')](_0x1228db[_0xe04c('0x31')]);if(_0x1228db[_0xe04c('0x32')]){delete _0x1228db[_0xe04c('0x32')];}_0x53d614['status'](_0x55a0df)[_0xe04c('0x33')](_0x1228db);};}exports[_0xe04c('0x34')]=function(_0xfacbac,_0x29106b){var _0x3b0b20={},_0x4086cd={},_0x526d06={'count':0x0,'rows':[]};var _0x419293=_[_0xe04c('0x35')](db[_0xe04c('0x36')][_0xe04c('0x37')],function(_0x1feb87){return{'name':_0x1feb87[_0xe04c('0x38')],'type':_0x1feb87[_0xe04c('0x39')]['key']};});_0x4086cd[_0xe04c('0x3a')]=_[_0xe04c('0x35')](_0x419293,_0xe04c('0x32'));_0x4086cd[_0xe04c('0x3b')]=_[_0xe04c('0x3c')](_0xfacbac[_0xe04c('0x3b')]);_0x4086cd['filters']=_['intersection'](_0x4086cd['model'],_0x4086cd[_0xe04c('0x3b')]);_0x3b0b20[_0xe04c('0x3d')]=_[_0xe04c('0x3e')](_0x4086cd[_0xe04c('0x3a')],qs['fields'](_0xfacbac[_0xe04c('0x3b')][_0xe04c('0x3f')]));_0x3b0b20[_0xe04c('0x3d')]=_0x3b0b20[_0xe04c('0x3d')][_0xe04c('0x40')]?_0x3b0b20['attributes']:_0x4086cd[_0xe04c('0x3a')];if(!_0xfacbac[_0xe04c('0x3b')][_0xe04c('0x41')](_0xe04c('0x42'))){_0x3b0b20['limit']=qs[_0xe04c('0x23')](_0xfacbac[_0xe04c('0x3b')][_0xe04c('0x23')]);_0x3b0b20[_0xe04c('0x21')]=qs[_0xe04c('0x21')](_0xfacbac['query'][_0xe04c('0x21')]);}_0x3b0b20['order']=qs['sort'](_0xfacbac[_0xe04c('0x3b')][_0xe04c('0x43')]);_0x3b0b20[_0xe04c('0x44')]=qs[_0xe04c('0x45')](_[_0xe04c('0x46')](_0xfacbac[_0xe04c('0x3b')],_0x4086cd['filters']),_0x419293);if(_0xfacbac[_0xe04c('0x3b')][_0xe04c('0x47')]){_0x3b0b20[_0xe04c('0x44')]=_[_0xe04c('0x48')](_0x3b0b20['where'],{'$or':_[_0xe04c('0x35')](_0x419293,function(_0x50b39d){if(_0x50b39d[_0xe04c('0x39')]!==_0xe04c('0x49')){var _0x3763c4={};_0x3763c4[_0x50b39d[_0xe04c('0x32')]]={'$like':'%'+_0xfacbac[_0xe04c('0x3b')]['filter']+'%'};return _0x3763c4;}})});}_0x3b0b20=_[_0xe04c('0x48')]({},_0x3b0b20,_0xfacbac[_0xe04c('0x4a')]);var _0x5259ac={'where':_0x3b0b20['where']};return db[_0xe04c('0x36')][_0xe04c('0x24')](_0x5259ac)[_0xe04c('0x2c')](function(_0x3eb51a){_0x526d06[_0xe04c('0x24')]=_0x3eb51a;if(_0xfacbac[_0xe04c('0x3b')]['includeAll']){_0x3b0b20[_0xe04c('0x4b')]=[{'all':!![]}];}return db['CmList']['findAll'](_0x3b0b20);})[_0xe04c('0x2c')](function(_0x1baca7){_0x526d06[_0xe04c('0x4c')]=_0x1baca7;return _0x526d06;})[_0xe04c('0x2c')](respondWithFilteredResult(_0x29106b,_0x3b0b20))[_0xe04c('0x4d')](handleError(_0x29106b,null));};exports[_0xe04c('0x4e')]=function(_0x382b9b,_0x1e1c0b){var _0x5d1a12={'raw':![],'where':{'id':_0x382b9b['params']['id']}},_0x2bdecb={};_0x2bdecb[_0xe04c('0x3a')]=_[_0xe04c('0x3c')](db[_0xe04c('0x36')][_0xe04c('0x37')]);_0x2bdecb[_0xe04c('0x3b')]=_['keys'](_0x382b9b[_0xe04c('0x3b')]);_0x2bdecb[_0xe04c('0x45')]=_[_0xe04c('0x3e')](_0x2bdecb[_0xe04c('0x3a')],_0x2bdecb[_0xe04c('0x3b')]);_0x5d1a12[_0xe04c('0x3d')]=_['intersection'](_0x2bdecb[_0xe04c('0x3a')],qs[_0xe04c('0x3f')](_0x382b9b[_0xe04c('0x3b')][_0xe04c('0x3f')]));_0x5d1a12['attributes']=_0x5d1a12[_0xe04c('0x3d')]['length']?_0x5d1a12[_0xe04c('0x3d')]:_0x2bdecb[_0xe04c('0x3a')];if(_0x382b9b['query']['includeAll']){_0x5d1a12[_0xe04c('0x4b')]=[{'all':!![]}];}_0x5d1a12=_[_0xe04c('0x48')]({},_0x5d1a12,_0x382b9b[_0xe04c('0x4a')]);return db['CmList'][_0xe04c('0x4f')](_0x5d1a12)[_0xe04c('0x2c')](handleEntityNotFound(_0x1e1c0b,null))[_0xe04c('0x2c')](respondWithResult(_0x1e1c0b,null))[_0xe04c('0x4d')](handleError(_0x1e1c0b,null));};exports[_0xe04c('0x50')]=function(_0x3def0d,_0x2049a0){return db[_0xe04c('0x36')][_0xe04c('0x50')](_0x3def0d['body'],{})[_0xe04c('0x2c')](function(_0x137bcd){var _0xf62677=_0x3def0d[_0xe04c('0x51')]['get']({'plain':!![]});if(!_0xf62677)throw new Error(_0xe04c('0x52'));if(_0xf62677[_0xe04c('0x53')]==='user'){var _0x4e6922=_0x137bcd[_0xe04c('0x2d')]({'plain':!![]});var _0x583469=_0xe04c('0x2e');return db[_0xe04c('0x54')][_0xe04c('0x4f')]({'where':{'name':_0x583469,'userProfileId':_0xf62677[_0xe04c('0x55')]},'raw':!![]})['then'](function(_0xba2e8f){if(_0xba2e8f&&_0xba2e8f['autoAssociation']===0x0){return db['UserProfileResource'][_0xe04c('0x50')]({'name':_0x4e6922[_0xe04c('0x32')],'resourceId':_0x4e6922['id'],'type':_0xba2e8f[_0xe04c('0x32')],'sectionId':_0xba2e8f['id']},{})['then'](function(){return _0x137bcd;});}else{return _0x137bcd;}})['catch'](function(_0x5ee38e){logger[_0xe04c('0x30')](_0xe04c('0x56'),_0x5ee38e);throw _0x5ee38e;});}return _0x137bcd;})[_0xe04c('0x2c')](respondWithResult(_0x2049a0,0xc9))[_0xe04c('0x4d')](handleError(_0x2049a0,null));};exports[_0xe04c('0x2a')]=function(_0x88fb0d,_0x50fe1f){if(_0x88fb0d[_0xe04c('0x57')]['id']){delete _0x88fb0d['body']['id'];}return db['CmList'][_0xe04c('0x4f')]({'where':{'id':_0x88fb0d[_0xe04c('0x58')]['id']}})[_0xe04c('0x2c')](handleEntityNotFound(_0x50fe1f,null))[_0xe04c('0x2c')](saveUpdates(_0x88fb0d[_0xe04c('0x57')],null))[_0xe04c('0x2c')](respondWithResult(_0x50fe1f,null))[_0xe04c('0x4d')](handleError(_0x50fe1f,null));};exports[_0xe04c('0x2b')]=function(_0x24369c,_0x4c2da1){return db[_0xe04c('0x36')]['find']({'where':{'id':_0x24369c[_0xe04c('0x58')]['id']}})[_0xe04c('0x2c')](handleEntityNotFound(_0x4c2da1,null))[_0xe04c('0x2c')](removeEntity(_0x4c2da1,null))[_0xe04c('0x4d')](handleError(_0x4c2da1,null));};exports['describe']=function(_0x3acb8b,_0x3bc907){return db[_0xe04c('0x36')]['describe']()['then'](respondWithResult(_0x3bc907,null))[_0xe04c('0x4d')](handleError(_0x3bc907,null));};exports[_0xe04c('0x59')]=function(_0x5f3ded,_0x45bace,_0x3977ea){if(_0x5f3ded['body']['id']){delete _0x5f3ded[_0xe04c('0x57')]['id'];}return db[_0xe04c('0x36')][_0xe04c('0x4f')]({'where':{'id':_0x5f3ded['params']['id']}})['then'](handleEntityNotFound(_0x45bace,null))['then'](function(_0x6d2420){if(_0x6d2420){_0x5f3ded[_0xe04c('0x57')][_0xe04c('0x5a')]=_0x6d2420['id'];return db[_0xe04c('0x5b')][_0xe04c('0x50')](_0x5f3ded['body']);}})[_0xe04c('0x2c')](respondWithResult(_0x45bace,null))['catch'](handleError(_0x45bace,null));};exports['getDispositions']=function(_0x83c2c5,_0x313f17,_0x249214){var _0x27ae57={'raw':![],'where':{}};var _0x409851={};var _0x23ab2b={'count':0x0,'rows':[]};return db['CmList'][_0xe04c('0x5c')]({'where':{'id':_0x83c2c5[_0xe04c('0x58')]['id']}})[_0xe04c('0x2c')](handleEntityNotFound(_0x313f17,null))['then'](function(_0x476ee9){if(_0x476ee9){_0x409851[_0xe04c('0x3a')]=_[_0xe04c('0x3c')](db[_0xe04c('0x5b')][_0xe04c('0x37')]);_0x409851[_0xe04c('0x3b')]=_[_0xe04c('0x3c')](_0x83c2c5[_0xe04c('0x3b')]);_0x409851[_0xe04c('0x45')]=_['intersection'](_0x409851[_0xe04c('0x3a')],_0x409851[_0xe04c('0x3b')]);_0x27ae57[_0xe04c('0x3d')]=_['intersection'](_0x409851['model'],qs['fields'](_0x83c2c5['query'][_0xe04c('0x3f')]));_0x27ae57['attributes']=_0x27ae57[_0xe04c('0x3d')][_0xe04c('0x40')]?_0x27ae57[_0xe04c('0x3d')]:_0x409851[_0xe04c('0x3a')];if(!_0x83c2c5[_0xe04c('0x3b')]['hasOwnProperty'](_0xe04c('0x42'))){_0x27ae57['limit']=qs[_0xe04c('0x23')](_0x83c2c5[_0xe04c('0x3b')][_0xe04c('0x23')]);_0x27ae57['offset']=qs[_0xe04c('0x21')](_0x83c2c5['query']['offset']);}_0x27ae57[_0xe04c('0x5d')]=qs[_0xe04c('0x43')](_0x83c2c5[_0xe04c('0x3b')][_0xe04c('0x43')]);_0x27ae57[_0xe04c('0x44')]=qs[_0xe04c('0x45')](_[_0xe04c('0x46')](_0x83c2c5['query'],_0x409851[_0xe04c('0x45')]));_0x27ae57['where']['ListId']=_0x476ee9['id'];if(_0x83c2c5['query']['filter']){_0x27ae57[_0xe04c('0x44')]=_['merge'](_0x27ae57[_0xe04c('0x44')],{'$or':_['map'](_0x27ae57[_0xe04c('0x3d')],function(_0x1a7889){var _0x5dce19={};_0x5dce19[_0x1a7889]={'$like':'%'+_0x83c2c5[_0xe04c('0x3b')]['filter']+'%'};return _0x5dce19;})});}_0x27ae57=_['merge']({},_0x27ae57,_0x83c2c5[_0xe04c('0x4a')]);return db[_0xe04c('0x5b')]['count']({'where':_0x27ae57[_0xe04c('0x44')]})['then'](function(_0xc8ae7){_0x23ab2b[_0xe04c('0x24')]=_0xc8ae7;if(_0x83c2c5['query'][_0xe04c('0x5e')]){_0x27ae57[_0xe04c('0x4b')]=[{'all':!![]}];}return db['Disposition'][_0xe04c('0x5f')](_0x27ae57);})[_0xe04c('0x2c')](function(_0x36eba0){_0x23ab2b[_0xe04c('0x4c')]=_0x36eba0;return _0x23ab2b;});}})['then'](respondWithFilteredResult(_0x313f17,_0x27ae57))[_0xe04c('0x4d')](handleError(_0x313f17,null));};exports[_0xe04c('0x60')]=function(_0x5cca12,_0x2904f0,_0x2f7aba){return db[_0xe04c('0x36')]['find']({'where':{'id':_0x5cca12[_0xe04c('0x58')]['id']}})[_0xe04c('0x2c')](handleEntityNotFound(_0x2904f0,null))[_0xe04c('0x2c')](function(_0x24503f){if(_0x24503f){return _0x24503f[_0xe04c('0x60')](_0x5cca12[_0xe04c('0x3b')][_0xe04c('0x61')]);}})[_0xe04c('0x2c')](respondWithStatusCode(_0x2904f0,null))['catch'](handleError(_0x2904f0,null));};exports[_0xe04c('0x62')]=function(_0x27cc10,_0x3d68f2,_0x549f84){return db[_0xe04c('0x36')]['find']({'where':{'id':_0x27cc10[_0xe04c('0x58')]['id']}})[_0xe04c('0x2c')](handleEntityNotFound(_0x3d68f2,null))[_0xe04c('0x2c')](function(_0x5b2dde){if(_0x5b2dde){var _0x314578=[];var _0x263b0e={'success':[],'errors':[]};return db['CmContact'][_0xe04c('0x63')]()['then'](function(_0x18538f){if(_0x27cc10[_0xe04c('0x57')][_0xe04c('0x64')]&&_[_0xe04c('0x65')](_0x27cc10[_0xe04c('0x57')][_0xe04c('0x64')])){if(_0x27cc10['body']['tags']['length']){_0x27cc10['body'][_0xe04c('0x64')]=_0x27cc10[_0xe04c('0x57')][_0xe04c('0x64')][_0xe04c('0x66')](';')+';';}else{_0x27cc10[_0xe04c('0x57')][_0xe04c('0x64')]=null;}}else{_0x27cc10[_0xe04c('0x57')][_0xe04c('0x64')]=null;}if(_0x27cc10[_0xe04c('0x57')]&&_[_0xe04c('0x65')](_0x27cc10[_0xe04c('0x57')])){for(var _0x547384=0x0;_0x547384<_0x27cc10[_0xe04c('0x57')][_0xe04c('0x40')];_0x547384+=0x1){_0x27cc10[_0xe04c('0x57')][_0x547384][_0xe04c('0x5a')]=_0x27cc10['params']['id'];_0x314578[_0xe04c('0x67')](_0x27cc10[_0xe04c('0x57')][_0x547384]);}return BPromise['each'](_0x314578,function(_0x3f3a2a){return db['CmContact'][_0xe04c('0x50')](_[_0xe04c('0x68')](_0x3f3a2a,[_0xe04c('0x61'),'id'])||{},{'fields':_['keys'](_0x18538f),'raw':!![]})[_0xe04c('0x2c')](function(_0x33dd80){_0x263b0e[_0xe04c('0x69')][_0xe04c('0x67')](_0x33dd80[_0xe04c('0x6a')]);})['catch'](function(_0x3cff34){_0x263b0e['errors'][_0xe04c('0x67')]({'data':_0x3f3a2a,'error':_0x3cff34[_0xe04c('0x6b')]});});})[_0xe04c('0x2c')](function(_0x214732){return _0x263b0e;})[_0xe04c('0x4d')](function(_0x34c68f){return _0x34c68f;});}else{_0x3d68f2[_0xe04c('0x1e')](0x190)[_0xe04c('0x20')]({'message':_0xe04c('0x6c')});}});}})[_0xe04c('0x2c')](respondWithResult(_0x3d68f2,null))[_0xe04c('0x4d')](handleError(_0x3d68f2,null));};exports[_0xe04c('0x6d')]=function(_0x3f31bc,_0x280c53,_0x164eeb){var _0x51a9f5;return db[_0xe04c('0x36')]['find']({'where':{'id':_0x3f31bc[_0xe04c('0x58')]['id']},'include':[{'model':db[_0xe04c('0x6e')],'as':'CustomFields'}]})[_0xe04c('0x2c')](handleEntityNotFound(_0x280c53,null))[_0xe04c('0x2c')](function(_0x384ea3){if(_0x384ea3){_0x51a9f5=_0x384ea3;return db['CmContact'][_0xe04c('0x37')];}})[_0xe04c('0x2c')](function(_0x1c5d9e){if(_0x1c5d9e){var _0x3162f2={};var _0x1be68d={};_0x1be68d[_0xe04c('0x3a')]=_[_0xe04c('0x6f')](_[_0xe04c('0x3c')](_0x1c5d9e),_[_0xe04c('0x35')](_0x51a9f5['CustomFields'],function(_0x4cbc4e){return util[_0xe04c('0x70')](_0xe04c('0x71'),_0x4cbc4e['id']);}));_0x1be68d['query']=_[_0xe04c('0x3c')](_0x3f31bc[_0xe04c('0x3b')]);_0x1be68d[_0xe04c('0x45')]=_[_0xe04c('0x3e')](_0x1be68d[_0xe04c('0x3a')],_0x1be68d[_0xe04c('0x3b')]);_0x3162f2['attributes']=_['intersection'](_0x1be68d[_0xe04c('0x3a')],qs[_0xe04c('0x3f')](_0x3f31bc[_0xe04c('0x3b')][_0xe04c('0x3f')]));_0x3162f2[_0xe04c('0x3d')]=_0x3162f2[_0xe04c('0x3d')][_0xe04c('0x40')]?_0x3162f2[_0xe04c('0x3d')]:_0x1be68d['model'];if(!_0x3f31bc['query'][_0xe04c('0x41')](_0xe04c('0x42'))){_0x3162f2[_0xe04c('0x23')]=qs[_0xe04c('0x23')](_0x3f31bc[_0xe04c('0x3b')][_0xe04c('0x23')]);_0x3162f2[_0xe04c('0x21')]=qs[_0xe04c('0x21')](_0x3f31bc[_0xe04c('0x3b')][_0xe04c('0x21')]);}_0x3162f2[_0xe04c('0x5d')]=qs[_0xe04c('0x43')](_0x3f31bc[_0xe04c('0x3b')][_0xe04c('0x43')]);_0x3162f2[_0xe04c('0x44')]=qs[_0xe04c('0x45')](_[_0xe04c('0x46')](_0x3f31bc[_0xe04c('0x3b')],_0x1be68d['filters']));_0x3162f2[_0xe04c('0x72')]=!![];if(_0x3f31bc[_0xe04c('0x3b')]['filter']){_0x3162f2[_0xe04c('0x44')]=_[_0xe04c('0x48')](_0x3162f2['where'],{'$or':_[_0xe04c('0x35')](_0x3162f2['attributes'],function(_0x5c8256){var _0x9fbf15={};_0x9fbf15[_0x5c8256]={'$like':'%'+_0x3f31bc[_0xe04c('0x3b')][_0xe04c('0x47')]+'%'};return _0x9fbf15;})});}_0x3162f2=_['merge']({},_0x3162f2,_0x3f31bc[_0xe04c('0x4a')]);return _0x51a9f5[_0xe04c('0x6d')](_0x3162f2);}})['then'](respondWithResult(_0x280c53,null))[_0xe04c('0x4d')](handleError(_0x280c53,null));};exports[_0xe04c('0x73')]=function(_0x1ade17,_0x589e7b,_0x2783a1){var _0x291450;return db[_0xe04c('0x36')][_0xe04c('0x4f')]({'where':{'id':_0x1ade17[_0xe04c('0x58')]['id']},'include':[{'model':db[_0xe04c('0x6e')],'as':_0xe04c('0x74')}]})['then'](handleEntityNotFound(_0x589e7b,null))['then'](function(_0x582eb8){if(_0x582eb8){_0x291450=_0x582eb8;return db[_0xe04c('0x75')][_0xe04c('0x37')];}})['then'](function(_0x10d3c8){if(_0x10d3c8){var _0x13b622={};var _0x44394d={};_0x44394d[_0xe04c('0x3a')]=_[_0xe04c('0x6f')](_[_0xe04c('0x3c')](_0x10d3c8),_[_0xe04c('0x35')](_0x291450[_0xe04c('0x74')],function(_0x1d7372){return util[_0xe04c('0x70')](_0xe04c('0x71'),_0x1d7372['id']);}));_0x44394d[_0xe04c('0x3b')]=_[_0xe04c('0x3c')](_0x1ade17[_0xe04c('0x3b')]);_0x44394d[_0xe04c('0x45')]=_[_0xe04c('0x3e')](_0x44394d['model'],_0x44394d[_0xe04c('0x3b')]);_0x13b622[_0xe04c('0x3d')]=_[_0xe04c('0x3e')](_0x44394d[_0xe04c('0x3a')],qs[_0xe04c('0x3f')](_0x1ade17[_0xe04c('0x3b')][_0xe04c('0x3f')]));_0x13b622['attributes']=_0x13b622[_0xe04c('0x3d')]['length']?_0x13b622[_0xe04c('0x3d')]:_0x44394d[_0xe04c('0x3a')];if(!_0x1ade17[_0xe04c('0x3b')][_0xe04c('0x41')](_0xe04c('0x42'))){_0x13b622[_0xe04c('0x23')]=qs[_0xe04c('0x23')](_0x1ade17[_0xe04c('0x3b')]['limit']);_0x13b622[_0xe04c('0x21')]=qs[_0xe04c('0x21')](_0x1ade17[_0xe04c('0x3b')][_0xe04c('0x21')]);}_0x13b622[_0xe04c('0x5d')]=qs[_0xe04c('0x43')](_0x1ade17['query'][_0xe04c('0x43')]);_0x13b622[_0xe04c('0x44')]=qs['filters'](_[_0xe04c('0x46')](_0x1ade17['query'],_0x44394d[_0xe04c('0x45')]));_0x13b622[_0xe04c('0x72')]=!![];if(_0x1ade17[_0xe04c('0x3b')][_0xe04c('0x47')]){_0x13b622[_0xe04c('0x44')]=_['merge'](_0x13b622[_0xe04c('0x44')],{'$or':_[_0xe04c('0x35')](_0x13b622[_0xe04c('0x3d')],function(_0x584c57){var _0x280fad={};_0x280fad[_0x584c57]={'$like':'%'+_0x1ade17[_0xe04c('0x3b')][_0xe04c('0x47')]+'%'};return _0x280fad;})});}_0x13b622=_[_0xe04c('0x48')]({},_0x13b622,_0x1ade17[_0xe04c('0x4a')]);return _0x291450[_0xe04c('0x6d')](_0x13b622);}})[_0xe04c('0x2c')](function(_0x5e01db){if(!_[_0xe04c('0x76')](_0x5e01db)){var _0x544b0f=toCsv(_0x5e01db);var _0x15b770=Date['now']();fs[_0xe04c('0x77')](util[_0xe04c('0x70')](_0xe04c('0x78'),_0x291450['id'],_0x15b770),_0x544b0f);_0x589e7b[_0xe04c('0x79')]('Content-disposition',_0xe04c('0x7a')+util[_0xe04c('0x70')]('list_%d_%s.csv',_0x291450['id'],_0x15b770));_0x589e7b['setHeader']('Content-type',_0xe04c('0x7b'));return _0x589e7b[_0xe04c('0x7c')](util[_0xe04c('0x70')](_0xe04c('0x78'),_0x291450['id'],_0x15b770));}else{return _0x589e7b[_0xe04c('0x1d')](0xcc);}})[_0xe04c('0x4d')](handleError(_0x589e7b,null));};exports[_0xe04c('0x7d')]=function(_0x3c949a,_0x5ee99f,_0x45c228){var _0x1238cb;delete _0x3c949a['body']['id'];return db[_0xe04c('0x36')][_0xe04c('0x5c')]({'where':{'id':_0x3c949a['params']['id']}})[_0xe04c('0x2c')](handleEntityNotFound(_0x5ee99f,null))[_0xe04c('0x2c')](function(_0x3800b0){if(_0x3800b0){return db[_0xe04c('0x7e')][_0xe04c('0x7f')](function(_0x424e20){return db['CmCustomField'][_0xe04c('0x50')](_0x3c949a[_0xe04c('0x57')],{'transaction':_0x424e20})[_0xe04c('0x2c')](function(_0x1fc9f0){_0x1238cb=_0x1fc9f0;return _0x3800b0[_0xe04c('0x80')](_0x1fc9f0,{'transaction':_0x424e20});})['then'](function(){var _0x314257={'type':db['Sequelize'][_0xe04c('0x81')],'transaction':_0x424e20};switch(_0x3c949a[_0xe04c('0x57')][_0xe04c('0x39')]){case _0xe04c('0x82'):_0x314257[_0xe04c('0x39')]=db[_0xe04c('0x83')][_0xe04c('0x81')];break;case _0xe04c('0x84'):_0x314257[_0xe04c('0x39')]=db['Sequelize']['INTEGER'];break;case _0xe04c('0x85'):_0x314257[_0xe04c('0x39')]=db[_0xe04c('0x83')][_0xe04c('0x86')];_0x314257[_0xe04c('0x87')]=![];break;default:}return db[_0xe04c('0x7e')][_0xe04c('0x88')][_0xe04c('0x89')](_0xe04c('0x8a'),util['format'](_0xe04c('0x8b'),_0x1238cb['id']),_0x314257);})['then'](function(){return _0x1238cb;});});}})[_0xe04c('0x2c')](respondWithResult(_0x5ee99f,null))[_0xe04c('0x4d')](handleError(_0x5ee99f,null));};exports[_0xe04c('0x8c')]=function(_0x133a3e,_0x3f0a9e,_0x52fd61){var _0x31f47c={};var _0x187809={};var _0x4b30ca;var _0x3b1587;return db[_0xe04c('0x36')]['findOne']({'where':{'id':_0x133a3e[_0xe04c('0x58')]['id']}})[_0xe04c('0x2c')](handleEntityNotFound(_0x3f0a9e,null))[_0xe04c('0x2c')](function(_0x3a7f09){if(_0x3a7f09){_0x4b30ca=_0x3a7f09;_0x187809[_0xe04c('0x3a')]=_[_0xe04c('0x3c')](db['CmCustomField'][_0xe04c('0x37')]);_0x187809[_0xe04c('0x3b')]=_[_0xe04c('0x3c')](_0x133a3e[_0xe04c('0x3b')]);_0x187809[_0xe04c('0x45')]=_[_0xe04c('0x3e')](_0x187809[_0xe04c('0x3a')],_0x187809[_0xe04c('0x3b')]);_0x31f47c[_0xe04c('0x3d')]=_['intersection'](_0x187809[_0xe04c('0x3a')],qs[_0xe04c('0x3f')](_0x133a3e['query']['fields']));_0x31f47c[_0xe04c('0x3d')]=_0x31f47c['attributes']['length']?_0x31f47c[_0xe04c('0x3d')]:_0x187809[_0xe04c('0x3a')];_0x31f47c['order']=qs[_0xe04c('0x43')](_0x133a3e['query'][_0xe04c('0x43')]);_0x31f47c[_0xe04c('0x44')]=qs[_0xe04c('0x45')](_[_0xe04c('0x46')](_0x133a3e[_0xe04c('0x3b')],_0x187809['filters']));_0x31f47c[_0xe04c('0x44')]=_[_0xe04c('0x48')](_0x31f47c[_0xe04c('0x44')],{'$or':[{'ListId':_0x3a7f09['id']},{'ListId':null}]});if(_0x133a3e[_0xe04c('0x3b')]['filter']){_0x31f47c['where']=_['merge'](_0x31f47c[_0xe04c('0x44')],{'$or':_['map'](_0x31f47c[_0xe04c('0x3d')],function(_0x54e7dc){var _0x4c0f2e={};_0x4c0f2e[_0x54e7dc]={'$like':'%'+_0x133a3e['query'][_0xe04c('0x47')]+'%'};return _0x4c0f2e;})});}_0x31f47c=_[_0xe04c('0x48')]({},_0x31f47c,_0x133a3e[_0xe04c('0x4a')]);return db[_0xe04c('0x6e')]['findAndCountAll'](_0x31f47c);}})['then'](respondWithResult(_0x3f0a9e,null))[_0xe04c('0x4d')](handleError(_0x3f0a9e,null));};exports[_0xe04c('0x8d')]=function(_0x321a76,_0x3c61e3,_0x26f93f){return db[_0xe04c('0x36')][_0xe04c('0x4f')]({'where':{'id':_0x321a76[_0xe04c('0x58')]['id']}})[_0xe04c('0x2c')](handleEntityNotFound(_0x3c61e3,null))[_0xe04c('0x2c')](function(_0x207572){if(_0x207572){return _0x207572['addAgents'](_0x321a76[_0xe04c('0x57')]['ids'],_[_0xe04c('0x68')](_0x321a76['body'],[_0xe04c('0x61'),'id'])||{})[_0xe04c('0x8e')](function(_0x31b8ba){for(var _0x2a5677=0x0;_0x2a5677<_0x321a76['body']['ids'][_0xe04c('0x40')];_0x2a5677+=0x1){socket[_0xe04c('0x8f')](_0xe04c('0x90'),{'UserId':Number(_0x321a76[_0xe04c('0x57')]['ids'][_0x2a5677]),'CmListId':Number(_0x321a76['params']['id'])});}return _0x31b8ba;});}})['then'](respondWithResult(_0x3c61e3,null))[_0xe04c('0x4d')](handleError(_0x3c61e3,null));};exports['removeAgents']=function(_0x44580b,_0x1b0cf3,_0x176629){return db['CmList'][_0xe04c('0x4f')]({'where':{'id':_0x44580b[_0xe04c('0x58')]['id']}})['then'](handleEntityNotFound(_0x1b0cf3,null))[_0xe04c('0x2c')](function(_0x77f472){if(_0x77f472){return _0x77f472[_0xe04c('0x91')](_0x44580b['query'][_0xe04c('0x61')])[_0xe04c('0x2c')](function(){if(_[_0xe04c('0x65')](_0x44580b[_0xe04c('0x3b')][_0xe04c('0x61')])){for(var _0x54249a=0x0;_0x54249a<_0x44580b[_0xe04c('0x3b')][_0xe04c('0x61')]['length'];_0x54249a+=0x1){socket[_0xe04c('0x8f')](_0xe04c('0x92'),{'UserId':Number(_0x44580b[_0xe04c('0x3b')][_0xe04c('0x61')][_0x54249a]),'CmListId':Number(_0x44580b['params']['id'])});}}else{socket['emit'](_0xe04c('0x92'),{'UserId':Number(_0x44580b[_0xe04c('0x3b')]['ids']),'CmListId':Number(_0x44580b[_0xe04c('0x58')]['id'])});}});}})[_0xe04c('0x2c')](respondWithStatusCode(_0x1b0cf3,null))['catch'](handleError(_0x1b0cf3,null));};exports[_0xe04c('0x93')]=function(_0xbef32e,_0x1b524b,_0xcecd9d){var _0x3e5bdd={};var _0x4eec8c={};var _0x42d871;var _0x4e277b;return db['CmList']['findOne']({'where':{'id':_0xbef32e[_0xe04c('0x58')]['id']}})[_0xe04c('0x2c')](handleEntityNotFound(_0x1b524b,null))['then'](function(_0x493afc){if(_0x493afc){_0x42d871=_0x493afc;_0x4eec8c[_0xe04c('0x3a')]=_[_0xe04c('0x3c')](db[_0xe04c('0x94')][_0xe04c('0x37')]);_0x4eec8c[_0xe04c('0x3b')]=_[_0xe04c('0x3c')](_0xbef32e[_0xe04c('0x3b')]);_0x4eec8c[_0xe04c('0x45')]=_['intersection'](_0x4eec8c[_0xe04c('0x3a')],_0x4eec8c[_0xe04c('0x3b')]);_0x3e5bdd[_0xe04c('0x3d')]=_[_0xe04c('0x3e')](_0x4eec8c['model'],qs[_0xe04c('0x3f')](_0xbef32e[_0xe04c('0x3b')][_0xe04c('0x3f')]));_0x3e5bdd[_0xe04c('0x3d')]=_0x3e5bdd[_0xe04c('0x3d')][_0xe04c('0x40')]?_0x3e5bdd[_0xe04c('0x3d')]:_0x4eec8c[_0xe04c('0x3a')];_0x3e5bdd['order']=qs['sort'](_0xbef32e['query'][_0xe04c('0x43')]);_0x3e5bdd[_0xe04c('0x44')]=qs[_0xe04c('0x45')](_[_0xe04c('0x46')](_0xbef32e[_0xe04c('0x3b')],_0x4eec8c[_0xe04c('0x45')]));if(_0xbef32e['query'][_0xe04c('0x47')]){_0x3e5bdd[_0xe04c('0x44')]=_[_0xe04c('0x48')](_0x3e5bdd[_0xe04c('0x44')],{'$or':_[_0xe04c('0x35')](_0x3e5bdd[_0xe04c('0x3d')],function(_0x15a86c){var _0x3506f7={};_0x3506f7[_0x15a86c]={'$like':'%'+_0xbef32e[_0xe04c('0x3b')]['filter']+'%'};return _0x3506f7;})});}_0x3e5bdd=_[_0xe04c('0x48')]({},_0x3e5bdd,_0xbef32e[_0xe04c('0x4a')]);return _0x42d871[_0xe04c('0x93')](_0x3e5bdd);}})[_0xe04c('0x2c')](function(_0x56f7d5){if(_0x56f7d5){_0x4e277b=_0x56f7d5[_0xe04c('0x40')];if(!_0xbef32e[_0xe04c('0x3b')][_0xe04c('0x41')](_0xe04c('0x42'))){_0x3e5bdd[_0xe04c('0x23')]=qs[_0xe04c('0x23')](_0xbef32e[_0xe04c('0x3b')][_0xe04c('0x23')]);_0x3e5bdd[_0xe04c('0x21')]=qs[_0xe04c('0x21')](_0xbef32e[_0xe04c('0x3b')][_0xe04c('0x21')]);}return _0x42d871['getAgents'](_0x3e5bdd);}})[_0xe04c('0x2c')](function(_0x19a317){if(_0x19a317){return _0x19a317?{'count':_0x4e277b,'rows':_0x19a317}:null;}})[_0xe04c('0x2c')](respondWithResult(_0x1b524b,null))[_0xe04c('0x4d')](handleError(_0x1b524b,null));};