a1c70134a9106b898bff06c20c6642aaf1f3e152
[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 _0x31ee=['stack','name','index','map','CmList','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','pick','filter','where','VIRTUAL','merge','options','includeAll','include','rows','catch','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Lists','UserProfileSection','autoAssociation','describe','addDisposition','ListId','Disposition','getDispositions','findOne','removeDispositions','ids','addContacts','CmContact','tags','join','isArray','push','each','omit','dataValues','errors','Malformed\x20request\x20syntax','getContacts','CmCustomField','CustomFields','concat','format','cf_%d','raw','getContactsCsv','now','writeFileSync','setHeader','Content-disposition','Content-type','download','sequelize','transaction','addCustomFields','Sequelize','text','TEXT','number','INTEGER','switch','type','BOOLEAN','defaultValue','queryInterface','addColumn','getCustomFields','addAgents','spread','emit','userCmList:save','removeAgents','userCmList:remove','getAgents','User','rimraf','zip-dir','fast-json-patch','bluebird','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./cmList.socket','register','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','error'];(function(_0x4f7911,_0xb5e9da){var _0x495148=function(_0x5a712a){while(--_0x5a712a){_0x4f7911['push'](_0x4f7911['shift']());}};_0x495148(++_0xb5e9da);}(_0x31ee,0x181));var _0xe31e=function(_0x5bd2d6,_0x2d11b1){_0x5bd2d6=_0x5bd2d6-0x0;var _0x4ddd85=_0x31ee[_0x5bd2d6];return _0x4ddd85;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xe31e('0x0'));var zipdir=require(_0xe31e('0x1'));var jsonpatch=require(_0xe31e('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xe31e('0x3'));var Mustache=require('mustache');var util=require(_0xe31e('0x4'));var path=require('path');var sox=require(_0xe31e('0x5'));var csv=require(_0xe31e('0x6'));var ejs=require(_0xe31e('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe31e('0x8'));var squel=require(_0xe31e('0x9'));var crypto=require(_0xe31e('0xa'));var jsforce=require(_0xe31e('0xb'));var deskjs=require(_0xe31e('0xc'));var toCsv=require(_0xe31e('0x6'));var querystring=require(_0xe31e('0xd'));var Papa=require(_0xe31e('0xe'));var Redis=require('ioredis');var authService=require(_0xe31e('0xf'));var qs=require(_0xe31e('0x10'));var as=require(_0xe31e('0x11'));var hardwareService=require(_0xe31e('0x12'));var logger=require(_0xe31e('0x13'))('api');var utils=require(_0xe31e('0x14'));var config=require(_0xe31e('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xe31e('0x16'))['db'];config[_0xe31e('0x17')]=_[_0xe31e('0x18')](config[_0xe31e('0x17')],{'host':_0xe31e('0x19'),'port':0x18eb});var socket=require(_0xe31e('0x1a'))(new Redis(config[_0xe31e('0x17')]));require(_0xe31e('0x1b'))[_0xe31e('0x1c')](socket);function respondWithStatusCode(_0x3ea0ea,_0x520c13){_0x520c13=_0x520c13||0xcc;return function(_0x672cdc){if(_0x672cdc){return _0x3ea0ea[_0xe31e('0x1d')](_0x520c13);}return _0x3ea0ea[_0xe31e('0x1e')](_0x520c13)[_0xe31e('0x1f')]();};}function respondWithResult(_0xa25d05,_0x36a15a){_0x36a15a=_0x36a15a||0xc8;return function(_0x4d78b2){if(_0x4d78b2){return _0xa25d05[_0xe31e('0x1e')](_0x36a15a)[_0xe31e('0x20')](_0x4d78b2);}};}function respondWithFilteredResult(_0xeacaee,_0x38aca7){return function(_0x550169){if(_0x550169){var _0xf46f82=typeof _0x38aca7[_0xe31e('0x21')]==='undefined'&&typeof _0x38aca7['limit']===_0xe31e('0x22');var _0x1a0cea=_0x550169[_0xe31e('0x23')];var _0x485c25=_0xf46f82?0x0:_0x38aca7[_0xe31e('0x21')];var _0x52c112=_0xf46f82?_0x550169[_0xe31e('0x23')]:_0x38aca7[_0xe31e('0x21')]+_0x38aca7['limit'];var _0x5db8da;if(_0x52c112>=_0x1a0cea){_0x52c112=_0x1a0cea;_0x5db8da=0xc8;}else{_0x5db8da=0xce;}_0xeacaee['status'](_0x5db8da);return _0xeacaee[_0xe31e('0x24')](_0xe31e('0x25'),_0x485c25+'-'+_0x52c112+'/'+_0x1a0cea)[_0xe31e('0x20')](_0x550169);}return null;};}function patchUpdates(_0x290c99){return function(_0x47c075){try{jsonpatch[_0xe31e('0x26')](_0x47c075,_0x290c99,!![]);}catch(_0x45e979){return BPromise[_0xe31e('0x27')](_0x45e979);}return _0x47c075[_0xe31e('0x28')]();};}function saveUpdates(_0x4dd0f5,_0x4fc0e7){return function(_0x194913){if(_0x194913){return _0x194913[_0xe31e('0x29')](_0x4dd0f5)[_0xe31e('0x2a')](function(_0x30a19a){return _0x30a19a;});}return null;};}function removeEntity(_0x2c91f7,_0x1f852c){return function(_0x4baf83){if(_0x4baf83){return _0x4baf83[_0xe31e('0x2b')]()[_0xe31e('0x2a')](function(){var _0x3e46f8=_0x4baf83[_0xe31e('0x2c')]({'plain':!![]});var _0x26fede='Lists';return db[_0xe31e('0x2d')]['destroy']({'where':{'type':_0x26fede,'resourceId':_0x3e46f8['id']}})['then'](function(){return _0x4baf83;});})['then'](function(){_0x2c91f7['status'](0xcc)[_0xe31e('0x1f')]();});}};}function handleEntityNotFound(_0x3d9228,_0x5679bc){return function(_0x10419c){if(!_0x10419c){_0x3d9228[_0xe31e('0x1d')](0x194);}return _0x10419c;};}function handleError(_0x2c51a5,_0x1714ba){_0x1714ba=_0x1714ba||0x1f4;return function(_0x4fdaab){logger[_0xe31e('0x2e')](_0x4fdaab[_0xe31e('0x2f')]);if(_0x4fdaab[_0xe31e('0x30')]){delete _0x4fdaab['name'];}_0x2c51a5['status'](_0x1714ba)['send'](_0x4fdaab);};}exports[_0xe31e('0x31')]=function(_0x10b913,_0x8a2ae9){var _0x3cbd64={},_0x4a3d75={},_0x1075b9={'count':0x0,'rows':[]};var _0x38e29b=_[_0xe31e('0x32')](db[_0xe31e('0x33')][_0xe31e('0x34')],function(_0x1c06d6){return{'name':_0x1c06d6[_0xe31e('0x35')],'type':_0x1c06d6['type'][_0xe31e('0x36')]};});_0x4a3d75[_0xe31e('0x37')]=_[_0xe31e('0x32')](_0x38e29b,_0xe31e('0x30'));_0x4a3d75[_0xe31e('0x38')]=_[_0xe31e('0x39')](_0x10b913['query']);_0x4a3d75[_0xe31e('0x3a')]=_[_0xe31e('0x3b')](_0x4a3d75[_0xe31e('0x37')],_0x4a3d75[_0xe31e('0x38')]);_0x3cbd64[_0xe31e('0x3c')]=_[_0xe31e('0x3b')](_0x4a3d75[_0xe31e('0x37')],qs['fields'](_0x10b913['query'][_0xe31e('0x3d')]));_0x3cbd64[_0xe31e('0x3c')]=_0x3cbd64[_0xe31e('0x3c')][_0xe31e('0x3e')]?_0x3cbd64[_0xe31e('0x3c')]:_0x4a3d75[_0xe31e('0x37')];if(!_0x10b913[_0xe31e('0x38')][_0xe31e('0x3f')](_0xe31e('0x40'))){_0x3cbd64[_0xe31e('0x41')]=qs[_0xe31e('0x41')](_0x10b913[_0xe31e('0x38')][_0xe31e('0x41')]);_0x3cbd64[_0xe31e('0x21')]=qs[_0xe31e('0x21')](_0x10b913[_0xe31e('0x38')]['offset']);}_0x3cbd64[_0xe31e('0x42')]=qs[_0xe31e('0x43')](_0x10b913[_0xe31e('0x38')]['sort']);_0x3cbd64['where']=qs[_0xe31e('0x3a')](_[_0xe31e('0x44')](_0x10b913['query'],_0x4a3d75[_0xe31e('0x3a')]),_0x38e29b);if(_0x10b913['query'][_0xe31e('0x45')]){_0x3cbd64[_0xe31e('0x46')]=_['merge'](_0x3cbd64[_0xe31e('0x46')],{'$or':_[_0xe31e('0x32')](_0x38e29b,function(_0xea8d56){if(_0xea8d56['type']!==_0xe31e('0x47')){var _0x51702f={};_0x51702f[_0xea8d56[_0xe31e('0x30')]]={'$like':'%'+_0x10b913[_0xe31e('0x38')][_0xe31e('0x45')]+'%'};return _0x51702f;}})});}_0x3cbd64=_[_0xe31e('0x48')]({},_0x3cbd64,_0x10b913[_0xe31e('0x49')]);var _0xbd8084={'where':_0x3cbd64[_0xe31e('0x46')]};return db[_0xe31e('0x33')]['count'](_0xbd8084)[_0xe31e('0x2a')](function(_0x1fac59){_0x1075b9[_0xe31e('0x23')]=_0x1fac59;if(_0x10b913[_0xe31e('0x38')][_0xe31e('0x4a')]){_0x3cbd64[_0xe31e('0x4b')]=[{'all':!![]}];}return db[_0xe31e('0x33')]['findAll'](_0x3cbd64);})[_0xe31e('0x2a')](function(_0x198625){_0x1075b9[_0xe31e('0x4c')]=_0x198625;return _0x1075b9;})['then'](respondWithFilteredResult(_0x8a2ae9,_0x3cbd64))[_0xe31e('0x4d')](handleError(_0x8a2ae9,null));};exports['show']=function(_0x269193,_0x5af882){var _0x1fadce={'raw':![],'where':{'id':_0x269193[_0xe31e('0x4e')]['id']}},_0x505ab7={};_0x505ab7[_0xe31e('0x37')]=_[_0xe31e('0x39')](db['CmList'][_0xe31e('0x34')]);_0x505ab7['query']=_[_0xe31e('0x39')](_0x269193[_0xe31e('0x38')]);_0x505ab7['filters']=_[_0xe31e('0x3b')](_0x505ab7[_0xe31e('0x37')],_0x505ab7[_0xe31e('0x38')]);_0x1fadce[_0xe31e('0x3c')]=_['intersection'](_0x505ab7[_0xe31e('0x37')],qs[_0xe31e('0x3d')](_0x269193[_0xe31e('0x38')][_0xe31e('0x3d')]));_0x1fadce[_0xe31e('0x3c')]=_0x1fadce[_0xe31e('0x3c')][_0xe31e('0x3e')]?_0x1fadce['attributes']:_0x505ab7[_0xe31e('0x37')];if(_0x269193[_0xe31e('0x38')]['includeAll']){_0x1fadce[_0xe31e('0x4b')]=[{'all':!![]}];}_0x1fadce=_['merge']({},_0x1fadce,_0x269193[_0xe31e('0x49')]);return db['CmList'][_0xe31e('0x4f')](_0x1fadce)[_0xe31e('0x2a')](handleEntityNotFound(_0x5af882,null))[_0xe31e('0x2a')](respondWithResult(_0x5af882,null))[_0xe31e('0x4d')](handleError(_0x5af882,null));};exports[_0xe31e('0x50')]=function(_0x1deefb,_0x435655){return db['CmList']['create'](_0x1deefb[_0xe31e('0x51')],{})['then'](function(_0x4ac230){var _0x3467f9=_0x1deefb[_0xe31e('0x52')][_0xe31e('0x2c')]({'plain':!![]});if(!_0x3467f9)throw new Error(_0xe31e('0x53'));if(_0x3467f9[_0xe31e('0x54')]==='user'){var _0x47894c=_0x4ac230['get']({'plain':!![]});var _0x27b714=_0xe31e('0x55');return db[_0xe31e('0x56')][_0xe31e('0x4f')]({'where':{'name':_0x27b714,'userProfileId':_0x3467f9['userProfileId']},'raw':!![]})['then'](function(_0x5ce21c){if(_0x5ce21c&&_0x5ce21c[_0xe31e('0x57')]===0x0){return db[_0xe31e('0x2d')][_0xe31e('0x50')]({'name':_0x47894c[_0xe31e('0x30')],'resourceId':_0x47894c['id'],'type':_0x5ce21c[_0xe31e('0x30')],'sectionId':_0x5ce21c['id']},{})[_0xe31e('0x2a')](function(){return _0x4ac230;});}else{return _0x4ac230;}})[_0xe31e('0x4d')](function(_0x222dd6){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x222dd6);throw _0x222dd6;});}return _0x4ac230;})['then'](respondWithResult(_0x435655,0xc9))['catch'](handleError(_0x435655,null));};exports[_0xe31e('0x29')]=function(_0x2255e7,_0x358b76){if(_0x2255e7[_0xe31e('0x51')]['id']){delete _0x2255e7[_0xe31e('0x51')]['id'];}return db[_0xe31e('0x33')][_0xe31e('0x4f')]({'where':{'id':_0x2255e7[_0xe31e('0x4e')]['id']}})[_0xe31e('0x2a')](handleEntityNotFound(_0x358b76,null))['then'](saveUpdates(_0x2255e7[_0xe31e('0x51')],null))[_0xe31e('0x2a')](respondWithResult(_0x358b76,null))[_0xe31e('0x4d')](handleError(_0x358b76,null));};exports[_0xe31e('0x2b')]=function(_0xc93e44,_0x5d1f1d){return db[_0xe31e('0x33')][_0xe31e('0x4f')]({'where':{'id':_0xc93e44[_0xe31e('0x4e')]['id']}})[_0xe31e('0x2a')](handleEntityNotFound(_0x5d1f1d,null))[_0xe31e('0x2a')](removeEntity(_0x5d1f1d,null))['catch'](handleError(_0x5d1f1d,null));};exports['describe']=function(_0x2bb000,_0x19da31){return db['CmList'][_0xe31e('0x58')]()[_0xe31e('0x2a')](respondWithResult(_0x19da31,null))[_0xe31e('0x4d')](handleError(_0x19da31,null));};exports[_0xe31e('0x59')]=function(_0x29eea3,_0x2b43d1,_0x16b054){if(_0x29eea3[_0xe31e('0x51')]['id']){delete _0x29eea3[_0xe31e('0x51')]['id'];}return db['CmList']['find']({'where':{'id':_0x29eea3[_0xe31e('0x4e')]['id']}})[_0xe31e('0x2a')](handleEntityNotFound(_0x2b43d1,null))[_0xe31e('0x2a')](function(_0x44a6cc){if(_0x44a6cc){_0x29eea3[_0xe31e('0x51')][_0xe31e('0x5a')]=_0x44a6cc['id'];return db[_0xe31e('0x5b')][_0xe31e('0x50')](_0x29eea3[_0xe31e('0x51')]);}})[_0xe31e('0x2a')](respondWithResult(_0x2b43d1,null))[_0xe31e('0x4d')](handleError(_0x2b43d1,null));};exports[_0xe31e('0x5c')]=function(_0x22e097,_0x3243ac,_0x5380f3){var _0x150080={'raw':![],'where':{}};var _0x2452e7={};var _0x101149={'count':0x0,'rows':[]};return db[_0xe31e('0x33')][_0xe31e('0x5d')]({'where':{'id':_0x22e097[_0xe31e('0x4e')]['id']}})[_0xe31e('0x2a')](handleEntityNotFound(_0x3243ac,null))[_0xe31e('0x2a')](function(_0x27bf38){if(_0x27bf38){_0x2452e7[_0xe31e('0x37')]=_[_0xe31e('0x39')](db['Disposition']['rawAttributes']);_0x2452e7[_0xe31e('0x38')]=_[_0xe31e('0x39')](_0x22e097[_0xe31e('0x38')]);_0x2452e7[_0xe31e('0x3a')]=_['intersection'](_0x2452e7[_0xe31e('0x37')],_0x2452e7[_0xe31e('0x38')]);_0x150080['attributes']=_['intersection'](_0x2452e7[_0xe31e('0x37')],qs[_0xe31e('0x3d')](_0x22e097['query'][_0xe31e('0x3d')]));_0x150080[_0xe31e('0x3c')]=_0x150080[_0xe31e('0x3c')]['length']?_0x150080[_0xe31e('0x3c')]:_0x2452e7[_0xe31e('0x37')];if(!_0x22e097[_0xe31e('0x38')][_0xe31e('0x3f')](_0xe31e('0x40'))){_0x150080['limit']=qs['limit'](_0x22e097[_0xe31e('0x38')][_0xe31e('0x41')]);_0x150080['offset']=qs['offset'](_0x22e097[_0xe31e('0x38')][_0xe31e('0x21')]);}_0x150080[_0xe31e('0x42')]=qs[_0xe31e('0x43')](_0x22e097['query'][_0xe31e('0x43')]);_0x150080[_0xe31e('0x46')]=qs[_0xe31e('0x3a')](_[_0xe31e('0x44')](_0x22e097[_0xe31e('0x38')],_0x2452e7[_0xe31e('0x3a')]));_0x150080[_0xe31e('0x46')][_0xe31e('0x5a')]=_0x27bf38['id'];if(_0x22e097[_0xe31e('0x38')][_0xe31e('0x45')]){_0x150080['where']=_[_0xe31e('0x48')](_0x150080[_0xe31e('0x46')],{'$or':_[_0xe31e('0x32')](_0x150080[_0xe31e('0x3c')],function(_0x3e4631){var _0x5d8ea9={};_0x5d8ea9[_0x3e4631]={'$like':'%'+_0x22e097['query'][_0xe31e('0x45')]+'%'};return _0x5d8ea9;})});}_0x150080=_[_0xe31e('0x48')]({},_0x150080,_0x22e097[_0xe31e('0x49')]);return db['Disposition'][_0xe31e('0x23')]({'where':_0x150080[_0xe31e('0x46')]})['then'](function(_0x321886){_0x101149[_0xe31e('0x23')]=_0x321886;if(_0x22e097[_0xe31e('0x38')][_0xe31e('0x4a')]){_0x150080[_0xe31e('0x4b')]=[{'all':!![]}];}return db[_0xe31e('0x5b')]['findAll'](_0x150080);})[_0xe31e('0x2a')](function(_0x518e61){_0x101149[_0xe31e('0x4c')]=_0x518e61;return _0x101149;});}})[_0xe31e('0x2a')](respondWithFilteredResult(_0x3243ac,_0x150080))[_0xe31e('0x4d')](handleError(_0x3243ac,null));};exports['removeDispositions']=function(_0x547af7,_0x3ba8a0,_0x23bf5b){return db['CmList']['find']({'where':{'id':_0x547af7[_0xe31e('0x4e')]['id']}})[_0xe31e('0x2a')](handleEntityNotFound(_0x3ba8a0,null))['then'](function(_0x2f0685){if(_0x2f0685){return _0x2f0685[_0xe31e('0x5e')](_0x547af7[_0xe31e('0x38')][_0xe31e('0x5f')]);}})[_0xe31e('0x2a')](respondWithStatusCode(_0x3ba8a0,null))['catch'](handleError(_0x3ba8a0,null));};exports[_0xe31e('0x60')]=function(_0x4db964,_0x3b22db,_0x236407){return db[_0xe31e('0x33')][_0xe31e('0x4f')]({'where':{'id':_0x4db964['params']['id']}})[_0xe31e('0x2a')](handleEntityNotFound(_0x3b22db,null))[_0xe31e('0x2a')](function(_0x29bb39){if(_0x29bb39){var _0xc5dcb6=[];var _0x2d8399={'success':[],'errors':[]};return db[_0xe31e('0x61')][_0xe31e('0x58')]()[_0xe31e('0x2a')](function(_0x1aa950){if(_0x4db964[_0xe31e('0x51')][_0xe31e('0x62')]&&_['isArray'](_0x4db964['body'][_0xe31e('0x62')])){if(_0x4db964[_0xe31e('0x51')]['tags']['length']){_0x4db964[_0xe31e('0x51')][_0xe31e('0x62')]=_0x4db964['body'][_0xe31e('0x62')][_0xe31e('0x63')](';')+';';}else{_0x4db964[_0xe31e('0x51')][_0xe31e('0x62')]=null;}}else{_0x4db964[_0xe31e('0x51')]['tags']=null;}if(_0x4db964['body']&&_[_0xe31e('0x64')](_0x4db964[_0xe31e('0x51')])){for(var _0x56adfe=0x0;_0x56adfe<_0x4db964['body'][_0xe31e('0x3e')];_0x56adfe+=0x1){_0x4db964[_0xe31e('0x51')][_0x56adfe][_0xe31e('0x5a')]=_0x4db964[_0xe31e('0x4e')]['id'];_0xc5dcb6[_0xe31e('0x65')](_0x4db964[_0xe31e('0x51')][_0x56adfe]);}return BPromise[_0xe31e('0x66')](_0xc5dcb6,function(_0x11f508){return db[_0xe31e('0x61')]['create'](_[_0xe31e('0x67')](_0x11f508,[_0xe31e('0x5f'),'id'])||{},{'fields':_[_0xe31e('0x39')](_0x1aa950),'raw':!![]})[_0xe31e('0x2a')](function(_0x5f4f10){_0x2d8399['success'][_0xe31e('0x65')](_0x5f4f10[_0xe31e('0x68')]);})[_0xe31e('0x4d')](function(_0x483408){_0x2d8399[_0xe31e('0x69')][_0xe31e('0x65')]({'data':_0x11f508,'error':_0x483408['message']});});})[_0xe31e('0x2a')](function(_0x472397){return _0x2d8399;})[_0xe31e('0x4d')](function(_0x2e1a63){return _0x2e1a63;});}else{_0x3b22db[_0xe31e('0x1e')](0x190)[_0xe31e('0x20')]({'message':_0xe31e('0x6a')});}});}})['then'](respondWithResult(_0x3b22db,null))[_0xe31e('0x4d')](handleError(_0x3b22db,null));};exports[_0xe31e('0x6b')]=function(_0x1e48bb,_0x43bafc,_0x428f8a){var _0x3f13bd;return db[_0xe31e('0x33')]['find']({'where':{'id':_0x1e48bb[_0xe31e('0x4e')]['id']},'include':[{'model':db[_0xe31e('0x6c')],'as':_0xe31e('0x6d')}]})[_0xe31e('0x2a')](handleEntityNotFound(_0x43bafc,null))[_0xe31e('0x2a')](function(_0x51b195){if(_0x51b195){_0x3f13bd=_0x51b195;return db[_0xe31e('0x61')][_0xe31e('0x34')];}})[_0xe31e('0x2a')](function(_0x4f9102){if(_0x4f9102){var _0x161eb6={};var _0x89d13={};_0x89d13[_0xe31e('0x37')]=_[_0xe31e('0x6e')](_[_0xe31e('0x39')](_0x4f9102),_['map'](_0x3f13bd[_0xe31e('0x6d')],function(_0x5db058){return util[_0xe31e('0x6f')](_0xe31e('0x70'),_0x5db058['id']);}));_0x89d13['query']=_[_0xe31e('0x39')](_0x1e48bb[_0xe31e('0x38')]);_0x89d13[_0xe31e('0x3a')]=_[_0xe31e('0x3b')](_0x89d13[_0xe31e('0x37')],_0x89d13[_0xe31e('0x38')]);_0x161eb6[_0xe31e('0x3c')]=_[_0xe31e('0x3b')](_0x89d13[_0xe31e('0x37')],qs[_0xe31e('0x3d')](_0x1e48bb[_0xe31e('0x38')][_0xe31e('0x3d')]));_0x161eb6[_0xe31e('0x3c')]=_0x161eb6[_0xe31e('0x3c')]['length']?_0x161eb6[_0xe31e('0x3c')]:_0x89d13[_0xe31e('0x37')];if(!_0x1e48bb['query'][_0xe31e('0x3f')](_0xe31e('0x40'))){_0x161eb6[_0xe31e('0x41')]=qs['limit'](_0x1e48bb[_0xe31e('0x38')][_0xe31e('0x41')]);_0x161eb6['offset']=qs['offset'](_0x1e48bb['query'][_0xe31e('0x21')]);}_0x161eb6[_0xe31e('0x42')]=qs[_0xe31e('0x43')](_0x1e48bb[_0xe31e('0x38')][_0xe31e('0x43')]);_0x161eb6[_0xe31e('0x46')]=qs[_0xe31e('0x3a')](_[_0xe31e('0x44')](_0x1e48bb[_0xe31e('0x38')],_0x89d13[_0xe31e('0x3a')]));_0x161eb6[_0xe31e('0x71')]=!![];if(_0x1e48bb['query']['filter']){_0x161eb6['where']=_[_0xe31e('0x48')](_0x161eb6['where'],{'$or':_['map'](_0x161eb6[_0xe31e('0x3c')],function(_0x1ea80d){var _0x4c4c88={};_0x4c4c88[_0x1ea80d]={'$like':'%'+_0x1e48bb[_0xe31e('0x38')][_0xe31e('0x45')]+'%'};return _0x4c4c88;})});}_0x161eb6=_[_0xe31e('0x48')]({},_0x161eb6,_0x1e48bb['options']);return _0x3f13bd[_0xe31e('0x6b')](_0x161eb6);}})[_0xe31e('0x2a')](respondWithResult(_0x43bafc,null))[_0xe31e('0x4d')](handleError(_0x43bafc,null));};exports[_0xe31e('0x72')]=function(_0x26722b,_0x2da85f,_0xe4c25){var _0x27b769;return db['CmList'][_0xe31e('0x4f')]({'where':{'id':_0x26722b[_0xe31e('0x4e')]['id']},'include':[{'model':db[_0xe31e('0x6c')],'as':_0xe31e('0x6d')}]})[_0xe31e('0x2a')](handleEntityNotFound(_0x2da85f,null))['then'](function(_0x2aa683){if(_0x2aa683){_0x27b769=_0x2aa683;return db[_0xe31e('0x61')][_0xe31e('0x34')];}})[_0xe31e('0x2a')](function(_0x33ff93){if(_0x33ff93){var _0x5b3932={};var _0x1a75d3={};_0x1a75d3[_0xe31e('0x37')]=_[_0xe31e('0x6e')](_[_0xe31e('0x39')](_0x33ff93),_[_0xe31e('0x32')](_0x27b769['CustomFields'],function(_0x448470){return util[_0xe31e('0x6f')](_0xe31e('0x70'),_0x448470['id']);}));_0x1a75d3[_0xe31e('0x38')]=_[_0xe31e('0x39')](_0x26722b['query']);_0x1a75d3['filters']=_[_0xe31e('0x3b')](_0x1a75d3['model'],_0x1a75d3[_0xe31e('0x38')]);_0x5b3932[_0xe31e('0x3c')]=_[_0xe31e('0x3b')](_0x1a75d3[_0xe31e('0x37')],qs[_0xe31e('0x3d')](_0x26722b['query'][_0xe31e('0x3d')]));_0x5b3932[_0xe31e('0x3c')]=_0x5b3932[_0xe31e('0x3c')][_0xe31e('0x3e')]?_0x5b3932['attributes']:_0x1a75d3['model'];if(!_0x26722b[_0xe31e('0x38')]['hasOwnProperty']('nolimit')){_0x5b3932['limit']=qs[_0xe31e('0x41')](_0x26722b[_0xe31e('0x38')][_0xe31e('0x41')]);_0x5b3932[_0xe31e('0x21')]=qs['offset'](_0x26722b[_0xe31e('0x38')]['offset']);}_0x5b3932[_0xe31e('0x42')]=qs['sort'](_0x26722b[_0xe31e('0x38')][_0xe31e('0x43')]);_0x5b3932[_0xe31e('0x46')]=qs[_0xe31e('0x3a')](_['pick'](_0x26722b[_0xe31e('0x38')],_0x1a75d3['filters']));_0x5b3932[_0xe31e('0x71')]=!![];if(_0x26722b[_0xe31e('0x38')][_0xe31e('0x45')]){_0x5b3932[_0xe31e('0x46')]=_[_0xe31e('0x48')](_0x5b3932['where'],{'$or':_[_0xe31e('0x32')](_0x5b3932[_0xe31e('0x3c')],function(_0x4f7417){var _0x5c06ab={};_0x5c06ab[_0x4f7417]={'$like':'%'+_0x26722b[_0xe31e('0x38')][_0xe31e('0x45')]+'%'};return _0x5c06ab;})});}_0x5b3932=_[_0xe31e('0x48')]({},_0x5b3932,_0x26722b[_0xe31e('0x49')]);return _0x27b769['getContacts'](_0x5b3932);}})[_0xe31e('0x2a')](function(_0x2557e1){if(!_['isEmpty'](_0x2557e1)){var _0x21e43d=toCsv(_0x2557e1);var _0x5386c0=Date[_0xe31e('0x73')]();fs[_0xe31e('0x74')](util[_0xe31e('0x6f')]('/tmp/list_%d_%s.csv',_0x27b769['id'],_0x5386c0),_0x21e43d);_0x2da85f[_0xe31e('0x75')](_0xe31e('0x76'),'attachment;\x20filename='+util[_0xe31e('0x6f')]('list_%d_%s.csv',_0x27b769['id'],_0x5386c0));_0x2da85f['setHeader'](_0xe31e('0x77'),'text/csv');return _0x2da85f[_0xe31e('0x78')](util['format']('/tmp/list_%d_%s.csv',_0x27b769['id'],_0x5386c0));}else{return _0x2da85f['sendStatus'](0xcc);}})[_0xe31e('0x4d')](handleError(_0x2da85f,null));};exports['addCustomField']=function(_0x48d5ff,_0x5b13e3,_0x36e35b){var _0x55d71a;delete _0x48d5ff[_0xe31e('0x51')]['id'];return db[_0xe31e('0x33')][_0xe31e('0x5d')]({'where':{'id':_0x48d5ff[_0xe31e('0x4e')]['id']}})[_0xe31e('0x2a')](handleEntityNotFound(_0x5b13e3,null))[_0xe31e('0x2a')](function(_0x144840){if(_0x144840){return db[_0xe31e('0x79')][_0xe31e('0x7a')](function(_0x53d17b){return db[_0xe31e('0x6c')][_0xe31e('0x50')](_0x48d5ff[_0xe31e('0x51')],{'transaction':_0x53d17b})[_0xe31e('0x2a')](function(_0x4c5a45){_0x55d71a=_0x4c5a45;return _0x144840[_0xe31e('0x7b')](_0x4c5a45,{'transaction':_0x53d17b});})[_0xe31e('0x2a')](function(){var _0x51b370={'type':db[_0xe31e('0x7c')]['TEXT'],'transaction':_0x53d17b};switch(_0x48d5ff[_0xe31e('0x51')]['type']){case _0xe31e('0x7d'):_0x51b370['type']=db[_0xe31e('0x7c')][_0xe31e('0x7e')];break;case _0xe31e('0x7f'):_0x51b370['type']=db[_0xe31e('0x7c')][_0xe31e('0x80')];break;case _0xe31e('0x81'):_0x51b370[_0xe31e('0x82')]=db[_0xe31e('0x7c')][_0xe31e('0x83')];_0x51b370[_0xe31e('0x84')]=![];break;default:}return db[_0xe31e('0x79')][_0xe31e('0x85')][_0xe31e('0x86')]('cm_contacts',util[_0xe31e('0x6f')]('cf_%s',_0x55d71a['id']),_0x51b370);})['then'](function(){return _0x55d71a;});});}})[_0xe31e('0x2a')](respondWithResult(_0x5b13e3,null))[_0xe31e('0x4d')](handleError(_0x5b13e3,null));};exports[_0xe31e('0x87')]=function(_0x4c7561,_0x386016,_0x3ce60b){var _0x409ba5={};var _0xcd1786={};var _0x2c0119;var _0x271ec0;return db[_0xe31e('0x33')]['findOne']({'where':{'id':_0x4c7561[_0xe31e('0x4e')]['id']}})[_0xe31e('0x2a')](handleEntityNotFound(_0x386016,null))[_0xe31e('0x2a')](function(_0x5b7d24){if(_0x5b7d24){_0x2c0119=_0x5b7d24;_0xcd1786['model']=_[_0xe31e('0x39')](db[_0xe31e('0x6c')]['rawAttributes']);_0xcd1786[_0xe31e('0x38')]=_[_0xe31e('0x39')](_0x4c7561[_0xe31e('0x38')]);_0xcd1786[_0xe31e('0x3a')]=_[_0xe31e('0x3b')](_0xcd1786['model'],_0xcd1786[_0xe31e('0x38')]);_0x409ba5[_0xe31e('0x3c')]=_[_0xe31e('0x3b')](_0xcd1786[_0xe31e('0x37')],qs['fields'](_0x4c7561[_0xe31e('0x38')]['fields']));_0x409ba5[_0xe31e('0x3c')]=_0x409ba5[_0xe31e('0x3c')]['length']?_0x409ba5['attributes']:_0xcd1786['model'];_0x409ba5[_0xe31e('0x42')]=qs[_0xe31e('0x43')](_0x4c7561[_0xe31e('0x38')][_0xe31e('0x43')]);_0x409ba5['where']=qs[_0xe31e('0x3a')](_[_0xe31e('0x44')](_0x4c7561[_0xe31e('0x38')],_0xcd1786[_0xe31e('0x3a')]));_0x409ba5[_0xe31e('0x46')]=_[_0xe31e('0x48')](_0x409ba5[_0xe31e('0x46')],{'$or':[{'ListId':_0x5b7d24['id']},{'ListId':null}]});if(_0x4c7561[_0xe31e('0x38')][_0xe31e('0x45')]){_0x409ba5[_0xe31e('0x46')]=_[_0xe31e('0x48')](_0x409ba5['where'],{'$or':_[_0xe31e('0x32')](_0x409ba5[_0xe31e('0x3c')],function(_0x59033f){var _0x484e5c={};_0x484e5c[_0x59033f]={'$like':'%'+_0x4c7561[_0xe31e('0x38')][_0xe31e('0x45')]+'%'};return _0x484e5c;})});}_0x409ba5=_[_0xe31e('0x48')]({},_0x409ba5,_0x4c7561[_0xe31e('0x49')]);return db[_0xe31e('0x6c')]['findAndCountAll'](_0x409ba5);}})[_0xe31e('0x2a')](respondWithResult(_0x386016,null))[_0xe31e('0x4d')](handleError(_0x386016,null));};exports[_0xe31e('0x88')]=function(_0x19e839,_0x4a58fe,_0x564c24){return db['CmList'][_0xe31e('0x4f')]({'where':{'id':_0x19e839[_0xe31e('0x4e')]['id']}})['then'](handleEntityNotFound(_0x4a58fe,null))[_0xe31e('0x2a')](function(_0x4a0bff){if(_0x4a0bff){return _0x4a0bff[_0xe31e('0x88')](_0x19e839[_0xe31e('0x51')][_0xe31e('0x5f')],_['omit'](_0x19e839[_0xe31e('0x51')],[_0xe31e('0x5f'),'id'])||{})[_0xe31e('0x89')](function(_0x41b716){for(var _0x30b442=0x0;_0x30b442<_0x19e839[_0xe31e('0x51')][_0xe31e('0x5f')][_0xe31e('0x3e')];_0x30b442+=0x1){socket[_0xe31e('0x8a')](_0xe31e('0x8b'),{'UserId':Number(_0x19e839[_0xe31e('0x51')]['ids'][_0x30b442]),'CmListId':Number(_0x19e839['params']['id'])});}return _0x41b716;});}})[_0xe31e('0x2a')](respondWithResult(_0x4a58fe,null))[_0xe31e('0x4d')](handleError(_0x4a58fe,null));};exports[_0xe31e('0x8c')]=function(_0x951152,_0x3d1b6e,_0x150c4c){return db[_0xe31e('0x33')][_0xe31e('0x4f')]({'where':{'id':_0x951152[_0xe31e('0x4e')]['id']}})[_0xe31e('0x2a')](handleEntityNotFound(_0x3d1b6e,null))[_0xe31e('0x2a')](function(_0x3876c0){if(_0x3876c0){return _0x3876c0[_0xe31e('0x8c')](_0x951152[_0xe31e('0x38')]['ids'])[_0xe31e('0x2a')](function(){if(_[_0xe31e('0x64')](_0x951152[_0xe31e('0x38')]['ids'])){for(var _0x3ea212=0x0;_0x3ea212<_0x951152[_0xe31e('0x38')][_0xe31e('0x5f')]['length'];_0x3ea212+=0x1){socket[_0xe31e('0x8a')](_0xe31e('0x8d'),{'UserId':Number(_0x951152[_0xe31e('0x38')][_0xe31e('0x5f')][_0x3ea212]),'CmListId':Number(_0x951152[_0xe31e('0x4e')]['id'])});}}else{socket[_0xe31e('0x8a')](_0xe31e('0x8d'),{'UserId':Number(_0x951152['query']['ids']),'CmListId':Number(_0x951152[_0xe31e('0x4e')]['id'])});}});}})[_0xe31e('0x2a')](respondWithStatusCode(_0x3d1b6e,null))[_0xe31e('0x4d')](handleError(_0x3d1b6e,null));};exports[_0xe31e('0x8e')]=function(_0xea23a2,_0x315033,_0xebb2f8){var _0x590de3={};var _0x463586={};var _0x20e9b4;var _0x328239;return db[_0xe31e('0x33')][_0xe31e('0x5d')]({'where':{'id':_0xea23a2[_0xe31e('0x4e')]['id']}})[_0xe31e('0x2a')](handleEntityNotFound(_0x315033,null))[_0xe31e('0x2a')](function(_0x165e3a){if(_0x165e3a){_0x20e9b4=_0x165e3a;_0x463586['model']=_[_0xe31e('0x39')](db[_0xe31e('0x8f')][_0xe31e('0x34')]);_0x463586[_0xe31e('0x38')]=_[_0xe31e('0x39')](_0xea23a2[_0xe31e('0x38')]);_0x463586[_0xe31e('0x3a')]=_[_0xe31e('0x3b')](_0x463586['model'],_0x463586['query']);_0x590de3[_0xe31e('0x3c')]=_[_0xe31e('0x3b')](_0x463586[_0xe31e('0x37')],qs[_0xe31e('0x3d')](_0xea23a2['query']['fields']));_0x590de3[_0xe31e('0x3c')]=_0x590de3['attributes'][_0xe31e('0x3e')]?_0x590de3[_0xe31e('0x3c')]:_0x463586[_0xe31e('0x37')];_0x590de3['order']=qs[_0xe31e('0x43')](_0xea23a2[_0xe31e('0x38')][_0xe31e('0x43')]);_0x590de3['where']=qs[_0xe31e('0x3a')](_[_0xe31e('0x44')](_0xea23a2[_0xe31e('0x38')],_0x463586[_0xe31e('0x3a')]));if(_0xea23a2[_0xe31e('0x38')]['filter']){_0x590de3[_0xe31e('0x46')]=_[_0xe31e('0x48')](_0x590de3[_0xe31e('0x46')],{'$or':_[_0xe31e('0x32')](_0x590de3[_0xe31e('0x3c')],function(_0x12d9ec){var _0xb345bd={};_0xb345bd[_0x12d9ec]={'$like':'%'+_0xea23a2['query'][_0xe31e('0x45')]+'%'};return _0xb345bd;})});}_0x590de3=_[_0xe31e('0x48')]({},_0x590de3,_0xea23a2['options']);return _0x20e9b4[_0xe31e('0x8e')](_0x590de3);}})[_0xe31e('0x2a')](function(_0x2c53f1){if(_0x2c53f1){_0x328239=_0x2c53f1['length'];if(!_0xea23a2[_0xe31e('0x38')][_0xe31e('0x3f')](_0xe31e('0x40'))){_0x590de3[_0xe31e('0x41')]=qs['limit'](_0xea23a2[_0xe31e('0x38')][_0xe31e('0x41')]);_0x590de3[_0xe31e('0x21')]=qs[_0xe31e('0x21')](_0xea23a2[_0xe31e('0x38')][_0xe31e('0x21')]);}return _0x20e9b4['getAgents'](_0x590de3);}})[_0xe31e('0x2a')](function(_0x21ccdb){if(_0x21ccdb){return _0x21ccdb?{'count':_0x328239,'rows':_0x21ccdb}:null;}})[_0xe31e('0x2a')](respondWithResult(_0x315033,null))[_0xe31e('0x4d')](handleError(_0x315033,null));};