9f8a1d2ea3c6517a3d40bfe0cd1a908d60d71dd5
[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 _0x074b=['localhost','socket.io-emitter','register','end','status','json','offset','limit','undefined','count','reject','update','then','destroy','get','Lists','UserProfileResource','sendStatus','error','name','send','index','CmList','rawAttributes','key','model','map','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','where','pick','filter','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','merge','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','params','describe','addDisposition','Disposition','getDispositions','findOne','sort','removeDispositions','ids','addContacts','CmContact','tags','isArray','join','ListId','push','each','omit','dataValues','errors','message','Malformed\x20request\x20syntax','CustomFields','concat','format','cf_%d','raw','getContacts','getContactsCsv','CmCustomField','isEmpty','now','writeFileSync','/tmp/list_%d_%s.csv','setHeader','attachment;\x20filename=','list_%d_%s.csv','Content-type','download','addCustomField','sequelize','transaction','addCustomFields','Sequelize','TEXT','number','INTEGER','switch','BOOLEAN','addColumn','cf_%s','addAgents','removeAgents','emit','userCmList:remove','getAgents','User','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults'];(function(_0x19e2a4,_0x3fc6cb){var _0x4d15a8=function(_0x319490){while(--_0x319490){_0x19e2a4['push'](_0x19e2a4['shift']());}};_0x4d15a8(++_0x3fc6cb);}(_0x074b,0x195));var _0xb074=function(_0x5da25d,_0xcad1d1){_0x5da25d=_0x5da25d-0x0;var _0x4e64ef=_0x074b[_0x5da25d];return _0x4e64ef;};'use strict';var emlformat=require(_0xb074('0x0'));var rimraf=require(_0xb074('0x1'));var zipdir=require(_0xb074('0x2'));var jsonpatch=require(_0xb074('0x3'));var rp=require(_0xb074('0x4'));var moment=require(_0xb074('0x5'));var BPromise=require(_0xb074('0x6'));var Mustache=require(_0xb074('0x7'));var util=require(_0xb074('0x8'));var path=require(_0xb074('0x9'));var sox=require('sox');var csv=require(_0xb074('0xa'));var ejs=require(_0xb074('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb074('0xc'));var squel=require(_0xb074('0xd'));var crypto=require(_0xb074('0xe'));var jsforce=require(_0xb074('0xf'));var deskjs=require(_0xb074('0x10'));var toCsv=require('to-csv');var querystring=require(_0xb074('0x11'));var Papa=require(_0xb074('0x12'));var Redis=require(_0xb074('0x13'));var authService=require(_0xb074('0x14'));var qs=require(_0xb074('0x15'));var as=require(_0xb074('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb074('0x17'))('api');var utils=require(_0xb074('0x18'));var config=require(_0xb074('0x19'));var licenseUtil=require(_0xb074('0x1a'));var db=require(_0xb074('0x1b'))['db'];config[_0xb074('0x1c')]=_[_0xb074('0x1d')](config[_0xb074('0x1c')],{'host':_0xb074('0x1e'),'port':0x18eb});var socket=require(_0xb074('0x1f'))(new Redis(config[_0xb074('0x1c')]));require('./cmList.socket')[_0xb074('0x20')](socket);function respondWithStatusCode(_0xaaa8b9,_0x53dc73){_0x53dc73=_0x53dc73||0xcc;return function(_0x79cc9f){if(_0x79cc9f){return _0xaaa8b9['sendStatus'](_0x53dc73);}return _0xaaa8b9['status'](_0x53dc73)[_0xb074('0x21')]();};}function respondWithResult(_0x5c55ce,_0xf847f0){_0xf847f0=_0xf847f0||0xc8;return function(_0x274db5){if(_0x274db5){return _0x5c55ce[_0xb074('0x22')](_0xf847f0)[_0xb074('0x23')](_0x274db5);}};}function respondWithFilteredResult(_0x25058a,_0x53b0aa){return function(_0x3222ce){if(_0x3222ce){var _0x259843=typeof _0x53b0aa[_0xb074('0x24')]==='undefined'&&typeof _0x53b0aa[_0xb074('0x25')]===_0xb074('0x26');var _0x433a47=_0x3222ce['count'];var _0x197744=_0x259843?0x0:_0x53b0aa[_0xb074('0x24')];var _0x33d13f=_0x259843?_0x3222ce[_0xb074('0x27')]:_0x53b0aa[_0xb074('0x24')]+_0x53b0aa['limit'];var _0x4eacd1;if(_0x33d13f>=_0x433a47){_0x33d13f=_0x433a47;_0x4eacd1=0xc8;}else{_0x4eacd1=0xce;}_0x25058a['status'](_0x4eacd1);return _0x25058a['set']('Content-Range',_0x197744+'-'+_0x33d13f+'/'+_0x433a47)[_0xb074('0x23')](_0x3222ce);}return null;};}function patchUpdates(_0x540a1e){return function(_0x370e6b){try{jsonpatch['apply'](_0x370e6b,_0x540a1e,!![]);}catch(_0x50840d){return BPromise[_0xb074('0x28')](_0x50840d);}return _0x370e6b['save']();};}function saveUpdates(_0x55bd2d,_0x8f88ac){return function(_0x2d7944){if(_0x2d7944){return _0x2d7944[_0xb074('0x29')](_0x55bd2d)[_0xb074('0x2a')](function(_0x17cd29){return _0x17cd29;});}return null;};}function removeEntity(_0x81a34c,_0x5d8338){return function(_0x16fd10){if(_0x16fd10){return _0x16fd10[_0xb074('0x2b')]()[_0xb074('0x2a')](function(){var _0x3ba3b9=_0x16fd10[_0xb074('0x2c')]({'plain':!![]});var _0x5319f1=_0xb074('0x2d');return db[_0xb074('0x2e')][_0xb074('0x2b')]({'where':{'type':_0x5319f1,'resourceId':_0x3ba3b9['id']}})['then'](function(){return _0x16fd10;});})['then'](function(){_0x81a34c[_0xb074('0x22')](0xcc)[_0xb074('0x21')]();});}};}function handleEntityNotFound(_0x9d97ba,_0x3d5b64){return function(_0x51697c){if(!_0x51697c){_0x9d97ba[_0xb074('0x2f')](0x194);}return _0x51697c;};}function handleError(_0x2296c6,_0x11d0e1){_0x11d0e1=_0x11d0e1||0x1f4;return function(_0x5e94f7){logger[_0xb074('0x30')](_0x5e94f7['stack']);if(_0x5e94f7['name']){delete _0x5e94f7[_0xb074('0x31')];}_0x2296c6[_0xb074('0x22')](_0x11d0e1)[_0xb074('0x32')](_0x5e94f7);};}exports[_0xb074('0x33')]=function(_0x142164,_0x44a964){var _0x1c62c3={},_0x437d42={},_0x27bb3b={'count':0x0,'rows':[]};var _0x2ffc74=_['map'](db[_0xb074('0x34')][_0xb074('0x35')],function(_0x31ac54){return{'name':_0x31ac54['fieldName'],'type':_0x31ac54['type'][_0xb074('0x36')]};});_0x437d42[_0xb074('0x37')]=_[_0xb074('0x38')](_0x2ffc74,_0xb074('0x31'));_0x437d42[_0xb074('0x39')]=_[_0xb074('0x3a')](_0x142164[_0xb074('0x39')]);_0x437d42[_0xb074('0x3b')]=_['intersection'](_0x437d42[_0xb074('0x37')],_0x437d42[_0xb074('0x39')]);_0x1c62c3[_0xb074('0x3c')]=_[_0xb074('0x3d')](_0x437d42[_0xb074('0x37')],qs[_0xb074('0x3e')](_0x142164['query'][_0xb074('0x3e')]));_0x1c62c3['attributes']=_0x1c62c3['attributes'][_0xb074('0x3f')]?_0x1c62c3['attributes']:_0x437d42[_0xb074('0x37')];if(!_0x142164[_0xb074('0x39')][_0xb074('0x40')](_0xb074('0x41'))){_0x1c62c3[_0xb074('0x25')]=qs[_0xb074('0x25')](_0x142164[_0xb074('0x39')][_0xb074('0x25')]);_0x1c62c3[_0xb074('0x24')]=qs[_0xb074('0x24')](_0x142164[_0xb074('0x39')][_0xb074('0x24')]);}_0x1c62c3[_0xb074('0x42')]=qs['sort'](_0x142164['query']['sort']);_0x1c62c3[_0xb074('0x43')]=qs['filters'](_[_0xb074('0x44')](_0x142164[_0xb074('0x39')],_0x437d42['filters']),_0x2ffc74);if(_0x142164['query'][_0xb074('0x45')]){_0x1c62c3[_0xb074('0x43')]=_['merge'](_0x1c62c3[_0xb074('0x43')],{'$or':_[_0xb074('0x38')](_0x2ffc74,function(_0x26e7ab){if(_0x26e7ab[_0xb074('0x46')]!==_0xb074('0x47')){var _0x57fb43={};_0x57fb43[_0x26e7ab[_0xb074('0x31')]]={'$like':'%'+_0x142164['query'][_0xb074('0x45')]+'%'};return _0x57fb43;}})});}_0x1c62c3=_['merge']({},_0x1c62c3,_0x142164[_0xb074('0x48')]);var _0x1f615b={'where':_0x1c62c3[_0xb074('0x43')]};return db[_0xb074('0x34')][_0xb074('0x27')](_0x1f615b)['then'](function(_0x34e24c){_0x27bb3b[_0xb074('0x27')]=_0x34e24c;if(_0x142164['query'][_0xb074('0x49')]){_0x1c62c3[_0xb074('0x4a')]=[{'all':!![]}];}return db['CmList'][_0xb074('0x4b')](_0x1c62c3);})[_0xb074('0x2a')](function(_0x46c3f0){_0x27bb3b[_0xb074('0x4c')]=_0x46c3f0;return _0x27bb3b;})[_0xb074('0x2a')](respondWithFilteredResult(_0x44a964,_0x1c62c3))[_0xb074('0x4d')](handleError(_0x44a964,null));};exports[_0xb074('0x4e')]=function(_0x2d82ba,_0x17bb2a){var _0x59eca0={'raw':![],'where':{'id':_0x2d82ba['params']['id']}},_0xee7713={};_0xee7713[_0xb074('0x37')]=_[_0xb074('0x3a')](db[_0xb074('0x34')][_0xb074('0x35')]);_0xee7713[_0xb074('0x39')]=_[_0xb074('0x3a')](_0x2d82ba[_0xb074('0x39')]);_0xee7713[_0xb074('0x3b')]=_[_0xb074('0x3d')](_0xee7713[_0xb074('0x37')],_0xee7713['query']);_0x59eca0['attributes']=_[_0xb074('0x3d')](_0xee7713[_0xb074('0x37')],qs[_0xb074('0x3e')](_0x2d82ba[_0xb074('0x39')][_0xb074('0x3e')]));_0x59eca0['attributes']=_0x59eca0[_0xb074('0x3c')][_0xb074('0x3f')]?_0x59eca0['attributes']:_0xee7713['model'];if(_0x2d82ba[_0xb074('0x39')][_0xb074('0x49')]){_0x59eca0['include']=[{'all':!![]}];}_0x59eca0=_[_0xb074('0x4f')]({},_0x59eca0,_0x2d82ba[_0xb074('0x48')]);return db['CmList'][_0xb074('0x50')](_0x59eca0)[_0xb074('0x2a')](handleEntityNotFound(_0x17bb2a,null))[_0xb074('0x2a')](respondWithResult(_0x17bb2a,null))['catch'](handleError(_0x17bb2a,null));};exports[_0xb074('0x51')]=function(_0x178bca,_0x157d93){return db[_0xb074('0x34')][_0xb074('0x51')](_0x178bca[_0xb074('0x52')],{})[_0xb074('0x2a')](function(_0x5537ee){var _0x4607ed=_0x178bca[_0xb074('0x53')][_0xb074('0x2c')]({'plain':!![]});if(!_0x4607ed)throw new Error(_0xb074('0x54'));if(_0x4607ed['role']===_0xb074('0x53')){var _0x113086=_0x5537ee[_0xb074('0x2c')]({'plain':!![]});var _0x14b599='Lists';return db[_0xb074('0x55')][_0xb074('0x50')]({'where':{'name':_0x14b599,'userProfileId':_0x4607ed[_0xb074('0x56')]},'raw':!![]})[_0xb074('0x2a')](function(_0x338f3c){if(_0x338f3c&&_0x338f3c[_0xb074('0x57')]===0x0){return db[_0xb074('0x2e')][_0xb074('0x51')]({'name':_0x113086[_0xb074('0x31')],'resourceId':_0x113086['id'],'type':_0x338f3c['name'],'sectionId':_0x338f3c['id']},{})[_0xb074('0x2a')](function(){return _0x5537ee;});}else{return _0x5537ee;}})[_0xb074('0x4d')](function(_0x143e3e){logger[_0xb074('0x30')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x143e3e);throw _0x143e3e;});}return _0x5537ee;})['then'](respondWithResult(_0x157d93,0xc9))['catch'](handleError(_0x157d93,null));};exports[_0xb074('0x29')]=function(_0xb9ce2f,_0x3ced61){if(_0xb9ce2f[_0xb074('0x52')]['id']){delete _0xb9ce2f[_0xb074('0x52')]['id'];}return db[_0xb074('0x34')][_0xb074('0x50')]({'where':{'id':_0xb9ce2f[_0xb074('0x58')]['id']}})['then'](handleEntityNotFound(_0x3ced61,null))[_0xb074('0x2a')](saveUpdates(_0xb9ce2f[_0xb074('0x52')],null))[_0xb074('0x2a')](respondWithResult(_0x3ced61,null))[_0xb074('0x4d')](handleError(_0x3ced61,null));};exports[_0xb074('0x2b')]=function(_0x12e420,_0x3beca9){return db[_0xb074('0x34')][_0xb074('0x50')]({'where':{'id':_0x12e420[_0xb074('0x58')]['id']}})[_0xb074('0x2a')](handleEntityNotFound(_0x3beca9,null))[_0xb074('0x2a')](removeEntity(_0x3beca9,null))[_0xb074('0x4d')](handleError(_0x3beca9,null));};exports['describe']=function(_0x45e64f,_0x2a134a){return db['CmList'][_0xb074('0x59')]()[_0xb074('0x2a')](respondWithResult(_0x2a134a,null))[_0xb074('0x4d')](handleError(_0x2a134a,null));};exports[_0xb074('0x5a')]=function(_0x27e95b,_0x3b24c3,_0x5395d2){if(_0x27e95b[_0xb074('0x52')]['id']){delete _0x27e95b[_0xb074('0x52')]['id'];}return db[_0xb074('0x34')]['find']({'where':{'id':_0x27e95b[_0xb074('0x58')]['id']}})[_0xb074('0x2a')](handleEntityNotFound(_0x3b24c3,null))[_0xb074('0x2a')](function(_0x422b1b){if(_0x422b1b){_0x27e95b[_0xb074('0x52')]['ListId']=_0x422b1b['id'];return db[_0xb074('0x5b')][_0xb074('0x51')](_0x27e95b['body']);}})[_0xb074('0x2a')](respondWithResult(_0x3b24c3,null))['catch'](handleError(_0x3b24c3,null));};exports[_0xb074('0x5c')]=function(_0x2183cd,_0x4e01d0,_0x3ebe4a){var _0x631678={'raw':![],'where':{}};var _0x28c724={};var _0x5d9e0a={'count':0x0,'rows':[]};return db['CmList'][_0xb074('0x5d')]({'where':{'id':_0x2183cd[_0xb074('0x58')]['id']}})[_0xb074('0x2a')](handleEntityNotFound(_0x4e01d0,null))[_0xb074('0x2a')](function(_0x1b0cca){if(_0x1b0cca){_0x28c724[_0xb074('0x37')]=_['keys'](db[_0xb074('0x5b')][_0xb074('0x35')]);_0x28c724[_0xb074('0x39')]=_[_0xb074('0x3a')](_0x2183cd[_0xb074('0x39')]);_0x28c724[_0xb074('0x3b')]=_[_0xb074('0x3d')](_0x28c724[_0xb074('0x37')],_0x28c724[_0xb074('0x39')]);_0x631678['attributes']=_[_0xb074('0x3d')](_0x28c724[_0xb074('0x37')],qs['fields'](_0x2183cd['query'][_0xb074('0x3e')]));_0x631678[_0xb074('0x3c')]=_0x631678[_0xb074('0x3c')][_0xb074('0x3f')]?_0x631678[_0xb074('0x3c')]:_0x28c724[_0xb074('0x37')];if(!_0x2183cd[_0xb074('0x39')][_0xb074('0x40')]('nolimit')){_0x631678[_0xb074('0x25')]=qs['limit'](_0x2183cd[_0xb074('0x39')][_0xb074('0x25')]);_0x631678[_0xb074('0x24')]=qs[_0xb074('0x24')](_0x2183cd[_0xb074('0x39')][_0xb074('0x24')]);}_0x631678['order']=qs[_0xb074('0x5e')](_0x2183cd[_0xb074('0x39')]['sort']);_0x631678[_0xb074('0x43')]=qs[_0xb074('0x3b')](_[_0xb074('0x44')](_0x2183cd[_0xb074('0x39')],_0x28c724[_0xb074('0x3b')]));_0x631678[_0xb074('0x43')]['ListId']=_0x1b0cca['id'];if(_0x2183cd[_0xb074('0x39')][_0xb074('0x45')]){_0x631678[_0xb074('0x43')]=_[_0xb074('0x4f')](_0x631678[_0xb074('0x43')],{'$or':_[_0xb074('0x38')](_0x631678['attributes'],function(_0x4df17c){var _0x4dcc45={};_0x4dcc45[_0x4df17c]={'$like':'%'+_0x2183cd['query'][_0xb074('0x45')]+'%'};return _0x4dcc45;})});}_0x631678=_[_0xb074('0x4f')]({},_0x631678,_0x2183cd[_0xb074('0x48')]);return db[_0xb074('0x5b')][_0xb074('0x27')]({'where':_0x631678['where']})[_0xb074('0x2a')](function(_0x374504){_0x5d9e0a[_0xb074('0x27')]=_0x374504;if(_0x2183cd['query'][_0xb074('0x49')]){_0x631678[_0xb074('0x4a')]=[{'all':!![]}];}return db[_0xb074('0x5b')][_0xb074('0x4b')](_0x631678);})[_0xb074('0x2a')](function(_0x339a7c){_0x5d9e0a[_0xb074('0x4c')]=_0x339a7c;return _0x5d9e0a;});}})[_0xb074('0x2a')](respondWithFilteredResult(_0x4e01d0,_0x631678))[_0xb074('0x4d')](handleError(_0x4e01d0,null));};exports['removeDispositions']=function(_0x2c76a9,_0x2b94ef,_0x1980dc){return db[_0xb074('0x34')][_0xb074('0x50')]({'where':{'id':_0x2c76a9[_0xb074('0x58')]['id']}})[_0xb074('0x2a')](handleEntityNotFound(_0x2b94ef,null))['then'](function(_0x287f60){if(_0x287f60){return _0x287f60[_0xb074('0x5f')](_0x2c76a9['query'][_0xb074('0x60')]);}})[_0xb074('0x2a')](respondWithStatusCode(_0x2b94ef,null))[_0xb074('0x4d')](handleError(_0x2b94ef,null));};exports[_0xb074('0x61')]=function(_0x18171c,_0x15764b,_0x47b70c){return db['CmList'][_0xb074('0x50')]({'where':{'id':_0x18171c['params']['id']}})['then'](handleEntityNotFound(_0x15764b,null))['then'](function(_0x538d0b){if(_0x538d0b){var _0x498e34=[];var _0x294a03={'success':[],'errors':[]};return db[_0xb074('0x62')]['describe']()[_0xb074('0x2a')](function(_0x1c58d8){if(_0x18171c['body'][_0xb074('0x63')]&&_[_0xb074('0x64')](_0x18171c[_0xb074('0x52')]['tags'])){if(_0x18171c[_0xb074('0x52')][_0xb074('0x63')]['length']){_0x18171c['body'][_0xb074('0x63')]=_0x18171c[_0xb074('0x52')][_0xb074('0x63')][_0xb074('0x65')](';')+';';}else{_0x18171c[_0xb074('0x52')][_0xb074('0x63')]=null;}}else{_0x18171c[_0xb074('0x52')]['tags']=null;}if(_0x18171c[_0xb074('0x52')]&&_['isArray'](_0x18171c[_0xb074('0x52')])){for(var _0x52c9b3=0x0;_0x52c9b3<_0x18171c[_0xb074('0x52')][_0xb074('0x3f')];_0x52c9b3+=0x1){_0x18171c[_0xb074('0x52')][_0x52c9b3][_0xb074('0x66')]=_0x18171c[_0xb074('0x58')]['id'];_0x498e34[_0xb074('0x67')](_0x18171c['body'][_0x52c9b3]);}return BPromise[_0xb074('0x68')](_0x498e34,function(_0x23758a){return db['CmContact']['create'](_[_0xb074('0x69')](_0x23758a,[_0xb074('0x60'),'id'])||{},{'fields':_[_0xb074('0x3a')](_0x1c58d8),'raw':!![]})[_0xb074('0x2a')](function(_0x3b8a7b){_0x294a03['success'][_0xb074('0x67')](_0x3b8a7b[_0xb074('0x6a')]);})['catch'](function(_0x48579c){_0x294a03[_0xb074('0x6b')][_0xb074('0x67')]({'data':_0x23758a,'error':_0x48579c[_0xb074('0x6c')]});});})[_0xb074('0x2a')](function(_0xbdd685){return _0x294a03;})[_0xb074('0x4d')](function(_0x48cc2c){return _0x48cc2c;});}else{_0x15764b['status'](0x190)[_0xb074('0x23')]({'message':_0xb074('0x6d')});}});}})[_0xb074('0x2a')](respondWithResult(_0x15764b,null))[_0xb074('0x4d')](handleError(_0x15764b,null));};exports['getContacts']=function(_0x3c55ee,_0x2e2995,_0x2aca43){var _0x59139f;return db[_0xb074('0x34')][_0xb074('0x50')]({'where':{'id':_0x3c55ee[_0xb074('0x58')]['id']},'include':[{'model':db['CmCustomField'],'as':_0xb074('0x6e')}]})['then'](handleEntityNotFound(_0x2e2995,null))['then'](function(_0x52bcfb){if(_0x52bcfb){_0x59139f=_0x52bcfb;return db[_0xb074('0x62')][_0xb074('0x35')];}})['then'](function(_0x4f2e3a){if(_0x4f2e3a){var _0x5333ee={};var _0x301fc2={};_0x301fc2[_0xb074('0x37')]=_[_0xb074('0x6f')](_[_0xb074('0x3a')](_0x4f2e3a),_[_0xb074('0x38')](_0x59139f['CustomFields'],function(_0x2d2b52){return util[_0xb074('0x70')](_0xb074('0x71'),_0x2d2b52['id']);}));_0x301fc2[_0xb074('0x39')]=_[_0xb074('0x3a')](_0x3c55ee[_0xb074('0x39')]);_0x301fc2[_0xb074('0x3b')]=_['intersection'](_0x301fc2[_0xb074('0x37')],_0x301fc2[_0xb074('0x39')]);_0x5333ee[_0xb074('0x3c')]=_[_0xb074('0x3d')](_0x301fc2[_0xb074('0x37')],qs[_0xb074('0x3e')](_0x3c55ee['query'][_0xb074('0x3e')]));_0x5333ee[_0xb074('0x3c')]=_0x5333ee[_0xb074('0x3c')][_0xb074('0x3f')]?_0x5333ee[_0xb074('0x3c')]:_0x301fc2[_0xb074('0x37')];if(!_0x3c55ee[_0xb074('0x39')][_0xb074('0x40')](_0xb074('0x41'))){_0x5333ee['limit']=qs['limit'](_0x3c55ee[_0xb074('0x39')][_0xb074('0x25')]);_0x5333ee['offset']=qs['offset'](_0x3c55ee['query'][_0xb074('0x24')]);}_0x5333ee[_0xb074('0x42')]=qs[_0xb074('0x5e')](_0x3c55ee[_0xb074('0x39')][_0xb074('0x5e')]);_0x5333ee[_0xb074('0x43')]=qs[_0xb074('0x3b')](_[_0xb074('0x44')](_0x3c55ee[_0xb074('0x39')],_0x301fc2[_0xb074('0x3b')]));_0x5333ee[_0xb074('0x72')]=!![];if(_0x3c55ee[_0xb074('0x39')][_0xb074('0x45')]){_0x5333ee['where']=_[_0xb074('0x4f')](_0x5333ee[_0xb074('0x43')],{'$or':_['map'](_0x5333ee['attributes'],function(_0x33c0e9){var _0x5a8007={};_0x5a8007[_0x33c0e9]={'$like':'%'+_0x3c55ee[_0xb074('0x39')][_0xb074('0x45')]+'%'};return _0x5a8007;})});}_0x5333ee=_[_0xb074('0x4f')]({},_0x5333ee,_0x3c55ee['options']);return _0x59139f[_0xb074('0x73')](_0x5333ee);}})[_0xb074('0x2a')](respondWithResult(_0x2e2995,null))[_0xb074('0x4d')](handleError(_0x2e2995,null));};exports[_0xb074('0x74')]=function(_0x2600b7,_0x552b4b,_0x371d70){var _0x4b79b1;return db['CmList'][_0xb074('0x50')]({'where':{'id':_0x2600b7[_0xb074('0x58')]['id']},'include':[{'model':db[_0xb074('0x75')],'as':_0xb074('0x6e')}]})['then'](handleEntityNotFound(_0x552b4b,null))[_0xb074('0x2a')](function(_0x20e67a){if(_0x20e67a){_0x4b79b1=_0x20e67a;return db['CmContact'][_0xb074('0x35')];}})[_0xb074('0x2a')](function(_0x2c3f03){if(_0x2c3f03){var _0x3cf71e={};var _0x4dd0f3={};_0x4dd0f3['model']=_[_0xb074('0x6f')](_['keys'](_0x2c3f03),_[_0xb074('0x38')](_0x4b79b1['CustomFields'],function(_0x56b48a){return util[_0xb074('0x70')](_0xb074('0x71'),_0x56b48a['id']);}));_0x4dd0f3[_0xb074('0x39')]=_[_0xb074('0x3a')](_0x2600b7[_0xb074('0x39')]);_0x4dd0f3[_0xb074('0x3b')]=_[_0xb074('0x3d')](_0x4dd0f3['model'],_0x4dd0f3[_0xb074('0x39')]);_0x3cf71e['attributes']=_[_0xb074('0x3d')](_0x4dd0f3['model'],qs[_0xb074('0x3e')](_0x2600b7[_0xb074('0x39')][_0xb074('0x3e')]));_0x3cf71e[_0xb074('0x3c')]=_0x3cf71e[_0xb074('0x3c')][_0xb074('0x3f')]?_0x3cf71e[_0xb074('0x3c')]:_0x4dd0f3[_0xb074('0x37')];if(!_0x2600b7['query'][_0xb074('0x40')]('nolimit')){_0x3cf71e[_0xb074('0x25')]=qs[_0xb074('0x25')](_0x2600b7[_0xb074('0x39')][_0xb074('0x25')]);_0x3cf71e['offset']=qs['offset'](_0x2600b7[_0xb074('0x39')]['offset']);}_0x3cf71e[_0xb074('0x42')]=qs[_0xb074('0x5e')](_0x2600b7[_0xb074('0x39')][_0xb074('0x5e')]);_0x3cf71e['where']=qs[_0xb074('0x3b')](_[_0xb074('0x44')](_0x2600b7[_0xb074('0x39')],_0x4dd0f3[_0xb074('0x3b')]));_0x3cf71e[_0xb074('0x72')]=!![];if(_0x2600b7['query'][_0xb074('0x45')]){_0x3cf71e[_0xb074('0x43')]=_[_0xb074('0x4f')](_0x3cf71e[_0xb074('0x43')],{'$or':_['map'](_0x3cf71e[_0xb074('0x3c')],function(_0x7bb5b8){var _0x3a8426={};_0x3a8426[_0x7bb5b8]={'$like':'%'+_0x2600b7[_0xb074('0x39')]['filter']+'%'};return _0x3a8426;})});}_0x3cf71e=_[_0xb074('0x4f')]({},_0x3cf71e,_0x2600b7['options']);return _0x4b79b1[_0xb074('0x73')](_0x3cf71e);}})[_0xb074('0x2a')](function(_0xfca5c3){if(!_[_0xb074('0x76')](_0xfca5c3)){var _0x3b4fc9=toCsv(_0xfca5c3);var _0x33aab3=Date[_0xb074('0x77')]();fs[_0xb074('0x78')](util[_0xb074('0x70')](_0xb074('0x79'),_0x4b79b1['id'],_0x33aab3),_0x3b4fc9);_0x552b4b[_0xb074('0x7a')]('Content-disposition',_0xb074('0x7b')+util[_0xb074('0x70')](_0xb074('0x7c'),_0x4b79b1['id'],_0x33aab3));_0x552b4b[_0xb074('0x7a')](_0xb074('0x7d'),'text/csv');return _0x552b4b[_0xb074('0x7e')](util[_0xb074('0x70')](_0xb074('0x79'),_0x4b79b1['id'],_0x33aab3));}else{return _0x552b4b[_0xb074('0x2f')](0xcc);}})[_0xb074('0x4d')](handleError(_0x552b4b,null));};exports[_0xb074('0x7f')]=function(_0x3defb0,_0x45f6d8,_0x40ff35){var _0x3e252e;delete _0x3defb0[_0xb074('0x52')]['id'];return db[_0xb074('0x34')][_0xb074('0x5d')]({'where':{'id':_0x3defb0[_0xb074('0x58')]['id']}})[_0xb074('0x2a')](handleEntityNotFound(_0x45f6d8,null))[_0xb074('0x2a')](function(_0x5f53b4){if(_0x5f53b4){return db[_0xb074('0x80')][_0xb074('0x81')](function(_0x5bc8c2){return db[_0xb074('0x75')][_0xb074('0x51')](_0x3defb0[_0xb074('0x52')],{'transaction':_0x5bc8c2})['then'](function(_0x7163d9){_0x3e252e=_0x7163d9;return _0x5f53b4[_0xb074('0x82')](_0x7163d9,{'transaction':_0x5bc8c2});})[_0xb074('0x2a')](function(){var _0x56f702={'type':db[_0xb074('0x83')][_0xb074('0x84')],'transaction':_0x5bc8c2};switch(_0x3defb0['body']['type']){case'text':_0x56f702[_0xb074('0x46')]=db[_0xb074('0x83')][_0xb074('0x84')];break;case _0xb074('0x85'):_0x56f702[_0xb074('0x46')]=db['Sequelize'][_0xb074('0x86')];break;case _0xb074('0x87'):_0x56f702['type']=db[_0xb074('0x83')][_0xb074('0x88')];_0x56f702['defaultValue']=![];break;default:}return db['sequelize']['queryInterface'][_0xb074('0x89')]('cm_contacts',util['format'](_0xb074('0x8a'),_0x3e252e['id']),_0x56f702);})[_0xb074('0x2a')](function(){return _0x3e252e;});});}})['then'](respondWithResult(_0x45f6d8,null))[_0xb074('0x4d')](handleError(_0x45f6d8,null));};exports['getCustomFields']=function(_0x45ce00,_0x2d5e30,_0x423c37){var _0x4688c0={};var _0x392941={};var _0x5896ab;var _0x1a236b;return db[_0xb074('0x34')]['findOne']({'where':{'id':_0x45ce00[_0xb074('0x58')]['id']}})[_0xb074('0x2a')](handleEntityNotFound(_0x2d5e30,null))[_0xb074('0x2a')](function(_0x54d4df){if(_0x54d4df){_0x5896ab=_0x54d4df;_0x392941[_0xb074('0x37')]=_['keys'](db[_0xb074('0x75')]['rawAttributes']);_0x392941['query']=_[_0xb074('0x3a')](_0x45ce00[_0xb074('0x39')]);_0x392941['filters']=_[_0xb074('0x3d')](_0x392941['model'],_0x392941[_0xb074('0x39')]);_0x4688c0[_0xb074('0x3c')]=_['intersection'](_0x392941['model'],qs[_0xb074('0x3e')](_0x45ce00[_0xb074('0x39')][_0xb074('0x3e')]));_0x4688c0[_0xb074('0x3c')]=_0x4688c0[_0xb074('0x3c')][_0xb074('0x3f')]?_0x4688c0[_0xb074('0x3c')]:_0x392941[_0xb074('0x37')];_0x4688c0['order']=qs[_0xb074('0x5e')](_0x45ce00[_0xb074('0x39')]['sort']);_0x4688c0[_0xb074('0x43')]=qs[_0xb074('0x3b')](_['pick'](_0x45ce00[_0xb074('0x39')],_0x392941[_0xb074('0x3b')]));_0x4688c0[_0xb074('0x43')]=_[_0xb074('0x4f')](_0x4688c0[_0xb074('0x43')],{'$or':[{'ListId':_0x54d4df['id']},{'ListId':null}]});if(_0x45ce00[_0xb074('0x39')]['filter']){_0x4688c0[_0xb074('0x43')]=_[_0xb074('0x4f')](_0x4688c0['where'],{'$or':_[_0xb074('0x38')](_0x4688c0[_0xb074('0x3c')],function(_0x107cdd){var _0x3e9949={};_0x3e9949[_0x107cdd]={'$like':'%'+_0x45ce00[_0xb074('0x39')]['filter']+'%'};return _0x3e9949;})});}_0x4688c0=_[_0xb074('0x4f')]({},_0x4688c0,_0x45ce00[_0xb074('0x48')]);return db[_0xb074('0x75')]['findAndCountAll'](_0x4688c0);}})[_0xb074('0x2a')](respondWithResult(_0x2d5e30,null))[_0xb074('0x4d')](handleError(_0x2d5e30,null));};exports[_0xb074('0x8b')]=function(_0x2cc29b,_0x564f30,_0x1f80eb){return db['CmList'][_0xb074('0x50')]({'where':{'id':_0x2cc29b[_0xb074('0x58')]['id']}})[_0xb074('0x2a')](handleEntityNotFound(_0x564f30,null))['then'](function(_0x12baed){if(_0x12baed){return _0x12baed['addAgents'](_0x2cc29b[_0xb074('0x52')][_0xb074('0x60')],_['omit'](_0x2cc29b[_0xb074('0x52')],[_0xb074('0x60'),'id'])||{})['spread'](function(_0x30ab59){for(var _0x2afe50=0x0;_0x2afe50<_0x2cc29b[_0xb074('0x52')]['ids'][_0xb074('0x3f')];_0x2afe50+=0x1){socket['emit']('userCmList:save',{'UserId':Number(_0x2cc29b['body'][_0xb074('0x60')][_0x2afe50]),'CmListId':Number(_0x2cc29b[_0xb074('0x58')]['id'])});}return _0x30ab59;});}})[_0xb074('0x2a')](respondWithResult(_0x564f30,null))[_0xb074('0x4d')](handleError(_0x564f30,null));};exports['removeAgents']=function(_0xe34ed7,_0x4efe1b,_0x2a73b8){return db[_0xb074('0x34')][_0xb074('0x50')]({'where':{'id':_0xe34ed7[_0xb074('0x58')]['id']}})[_0xb074('0x2a')](handleEntityNotFound(_0x4efe1b,null))[_0xb074('0x2a')](function(_0xcc2f7b){if(_0xcc2f7b){return _0xcc2f7b[_0xb074('0x8c')](_0xe34ed7[_0xb074('0x39')]['ids'])[_0xb074('0x2a')](function(){if(_[_0xb074('0x64')](_0xe34ed7[_0xb074('0x39')]['ids'])){for(var _0x53cb49=0x0;_0x53cb49<_0xe34ed7['query']['ids'][_0xb074('0x3f')];_0x53cb49+=0x1){socket[_0xb074('0x8d')](_0xb074('0x8e'),{'UserId':Number(_0xe34ed7[_0xb074('0x39')][_0xb074('0x60')][_0x53cb49]),'CmListId':Number(_0xe34ed7[_0xb074('0x58')]['id'])});}}else{socket[_0xb074('0x8d')]('userCmList:remove',{'UserId':Number(_0xe34ed7[_0xb074('0x39')][_0xb074('0x60')]),'CmListId':Number(_0xe34ed7['params']['id'])});}});}})[_0xb074('0x2a')](respondWithStatusCode(_0x4efe1b,null))['catch'](handleError(_0x4efe1b,null));};exports[_0xb074('0x8f')]=function(_0x141aed,_0x3f7af5,_0xf4f13e){var _0x2195a5={};var _0x55f3d7={};var _0x4172b9;var _0x407aba;return db[_0xb074('0x34')][_0xb074('0x5d')]({'where':{'id':_0x141aed['params']['id']}})[_0xb074('0x2a')](handleEntityNotFound(_0x3f7af5,null))['then'](function(_0x25727e){if(_0x25727e){_0x4172b9=_0x25727e;_0x55f3d7[_0xb074('0x37')]=_[_0xb074('0x3a')](db[_0xb074('0x90')][_0xb074('0x35')]);_0x55f3d7['query']=_[_0xb074('0x3a')](_0x141aed['query']);_0x55f3d7[_0xb074('0x3b')]=_['intersection'](_0x55f3d7[_0xb074('0x37')],_0x55f3d7[_0xb074('0x39')]);_0x2195a5[_0xb074('0x3c')]=_['intersection'](_0x55f3d7[_0xb074('0x37')],qs['fields'](_0x141aed[_0xb074('0x39')][_0xb074('0x3e')]));_0x2195a5[_0xb074('0x3c')]=_0x2195a5['attributes']['length']?_0x2195a5[_0xb074('0x3c')]:_0x55f3d7[_0xb074('0x37')];_0x2195a5[_0xb074('0x42')]=qs[_0xb074('0x5e')](_0x141aed['query'][_0xb074('0x5e')]);_0x2195a5[_0xb074('0x43')]=qs[_0xb074('0x3b')](_[_0xb074('0x44')](_0x141aed[_0xb074('0x39')],_0x55f3d7[_0xb074('0x3b')]));if(_0x141aed[_0xb074('0x39')]['filter']){_0x2195a5[_0xb074('0x43')]=_[_0xb074('0x4f')](_0x2195a5[_0xb074('0x43')],{'$or':_[_0xb074('0x38')](_0x2195a5[_0xb074('0x3c')],function(_0x17155e){var _0x4fe122={};_0x4fe122[_0x17155e]={'$like':'%'+_0x141aed[_0xb074('0x39')][_0xb074('0x45')]+'%'};return _0x4fe122;})});}_0x2195a5=_[_0xb074('0x4f')]({},_0x2195a5,_0x141aed['options']);return _0x4172b9[_0xb074('0x8f')](_0x2195a5);}})[_0xb074('0x2a')](function(_0x5797a9){if(_0x5797a9){_0x407aba=_0x5797a9[_0xb074('0x3f')];if(!_0x141aed['query'][_0xb074('0x40')](_0xb074('0x41'))){_0x2195a5[_0xb074('0x25')]=qs[_0xb074('0x25')](_0x141aed[_0xb074('0x39')][_0xb074('0x25')]);_0x2195a5[_0xb074('0x24')]=qs[_0xb074('0x24')](_0x141aed['query'][_0xb074('0x24')]);}return _0x4172b9[_0xb074('0x8f')](_0x2195a5);}})[_0xb074('0x2a')](function(_0xdf4aa5){if(_0xdf4aa5){return _0xdf4aa5?{'count':_0x407aba,'rows':_0xdf4aa5}:null;}})['then'](respondWithResult(_0x3f7af5,null))[_0xb074('0x4d')](handleError(_0x3f7af5,null));};