Built motion from commit da617fac.|2.6.6
[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 _0x0ae6=['c.cf_','customField_','item','from','cm_contact_has_items','ItemTypeId\x20=\x20?','CmContactId\x20=\x20c.id','additionalPhone_','description','isEmpty','writeFileSync','/tmp/list_%d_%s.csv','Content-disposition','attachment;\x20filename=','list_%d_%s.csv','setHeader','text/csv','download','Sequelize','text','number','switch','BOOLEAN','defaultValue','sequelize','queryInterface','cm_contacts','cf_%s','getCustomFields','findAndCountAll','getGlobalCustomFields','addAgents','spread','userCmList:save','removeAgents','emit','userCmList:remove','getAgents','User','info','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','./cmList.socket','register','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','reject','save','then','destroy','get','Lists','error','name','send','index','map','CmList','rawAttributes','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','findAll','rows','catch','params','include','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','describe','ListId','Disposition','findOne','removeDispositions','addContacts','CmContact','tags','join','isArray','push','each','omit','ids','success','errors','message','Malformed\x20request\x20syntax','getContacts','CmCustomField','CustomFields','concat','format','cf_%d','nolimit','raw','ContactItemType','alias','select','c.ListId\x20=\x20?','field'];(function(_0x5927af,_0x4c56da){var _0x460dde=function(_0x18fb38){while(--_0x18fb38){_0x5927af['push'](_0x5927af['shift']());}};_0x460dde(++_0x4c56da);}(_0x0ae6,0x164));var _0x60ae=function(_0x493bf4,_0x17ed8f){_0x493bf4=_0x493bf4-0x0;var _0x28f46a=_0x0ae6[_0x493bf4];return _0x28f46a;};'use strict';var emlformat=require(_0x60ae('0x0'));var rimraf=require(_0x60ae('0x1'));var zipdir=require(_0x60ae('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x60ae('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x60ae('0x4'));var util=require(_0x60ae('0x5'));var path=require(_0x60ae('0x6'));var sox=require(_0x60ae('0x7'));var csv=require(_0x60ae('0x8'));var ejs=require(_0x60ae('0x9'));var fs=require('fs');var fs_extra=require(_0x60ae('0xa'));var _=require(_0x60ae('0xb'));var squel=require(_0x60ae('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x60ae('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x60ae('0xe'));var Redis=require(_0x60ae('0xf'));var authService=require(_0x60ae('0x10'));var qs=require(_0x60ae('0x11'));var as=require(_0x60ae('0x12'));var hardwareService=require(_0x60ae('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0x60ae('0x14'));var config=require(_0x60ae('0x15'));var licenseUtil=require(_0x60ae('0x16'));var db=require(_0x60ae('0x17'))['db'];var csv_results;config['redis']=_[_0x60ae('0x18')](config[_0x60ae('0x19')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x60ae('0x1a'))[_0x60ae('0x1b')](socket);function respondWithStatusCode(_0x27b0b5,_0x54cf36){_0x54cf36=_0x54cf36||0xcc;return function(_0x45a6bc){if(_0x45a6bc){return _0x27b0b5[_0x60ae('0x1c')](_0x54cf36);}return _0x27b0b5[_0x60ae('0x1d')](_0x54cf36)[_0x60ae('0x1e')]();};}function respondWithResult(_0x5361d7,_0x142e84){_0x142e84=_0x142e84||0xc8;return function(_0x2cc5a5){if(_0x2cc5a5){return _0x5361d7[_0x60ae('0x1d')](_0x142e84)[_0x60ae('0x1f')](_0x2cc5a5);}};}function respondWithFilteredResult(_0x45a9ff,_0x11951e){return function(_0x525dac){if(_0x525dac){var _0x47a73c=typeof _0x11951e['offset']===_0x60ae('0x20')&&typeof _0x11951e[_0x60ae('0x21')]===_0x60ae('0x20');var _0x344f81=_0x525dac[_0x60ae('0x22')];var _0x424c48=_0x47a73c?0x0:_0x11951e[_0x60ae('0x23')];var _0x368d75=_0x47a73c?_0x525dac[_0x60ae('0x22')]:_0x11951e[_0x60ae('0x23')]+_0x11951e['limit'];var _0x1bc443;if(_0x368d75>=_0x344f81){_0x368d75=_0x344f81;_0x1bc443=0xc8;}else{_0x1bc443=0xce;}_0x45a9ff['status'](_0x1bc443);return _0x45a9ff[_0x60ae('0x24')](_0x60ae('0x25'),_0x424c48+'-'+_0x368d75+'/'+_0x344f81)[_0x60ae('0x1f')](_0x525dac);}return null;};}function patchUpdates(_0x48a0e0){return function(_0x3db0ba){try{jsonpatch['apply'](_0x3db0ba,_0x48a0e0,!![]);}catch(_0x341bb1){return BPromise[_0x60ae('0x26')](_0x341bb1);}return _0x3db0ba[_0x60ae('0x27')]();};}function saveUpdates(_0x4bf65c,_0x22423a){return function(_0x5cf9c3){if(_0x5cf9c3){return _0x5cf9c3['update'](_0x4bf65c)[_0x60ae('0x28')](function(_0x4d6e59){return _0x4d6e59;});}return null;};}function removeEntity(_0x2f6561,_0x44920f){return function(_0x1fcac8){if(_0x1fcac8){return _0x1fcac8[_0x60ae('0x29')]()[_0x60ae('0x28')](function(){var _0x3c036d=_0x1fcac8[_0x60ae('0x2a')]({'plain':!![]});var _0x57b95a=_0x60ae('0x2b');return db['UserProfileResource'][_0x60ae('0x29')]({'where':{'type':_0x57b95a,'resourceId':_0x3c036d['id']}})[_0x60ae('0x28')](function(){return _0x1fcac8;});})[_0x60ae('0x28')](function(){_0x2f6561['status'](0xcc)[_0x60ae('0x1e')]();});}};}function handleEntityNotFound(_0x39fcc2,_0x5d63bc){return function(_0x3b6e24){if(!_0x3b6e24){_0x39fcc2['sendStatus'](0x194);}return _0x3b6e24;};}function handleError(_0x5d1ecd,_0x27836e){_0x27836e=_0x27836e||0x1f4;return function(_0x70d8ac){logger[_0x60ae('0x2c')](_0x70d8ac['stack']);if(_0x70d8ac[_0x60ae('0x2d')]){delete _0x70d8ac[_0x60ae('0x2d')];}_0x5d1ecd['status'](_0x27836e)[_0x60ae('0x2e')](_0x70d8ac);};}exports[_0x60ae('0x2f')]=function(_0x4055b5,_0x44a451){var _0x2b4185={},_0x483758={},_0x554c9b={'count':0x0,'rows':[]};var _0xc85a1d=_[_0x60ae('0x30')](db[_0x60ae('0x31')][_0x60ae('0x32')],function(_0x38a624){return{'name':_0x38a624['fieldName'],'type':_0x38a624[_0x60ae('0x33')]['key']};});_0x483758[_0x60ae('0x34')]=_[_0x60ae('0x30')](_0xc85a1d,_0x60ae('0x2d'));_0x483758[_0x60ae('0x35')]=_[_0x60ae('0x36')](_0x4055b5[_0x60ae('0x35')]);_0x483758[_0x60ae('0x37')]=_[_0x60ae('0x38')](_0x483758['model'],_0x483758['query']);_0x2b4185['attributes']=_[_0x60ae('0x38')](_0x483758[_0x60ae('0x34')],qs[_0x60ae('0x39')](_0x4055b5[_0x60ae('0x35')][_0x60ae('0x39')]));_0x2b4185['attributes']=_0x2b4185[_0x60ae('0x3a')][_0x60ae('0x3b')]?_0x2b4185['attributes']:_0x483758[_0x60ae('0x34')];if(!_0x4055b5[_0x60ae('0x35')][_0x60ae('0x3c')]('nolimit')){_0x2b4185[_0x60ae('0x21')]=qs[_0x60ae('0x21')](_0x4055b5[_0x60ae('0x35')]['limit']);_0x2b4185[_0x60ae('0x23')]=qs[_0x60ae('0x23')](_0x4055b5[_0x60ae('0x35')][_0x60ae('0x23')]);}_0x2b4185[_0x60ae('0x3d')]=qs['sort'](_0x4055b5[_0x60ae('0x35')][_0x60ae('0x3e')]);_0x2b4185[_0x60ae('0x3f')]=qs[_0x60ae('0x37')](_[_0x60ae('0x40')](_0x4055b5[_0x60ae('0x35')],_0x483758[_0x60ae('0x37')]),_0xc85a1d);if(_0x4055b5['query'][_0x60ae('0x41')]){_0x2b4185['where']=_[_0x60ae('0x42')](_0x2b4185[_0x60ae('0x3f')],{'$or':_[_0x60ae('0x30')](_0xc85a1d,function(_0x285ab6){if(_0x285ab6['type']!==_0x60ae('0x43')){var _0x1ba01f={};_0x1ba01f[_0x285ab6[_0x60ae('0x2d')]]={'$like':'%'+_0x4055b5[_0x60ae('0x35')][_0x60ae('0x41')]+'%'};return _0x1ba01f;}})});}_0x2b4185=_['merge']({},_0x2b4185,_0x4055b5['options']);var _0x5224af={'where':_0x2b4185['where']};return db[_0x60ae('0x31')]['count'](_0x5224af)['then'](function(_0x18afd0){_0x554c9b[_0x60ae('0x22')]=_0x18afd0;if(_0x4055b5[_0x60ae('0x35')][_0x60ae('0x44')]){_0x2b4185['include']=[{'all':!![]}];}return db[_0x60ae('0x31')][_0x60ae('0x45')](_0x2b4185);})[_0x60ae('0x28')](function(_0x385745){_0x554c9b[_0x60ae('0x46')]=_0x385745;return _0x554c9b;})['then'](respondWithFilteredResult(_0x44a451,_0x2b4185))[_0x60ae('0x47')](handleError(_0x44a451,null));};exports['show']=function(_0x40cd9e,_0x54db04){var _0x1a1507={'raw':![],'where':{'id':_0x40cd9e[_0x60ae('0x48')]['id']}},_0x3a1a7c={};_0x3a1a7c[_0x60ae('0x34')]=_[_0x60ae('0x36')](db[_0x60ae('0x31')][_0x60ae('0x32')]);_0x3a1a7c['query']=_[_0x60ae('0x36')](_0x40cd9e['query']);_0x3a1a7c[_0x60ae('0x37')]=_[_0x60ae('0x38')](_0x3a1a7c[_0x60ae('0x34')],_0x3a1a7c['query']);_0x1a1507['attributes']=_[_0x60ae('0x38')](_0x3a1a7c['model'],qs[_0x60ae('0x39')](_0x40cd9e[_0x60ae('0x35')][_0x60ae('0x39')]));_0x1a1507['attributes']=_0x1a1507['attributes']['length']?_0x1a1507[_0x60ae('0x3a')]:_0x3a1a7c[_0x60ae('0x34')];if(_0x40cd9e[_0x60ae('0x35')][_0x60ae('0x44')]){_0x1a1507[_0x60ae('0x49')]=[{'all':!![]}];}_0x1a1507=_[_0x60ae('0x42')]({},_0x1a1507,_0x40cd9e[_0x60ae('0x4a')]);return db[_0x60ae('0x31')][_0x60ae('0x4b')](_0x1a1507)['then'](handleEntityNotFound(_0x54db04,null))[_0x60ae('0x28')](respondWithResult(_0x54db04,null))['catch'](handleError(_0x54db04,null));};exports[_0x60ae('0x4c')]=function(_0x17fef7,_0x375463){return db['CmList'][_0x60ae('0x4c')](_0x17fef7[_0x60ae('0x4d')],{})['then'](function(_0x24592a){var _0x2798ae=_0x17fef7[_0x60ae('0x4e')][_0x60ae('0x2a')]({'plain':!![]});if(!_0x2798ae)throw new Error(_0x60ae('0x4f'));if(_0x2798ae[_0x60ae('0x50')]==='user'){var _0x4ce4b9=_0x24592a['get']({'plain':!![]});var _0x417a95='Lists';return db[_0x60ae('0x51')][_0x60ae('0x4b')]({'where':{'name':_0x417a95,'userProfileId':_0x2798ae[_0x60ae('0x52')]},'raw':!![]})[_0x60ae('0x28')](function(_0x266716){if(_0x266716&&_0x266716[_0x60ae('0x53')]===0x0){return db[_0x60ae('0x54')][_0x60ae('0x4c')]({'name':_0x4ce4b9[_0x60ae('0x2d')],'resourceId':_0x4ce4b9['id'],'type':_0x266716[_0x60ae('0x2d')],'sectionId':_0x266716['id']},{})['then'](function(){return _0x24592a;});}else{return _0x24592a;}})[_0x60ae('0x47')](function(_0x4df8f1){logger[_0x60ae('0x2c')](_0x60ae('0x55'),_0x4df8f1);throw _0x4df8f1;});}return _0x24592a;})[_0x60ae('0x28')](respondWithResult(_0x375463,0xc9))[_0x60ae('0x47')](handleError(_0x375463,null));};exports[_0x60ae('0x56')]=function(_0x3a5854,_0x161280){if(_0x3a5854[_0x60ae('0x4d')]['id']){delete _0x3a5854[_0x60ae('0x4d')]['id'];}return db[_0x60ae('0x31')][_0x60ae('0x4b')]({'where':{'id':_0x3a5854[_0x60ae('0x48')]['id']}})[_0x60ae('0x28')](handleEntityNotFound(_0x161280,null))[_0x60ae('0x28')](saveUpdates(_0x3a5854[_0x60ae('0x4d')],null))['then'](respondWithResult(_0x161280,null))[_0x60ae('0x47')](handleError(_0x161280,null));};exports[_0x60ae('0x29')]=function(_0x5ecec,_0x1006e2){return db[_0x60ae('0x31')][_0x60ae('0x4b')]({'where':{'id':_0x5ecec[_0x60ae('0x48')]['id']}})[_0x60ae('0x28')](handleEntityNotFound(_0x1006e2,null))[_0x60ae('0x28')](removeEntity(_0x1006e2,null))[_0x60ae('0x47')](handleError(_0x1006e2,null));};exports['describe']=function(_0x37b392,_0x3b8940){return db[_0x60ae('0x31')][_0x60ae('0x57')]()[_0x60ae('0x28')](respondWithResult(_0x3b8940,null))[_0x60ae('0x47')](handleError(_0x3b8940,null));};exports['addDisposition']=function(_0x5653b7,_0x2413c0,_0x2c066f){if(_0x5653b7[_0x60ae('0x4d')]['id']){delete _0x5653b7[_0x60ae('0x4d')]['id'];}return db[_0x60ae('0x31')][_0x60ae('0x4b')]({'where':{'id':_0x5653b7['params']['id']}})[_0x60ae('0x28')](handleEntityNotFound(_0x2413c0,null))[_0x60ae('0x28')](function(_0x25fcbf){if(_0x25fcbf){_0x5653b7[_0x60ae('0x4d')][_0x60ae('0x58')]=_0x25fcbf['id'];return db[_0x60ae('0x59')][_0x60ae('0x4c')](_0x5653b7[_0x60ae('0x4d')]);}})[_0x60ae('0x28')](respondWithResult(_0x2413c0,null))[_0x60ae('0x47')](handleError(_0x2413c0,null));};exports['getDispositions']=function(_0x3e60c0,_0xe2f3c3,_0x577bae){var _0xd28d95={'raw':![],'where':{}};var _0x12144c={};var _0x46738e={'count':0x0,'rows':[]};return db['CmList'][_0x60ae('0x5a')]({'where':{'id':_0x3e60c0[_0x60ae('0x48')]['id']}})[_0x60ae('0x28')](handleEntityNotFound(_0xe2f3c3,null))[_0x60ae('0x28')](function(_0x1181c2){if(_0x1181c2){_0x12144c[_0x60ae('0x34')]=_[_0x60ae('0x36')](db[_0x60ae('0x59')][_0x60ae('0x32')]);_0x12144c['query']=_[_0x60ae('0x36')](_0x3e60c0['query']);_0x12144c[_0x60ae('0x37')]=_[_0x60ae('0x38')](_0x12144c['model'],_0x12144c[_0x60ae('0x35')]);_0xd28d95[_0x60ae('0x3a')]=_[_0x60ae('0x38')](_0x12144c['model'],qs[_0x60ae('0x39')](_0x3e60c0[_0x60ae('0x35')]['fields']));_0xd28d95['attributes']=_0xd28d95['attributes'][_0x60ae('0x3b')]?_0xd28d95[_0x60ae('0x3a')]:_0x12144c[_0x60ae('0x34')];if(!_0x3e60c0['query'][_0x60ae('0x3c')]('nolimit')){_0xd28d95[_0x60ae('0x21')]=qs[_0x60ae('0x21')](_0x3e60c0[_0x60ae('0x35')][_0x60ae('0x21')]);_0xd28d95[_0x60ae('0x23')]=qs[_0x60ae('0x23')](_0x3e60c0[_0x60ae('0x35')]['offset']);}_0xd28d95[_0x60ae('0x3d')]=qs[_0x60ae('0x3e')](_0x3e60c0['query'][_0x60ae('0x3e')]);_0xd28d95['where']=qs['filters'](_[_0x60ae('0x40')](_0x3e60c0[_0x60ae('0x35')],_0x12144c[_0x60ae('0x37')]));_0xd28d95[_0x60ae('0x3f')][_0x60ae('0x58')]=_0x1181c2['id'];if(_0x3e60c0[_0x60ae('0x35')]['filter']){_0xd28d95['where']=_[_0x60ae('0x42')](_0xd28d95[_0x60ae('0x3f')],{'$or':_['map'](_0xd28d95[_0x60ae('0x3a')],function(_0x486489){var _0x1ddd91={};_0x1ddd91[_0x486489]={'$like':'%'+_0x3e60c0['query'][_0x60ae('0x41')]+'%'};return _0x1ddd91;})});}_0xd28d95=_['merge']({},_0xd28d95,_0x3e60c0[_0x60ae('0x4a')]);return db['Disposition'][_0x60ae('0x22')]({'where':_0xd28d95[_0x60ae('0x3f')]})[_0x60ae('0x28')](function(_0x4b1a06){_0x46738e[_0x60ae('0x22')]=_0x4b1a06;if(_0x3e60c0[_0x60ae('0x35')]['includeAll']){_0xd28d95[_0x60ae('0x49')]=[{'all':!![]}];}return db['Disposition']['findAll'](_0xd28d95);})[_0x60ae('0x28')](function(_0x7350f6){_0x46738e['rows']=_0x7350f6;return _0x46738e;});}})[_0x60ae('0x28')](respondWithFilteredResult(_0xe2f3c3,_0xd28d95))[_0x60ae('0x47')](handleError(_0xe2f3c3,null));};exports[_0x60ae('0x5b')]=function(_0x10c117,_0x4c9a74,_0x2fb86e){return db[_0x60ae('0x31')][_0x60ae('0x4b')]({'where':{'id':_0x10c117[_0x60ae('0x48')]['id']}})['then'](handleEntityNotFound(_0x4c9a74,null))['then'](function(_0x20818d){if(_0x20818d){return _0x20818d[_0x60ae('0x5b')](_0x10c117[_0x60ae('0x35')]['ids']);}})[_0x60ae('0x28')](respondWithStatusCode(_0x4c9a74,null))[_0x60ae('0x47')](handleError(_0x4c9a74,null));};exports[_0x60ae('0x5c')]=function(_0x30c224,_0x403c9d,_0x3f47d8){return db[_0x60ae('0x31')][_0x60ae('0x4b')]({'where':{'id':_0x30c224[_0x60ae('0x48')]['id']}})['then'](handleEntityNotFound(_0x403c9d,null))[_0x60ae('0x28')](function(_0x2c9458){if(_0x2c9458){var _0x493a97=[];var _0x494511={'success':[],'errors':[]};return db[_0x60ae('0x5d')]['describe']()[_0x60ae('0x28')](function(_0x189c43){if(_0x30c224[_0x60ae('0x4d')][_0x60ae('0x5e')]&&_['isArray'](_0x30c224['body'][_0x60ae('0x5e')])){if(_0x30c224['body'][_0x60ae('0x5e')][_0x60ae('0x3b')]){_0x30c224[_0x60ae('0x4d')][_0x60ae('0x5e')]=_0x30c224['body'][_0x60ae('0x5e')][_0x60ae('0x5f')](';')+';';}else{_0x30c224[_0x60ae('0x4d')]['tags']=null;}}else{_0x30c224['body']['tags']=null;}if(_0x30c224[_0x60ae('0x4d')]&&_[_0x60ae('0x60')](_0x30c224['body'])){for(var _0x33375d=0x0;_0x33375d<_0x30c224[_0x60ae('0x4d')]['length'];_0x33375d+=0x1){_0x30c224[_0x60ae('0x4d')][_0x33375d][_0x60ae('0x58')]=_0x30c224['params']['id'];_0x493a97[_0x60ae('0x61')](_0x30c224[_0x60ae('0x4d')][_0x33375d]);}return BPromise[_0x60ae('0x62')](_0x493a97,function(_0x533bfe){return db[_0x60ae('0x5d')][_0x60ae('0x4c')](_[_0x60ae('0x63')](_0x533bfe,[_0x60ae('0x64'),'id'])||{},{'fields':_[_0x60ae('0x36')](_0x189c43),'raw':!![]})[_0x60ae('0x28')](function(_0x487300){_0x494511[_0x60ae('0x65')][_0x60ae('0x61')](_0x487300['dataValues']);})[_0x60ae('0x47')](function(_0x533e3c){_0x494511[_0x60ae('0x66')][_0x60ae('0x61')]({'data':_0x533bfe,'error':_0x533e3c[_0x60ae('0x67')]});});})[_0x60ae('0x28')](function(_0x38c00f){return _0x494511;})[_0x60ae('0x47')](function(_0x1d263b){return _0x1d263b;});}else{_0x403c9d[_0x60ae('0x1d')](0x190)[_0x60ae('0x1f')]({'message':_0x60ae('0x68')});}});}})[_0x60ae('0x28')](respondWithResult(_0x403c9d,null))[_0x60ae('0x47')](handleError(_0x403c9d,null));};exports[_0x60ae('0x69')]=function(_0x376552,_0x5c986f,_0x19e880){var _0x44cea9;return db[_0x60ae('0x31')][_0x60ae('0x4b')]({'where':{'id':_0x376552['params']['id']},'include':[{'model':db[_0x60ae('0x6a')],'as':_0x60ae('0x6b')}]})[_0x60ae('0x28')](handleEntityNotFound(_0x5c986f,null))['then'](function(_0x193947){if(_0x193947){_0x44cea9=_0x193947;return db[_0x60ae('0x5d')][_0x60ae('0x32')];}})['then'](function(_0x2c3bb6){if(_0x2c3bb6){var _0x83e775={};var _0xe857c0={};_0xe857c0[_0x60ae('0x34')]=_[_0x60ae('0x6c')](_[_0x60ae('0x36')](_0x2c3bb6),_[_0x60ae('0x30')](_0x44cea9[_0x60ae('0x6b')],function(_0x3ce879){return util[_0x60ae('0x6d')](_0x60ae('0x6e'),_0x3ce879['id']);}));_0xe857c0[_0x60ae('0x35')]=_['keys'](_0x376552[_0x60ae('0x35')]);_0xe857c0['filters']=_['intersection'](_0xe857c0[_0x60ae('0x34')],_0xe857c0[_0x60ae('0x35')]);_0x83e775[_0x60ae('0x3a')]=_[_0x60ae('0x38')](_0xe857c0['model'],qs[_0x60ae('0x39')](_0x376552['query']['fields']));_0x83e775[_0x60ae('0x3a')]=_0x83e775[_0x60ae('0x3a')][_0x60ae('0x3b')]?_0x83e775[_0x60ae('0x3a')]:_0xe857c0[_0x60ae('0x34')];if(!_0x376552[_0x60ae('0x35')][_0x60ae('0x3c')](_0x60ae('0x6f'))){_0x83e775[_0x60ae('0x21')]=qs[_0x60ae('0x21')](_0x376552[_0x60ae('0x35')][_0x60ae('0x21')]);_0x83e775[_0x60ae('0x23')]=qs[_0x60ae('0x23')](_0x376552[_0x60ae('0x35')][_0x60ae('0x23')]);}_0x83e775[_0x60ae('0x3d')]=qs[_0x60ae('0x3e')](_0x376552[_0x60ae('0x35')][_0x60ae('0x3e')]);_0x83e775['where']=qs[_0x60ae('0x37')](_['pick'](_0x376552[_0x60ae('0x35')],_0xe857c0['filters']));_0x83e775[_0x60ae('0x70')]=!![];if(_0x376552[_0x60ae('0x35')][_0x60ae('0x41')]){_0x83e775[_0x60ae('0x3f')]=_[_0x60ae('0x42')](_0x83e775['where'],{'$or':_[_0x60ae('0x30')](_0x83e775[_0x60ae('0x3a')],function(_0x2f4324){var _0x40374c={};_0x40374c[_0x2f4324]={'$like':'%'+_0x376552[_0x60ae('0x35')][_0x60ae('0x41')]+'%'};return _0x40374c;})});}_0x83e775=_[_0x60ae('0x42')]({},_0x83e775,_0x376552['options']);return _0x44cea9['getContacts'](_0x83e775);}})[_0x60ae('0x28')](respondWithResult(_0x5c986f,null))[_0x60ae('0x47')](handleError(_0x5c986f,null));};exports['getContactsCsv']=function(_0x46b916,_0x19629f,_0x500fa0){var _0x351298;var _0x29f987;var _0x5bc246;var _0x3f90d8=_0x46b916['params']['id'];csv_results=[];return db[_0x60ae('0x71')]['findAll']({'attributes':['id',_0x60ae('0x2d')],'raw':!![],'order':['OrderBy']})[_0x60ae('0x28')](function(_0x29665d){_0x351298=_0x29665d;var _0x5c5931=_[_0x60ae('0x36')](db[_0x60ae('0x5d')][_0x60ae('0x32')]);return db[_0x60ae('0x6a')][_0x60ae('0x45')]({'raw':!![],'attributes':['id',_0x60ae('0x72')]})[_0x60ae('0x28')](function(_0x2088a9){_0x29f987=_0x2088a9;var _0x1b2510=squel[_0x60ae('0x73')]()[_0x60ae('0x39')](_0x5c5931)['from']('cm_contacts','c')['where'](_0x60ae('0x74'),_0x3f90d8)[_0x60ae('0x3f')]('c.deletedAt\x20is\x20null')['distinct']();for(var _0x4a542f=0x0;_0x4a542f<_0x29f987[_0x60ae('0x3b')];_0x4a542f++){_0x1b2510[_0x60ae('0x75')](_0x60ae('0x76')+_0x29f987[_0x4a542f]['id'],_0x60ae('0x77')+_0x29f987[_0x4a542f]['alias']);}for(var _0x4a542f=0x0;_0x4a542f<_0x351298['length'];_0x4a542f++){_0x1b2510[_0x60ae('0x75')](squel[_0x60ae('0x73')]()[_0x60ae('0x75')](_0x60ae('0x78'))[_0x60ae('0x79')](_0x60ae('0x7a'))[_0x60ae('0x3f')](_0x60ae('0x7b'),_0x351298[_0x4a542f]['id'])[_0x60ae('0x3f')](_0x60ae('0x7c')),_0x60ae('0x7d')+_0x351298[_0x4a542f][_0x60ae('0x2d')]);_0x1b2510[_0x60ae('0x75')](squel['select']()[_0x60ae('0x75')](_0x60ae('0x7e'))[_0x60ae('0x79')](_0x60ae('0x7a'))[_0x60ae('0x3f')](_0x60ae('0x7b'),_0x351298[_0x4a542f]['id'])[_0x60ae('0x3f')]('CmContactId\x20=\x20c.id'),'description_additionalPhone_'+_0x351298[_0x4a542f][_0x60ae('0x2d')]);}var _0x43547d=[];_0x43547d[_0x60ae('0x61')](_0x1b2510['toString']());BPromise[_0x60ae('0x62')](_0x43547d,handleQuery)[_0x60ae('0x28')](function(_0x41fe50){handleQuery(_0x1b2510['toString']());var _0x1f7624=csv_results[0x0];if(!_[_0x60ae('0x7f')](_0x1f7624)){var _0x1c250d=toCsv(_0x1f7624);var _0x3490c8=Date['now']();fs[_0x60ae('0x80')](util[_0x60ae('0x6d')](_0x60ae('0x81'),_0x3f90d8,_0x3490c8),_0x1c250d);_0x19629f['setHeader'](_0x60ae('0x82'),_0x60ae('0x83')+util[_0x60ae('0x6d')](_0x60ae('0x84'),_0x3f90d8,_0x3490c8));_0x19629f[_0x60ae('0x85')]('Content-type',_0x60ae('0x86'));return _0x19629f[_0x60ae('0x87')](util['format'](_0x60ae('0x81'),_0x3f90d8,_0x3490c8));}else{return _0x19629f[_0x60ae('0x1c')](0xcc);}});});});};exports['addCustomField']=function(_0x569753,_0x2e64e2,_0x900230){var _0x25b35b;delete _0x569753[_0x60ae('0x4d')]['id'];return db[_0x60ae('0x31')]['findOne']({'where':{'id':_0x569753['params']['id']}})[_0x60ae('0x28')](handleEntityNotFound(_0x2e64e2,null))[_0x60ae('0x28')](function(_0x186ab3){if(_0x186ab3){return db['sequelize']['transaction'](function(_0x2dd591){return db[_0x60ae('0x6a')][_0x60ae('0x4c')](_0x569753[_0x60ae('0x4d')],{'transaction':_0x2dd591})[_0x60ae('0x28')](function(_0x5d80f3){_0x25b35b=_0x5d80f3;return _0x186ab3['addCustomFields'](_0x5d80f3,{'transaction':_0x2dd591});})['then'](function(){var _0x43dfdc={'type':db[_0x60ae('0x88')]['TEXT'],'transaction':_0x2dd591};switch(_0x569753[_0x60ae('0x4d')][_0x60ae('0x33')]){case _0x60ae('0x89'):_0x43dfdc[_0x60ae('0x33')]=db['Sequelize']['TEXT'];break;case _0x60ae('0x8a'):_0x43dfdc[_0x60ae('0x33')]=db[_0x60ae('0x88')]['INTEGER'];break;case _0x60ae('0x8b'):_0x43dfdc[_0x60ae('0x33')]=db[_0x60ae('0x88')][_0x60ae('0x8c')];_0x43dfdc[_0x60ae('0x8d')]=![];break;default:}return db[_0x60ae('0x8e')][_0x60ae('0x8f')]['addColumn'](_0x60ae('0x90'),util['format'](_0x60ae('0x91'),_0x25b35b['id']),_0x43dfdc);})['then'](function(){return _0x25b35b;});});}})[_0x60ae('0x28')](respondWithResult(_0x2e64e2,null))['catch'](handleError(_0x2e64e2,null));};exports[_0x60ae('0x92')]=function(_0x38e098,_0x5e0fda,_0x1016c6){var _0x495bc8={};var _0x26e8d8={};var _0xad4ff3;var _0x1f6afd;return db[_0x60ae('0x31')][_0x60ae('0x5a')]({'where':{'id':_0x38e098[_0x60ae('0x48')]['id']}})['then'](handleEntityNotFound(_0x5e0fda,null))[_0x60ae('0x28')](function(_0x1045c9){if(_0x1045c9){_0xad4ff3=_0x1045c9;_0x26e8d8[_0x60ae('0x34')]=_[_0x60ae('0x36')](db[_0x60ae('0x6a')][_0x60ae('0x32')]);_0x26e8d8[_0x60ae('0x35')]=_['keys'](_0x38e098[_0x60ae('0x35')]);_0x26e8d8[_0x60ae('0x37')]=_[_0x60ae('0x38')](_0x26e8d8[_0x60ae('0x34')],_0x26e8d8['query']);_0x495bc8[_0x60ae('0x3a')]=_[_0x60ae('0x38')](_0x26e8d8[_0x60ae('0x34')],qs[_0x60ae('0x39')](_0x38e098[_0x60ae('0x35')][_0x60ae('0x39')]));_0x495bc8[_0x60ae('0x3a')]=_0x495bc8['attributes']['length']?_0x495bc8[_0x60ae('0x3a')]:_0x26e8d8[_0x60ae('0x34')];_0x495bc8[_0x60ae('0x3d')]=qs['sort'](_0x38e098[_0x60ae('0x35')][_0x60ae('0x3e')]);_0x495bc8['where']=qs[_0x60ae('0x37')](_[_0x60ae('0x40')](_0x38e098[_0x60ae('0x35')],_0x26e8d8['filters']));_0x495bc8[_0x60ae('0x3f')]=_[_0x60ae('0x42')](_0x495bc8[_0x60ae('0x3f')],{'$or':[{'ListId':_0x1045c9['id']},{'ListId':null}]});if(_0x38e098[_0x60ae('0x35')]['filter']){_0x495bc8['where']=_[_0x60ae('0x42')](_0x495bc8[_0x60ae('0x3f')],{'$or':_[_0x60ae('0x30')](_0x495bc8[_0x60ae('0x3a')],function(_0x2da469){var _0x4e33aa={};_0x4e33aa[_0x2da469]={'$like':'%'+_0x38e098[_0x60ae('0x35')][_0x60ae('0x41')]+'%'};return _0x4e33aa;})});}_0x495bc8=_['merge']({},_0x495bc8,_0x38e098['options']);return db[_0x60ae('0x6a')][_0x60ae('0x93')](_0x495bc8);}})['then'](respondWithResult(_0x5e0fda,null))[_0x60ae('0x47')](handleError(_0x5e0fda,null));};exports[_0x60ae('0x94')]=function(_0x4f4112,_0x4985e5){return db[_0x60ae('0x6a')][_0x60ae('0x93')]({'where':{'ListId':null}})['then'](handleEntityNotFound(_0x4985e5,null))[_0x60ae('0x28')](function(_0x51e8af){return _0x51e8af;})[_0x60ae('0x28')](respondWithResult(_0x4985e5,null))[_0x60ae('0x47')](handleError(_0x4985e5,null));};exports[_0x60ae('0x95')]=function(_0x2391bb,_0x3b9c42,_0x4f19c7){return db[_0x60ae('0x31')][_0x60ae('0x4b')]({'where':{'id':_0x2391bb[_0x60ae('0x48')]['id']}})['then'](handleEntityNotFound(_0x3b9c42,null))[_0x60ae('0x28')](function(_0xfce5f){if(_0xfce5f){return _0xfce5f[_0x60ae('0x95')](_0x2391bb[_0x60ae('0x4d')][_0x60ae('0x64')],_[_0x60ae('0x63')](_0x2391bb[_0x60ae('0x4d')],[_0x60ae('0x64'),'id'])||{})[_0x60ae('0x96')](function(_0xa03200){for(var _0xd123bd=0x0;_0xd123bd<_0x2391bb[_0x60ae('0x4d')][_0x60ae('0x64')][_0x60ae('0x3b')];_0xd123bd+=0x1){socket['emit'](_0x60ae('0x97'),{'UserId':Number(_0x2391bb['body'][_0x60ae('0x64')][_0xd123bd]),'CmListId':Number(_0x2391bb[_0x60ae('0x48')]['id'])});}return _0xa03200;});}})['then'](respondWithResult(_0x3b9c42,null))[_0x60ae('0x47')](handleError(_0x3b9c42,null));};exports[_0x60ae('0x98')]=function(_0x3f6020,_0x133fc4,_0x3bf39a){return db[_0x60ae('0x31')][_0x60ae('0x4b')]({'where':{'id':_0x3f6020[_0x60ae('0x48')]['id']}})[_0x60ae('0x28')](handleEntityNotFound(_0x133fc4,null))[_0x60ae('0x28')](function(_0x453cf3){if(_0x453cf3){return _0x453cf3['removeAgents'](_0x3f6020[_0x60ae('0x35')][_0x60ae('0x64')])[_0x60ae('0x28')](function(){if(_[_0x60ae('0x60')](_0x3f6020[_0x60ae('0x35')][_0x60ae('0x64')])){for(var _0x491284=0x0;_0x491284<_0x3f6020[_0x60ae('0x35')]['ids']['length'];_0x491284+=0x1){socket[_0x60ae('0x99')](_0x60ae('0x9a'),{'UserId':Number(_0x3f6020['query']['ids'][_0x491284]),'CmListId':Number(_0x3f6020[_0x60ae('0x48')]['id'])});}}else{socket['emit'](_0x60ae('0x9a'),{'UserId':Number(_0x3f6020[_0x60ae('0x35')][_0x60ae('0x64')]),'CmListId':Number(_0x3f6020[_0x60ae('0x48')]['id'])});}});}})[_0x60ae('0x28')](respondWithStatusCode(_0x133fc4,null))[_0x60ae('0x47')](handleError(_0x133fc4,null));};exports[_0x60ae('0x9b')]=function(_0x1fdec7,_0x49ebac,_0x42880f){var _0x2ca858={};var _0x2d6a83={};var _0x43f272;var _0x388a00;return db[_0x60ae('0x31')][_0x60ae('0x5a')]({'where':{'id':_0x1fdec7['params']['id']}})[_0x60ae('0x28')](handleEntityNotFound(_0x49ebac,null))['then'](function(_0x35fc42){if(_0x35fc42){_0x43f272=_0x35fc42;_0x2d6a83['model']=_[_0x60ae('0x36')](db[_0x60ae('0x9c')][_0x60ae('0x32')]);_0x2d6a83[_0x60ae('0x35')]=_[_0x60ae('0x36')](_0x1fdec7[_0x60ae('0x35')]);_0x2d6a83[_0x60ae('0x37')]=_[_0x60ae('0x38')](_0x2d6a83['model'],_0x2d6a83[_0x60ae('0x35')]);_0x2ca858[_0x60ae('0x3a')]=_[_0x60ae('0x38')](_0x2d6a83[_0x60ae('0x34')],qs[_0x60ae('0x39')](_0x1fdec7[_0x60ae('0x35')][_0x60ae('0x39')]));_0x2ca858[_0x60ae('0x3a')]=_0x2ca858[_0x60ae('0x3a')][_0x60ae('0x3b')]?_0x2ca858['attributes']:_0x2d6a83[_0x60ae('0x34')];_0x2ca858['order']=qs[_0x60ae('0x3e')](_0x1fdec7[_0x60ae('0x35')][_0x60ae('0x3e')]);_0x2ca858[_0x60ae('0x3f')]=qs[_0x60ae('0x37')](_[_0x60ae('0x40')](_0x1fdec7[_0x60ae('0x35')],_0x2d6a83['filters']));if(_0x1fdec7['query'][_0x60ae('0x41')]){_0x2ca858['where']=_[_0x60ae('0x42')](_0x2ca858[_0x60ae('0x3f')],{'$or':_[_0x60ae('0x30')](_0x2ca858['attributes'],function(_0x3b9270){var _0xe3d087={};_0xe3d087[_0x3b9270]={'$like':'%'+_0x1fdec7[_0x60ae('0x35')][_0x60ae('0x41')]+'%'};return _0xe3d087;})});}_0x2ca858=_[_0x60ae('0x42')]({},_0x2ca858,_0x1fdec7['options']);return _0x43f272[_0x60ae('0x9b')](_0x2ca858);}})[_0x60ae('0x28')](function(_0x591f8e){if(_0x591f8e){_0x388a00=_0x591f8e[_0x60ae('0x3b')];if(!_0x1fdec7[_0x60ae('0x35')]['hasOwnProperty']('nolimit')){_0x2ca858['limit']=qs[_0x60ae('0x21')](_0x1fdec7[_0x60ae('0x35')][_0x60ae('0x21')]);_0x2ca858['offset']=qs['offset'](_0x1fdec7[_0x60ae('0x35')][_0x60ae('0x23')]);}return _0x43f272[_0x60ae('0x9b')](_0x2ca858);}})[_0x60ae('0x28')](function(_0xd0380f){if(_0xd0380f){return _0xd0380f?{'count':_0x388a00,'rows':_0xd0380f}:null;}})['then'](respondWithResult(_0x49ebac,null))[_0x60ae('0x47')](handleError(_0x49ebac,null));};function handleQuery(_0x53bcaa){logger[_0x60ae('0x9d')](_0x53bcaa);return db['sequelize'][_0x60ae('0x35')](_0x53bcaa)[_0x60ae('0x96')](function(_0x31de91){csv_results[_0x60ae('0x61')](_0x31de91);})[_0x60ae('0x47')](function(_0xdfe2da){logger['error'](_0xdfe2da[_0x60ae('0x67')]);});}