3f9b42ade2b83a04a838435b657c0c6ab02b6055
[motion2.git] / server / api / voicePrefix / voicePrefix.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 _0x1b4e=['../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','end','status','json','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','get','VoicePrefixes','error','stack','name','send','index','map','VoicePrefix','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','where','VIRTUAL','options','includeAll','include','findAll','show','params','keys','filtears','find','catch','describe','create','transaction','body','user','role','UserProfileSection','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','from-sip','exten','app','system','description','Voice\x20Prefix\x20Extension','priority','NoOp','Voice\x20Prefix','VoiceExtension','VoiceExtensionId','prefix','push','Set','CDR(prefix)=','callerIdAll','${EXTEN:','charAt','sequelize','ids','omit','spread','emit','removeAgents','isArray','userVoicePrefix:remove','getAgents','findOne','User','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x1ec3fe,_0x2bbc3d){var _0x23d25b=function(_0x32c1cf){while(--_0x32c1cf){_0x1ec3fe['push'](_0x1ec3fe['shift']());}};_0x23d25b(++_0x2bbc3d);}(_0x1b4e,0x158));var _0xe1b4=function(_0x38d818,_0x257e09){_0x38d818=_0x38d818-0x0;var _0x4194e5=_0x1b4e[_0x38d818];return _0x4194e5;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xe1b4('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe1b4('0x1'));var rp=require(_0xe1b4('0x2'));var moment=require(_0xe1b4('0x3'));var BPromise=require(_0xe1b4('0x4'));var Mustache=require(_0xe1b4('0x5'));var util=require('util');var path=require('path');var sox=require(_0xe1b4('0x6'));var csv=require(_0xe1b4('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xe1b4('0x8'));var squel=require(_0xe1b4('0x9'));var crypto=require(_0xe1b4('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xe1b4('0xb'));var toCsv=require(_0xe1b4('0x7'));var querystring=require(_0xe1b4('0xc'));var Papa=require('papaparse');var Redis=require(_0xe1b4('0xd'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xe1b4('0xe'));var hardwareService=require(_0xe1b4('0xf'));var logger=require(_0xe1b4('0x10'))(_0xe1b4('0x11'));var utils=require(_0xe1b4('0x12'));var config=require(_0xe1b4('0x13'));var licenseUtil=require(_0xe1b4('0x14'));var db=require(_0xe1b4('0x15'))['db'];config[_0xe1b4('0x16')]=_[_0xe1b4('0x17')](config['redis'],{'host':_0xe1b4('0x18'),'port':0x18eb});var socket=require(_0xe1b4('0x19'))(new Redis(config['redis']));require('./voicePrefix.socket')[_0xe1b4('0x1a')](socket);function respondWithStatusCode(_0x43c9ab,_0x1dffda){_0x1dffda=_0x1dffda||0xcc;return function(_0x22aaeb){if(_0x22aaeb){return _0x43c9ab[_0xe1b4('0x1b')](_0x1dffda);}return _0x43c9ab['status'](_0x1dffda)[_0xe1b4('0x1c')]();};}function respondWithResult(_0x55e4d0,_0x4f41d3){_0x4f41d3=_0x4f41d3||0xc8;return function(_0x2a9f52){if(_0x2a9f52){return _0x55e4d0[_0xe1b4('0x1d')](_0x4f41d3)[_0xe1b4('0x1e')](_0x2a9f52);}};}function respondWithFilteredResult(_0x2c72b2,_0x1fc795){return function(_0xce0724){if(_0xce0724){var _0x4b2b74=_0xce0724[_0xe1b4('0x1f')],_0x282b33=_0x1fc795['offset'],_0xa3866a=_0x1fc795[_0xe1b4('0x20')]+_0x1fc795[_0xe1b4('0x21')],_0xa68491;if(_0xa3866a>=_0x4b2b74){_0xa3866a=_0x4b2b74;_0xa68491=0xc8;}else{_0xa68491=0xce;}_0x2c72b2['status'](_0xa68491);return _0x2c72b2['set'](_0xe1b4('0x22'),_0x282b33+'-'+_0xa3866a+'/'+_0x4b2b74)[_0xe1b4('0x1e')](_0xce0724);}return null;};}function patchUpdates(_0x777859){return function(_0x4ada5f){try{jsonpatch[_0xe1b4('0x23')](_0x4ada5f,_0x777859,!![]);}catch(_0x50ae84){return BPromise[_0xe1b4('0x24')](_0x50ae84);}return _0x4ada5f[_0xe1b4('0x25')]();};}function saveUpdates(_0x552c4c,_0x17e81c){return function(_0x2b36fa){if(_0x2b36fa){return _0x2b36fa[_0xe1b4('0x26')](_0x552c4c)[_0xe1b4('0x27')](function(_0x54c7ec){return _0x54c7ec;});}return null;};}function removeEntity(_0x5d0ae7,_0x20407b){return function(_0xf4d55a){if(_0xf4d55a){return _0xf4d55a[_0xe1b4('0x28')]()[_0xe1b4('0x27')](function(){var _0x42c9f0=_0xf4d55a[_0xe1b4('0x29')]({'plain':!![]});var _0x4ab3b8=_0xe1b4('0x2a');return db['UserProfileResource'][_0xe1b4('0x28')]({'where':{'type':_0x4ab3b8,'resourceId':_0x42c9f0['id']}})['then'](function(){return _0xf4d55a;});})[_0xe1b4('0x27')](function(){_0x5d0ae7[_0xe1b4('0x1d')](0xcc)[_0xe1b4('0x1c')]();});}};}function handleEntityNotFound(_0x20440c,_0x556483){return function(_0x13359b){if(!_0x13359b){_0x20440c[_0xe1b4('0x1b')](0x194);}return _0x13359b;};}function handleError(_0x16a849,_0x2b138d){_0x2b138d=_0x2b138d||0x1f4;return function(_0x20f61b){logger[_0xe1b4('0x2b')](_0x20f61b[_0xe1b4('0x2c')]);if(_0x20f61b[_0xe1b4('0x2d')]){delete _0x20f61b[_0xe1b4('0x2d')];}_0x16a849['status'](_0x2b138d)[_0xe1b4('0x2e')](_0x20f61b);};}exports[_0xe1b4('0x2f')]=function(_0x5dd2cd,_0x733729){var _0x60e161={},_0xc4c603={},_0x253589={'count':0x0,'rows':[]};var _0xca84a9=_[_0xe1b4('0x30')](db[_0xe1b4('0x31')][_0xe1b4('0x32')],function(_0x4ea5c4){return{'name':_0x4ea5c4[_0xe1b4('0x33')],'type':_0x4ea5c4[_0xe1b4('0x34')][_0xe1b4('0x35')]};});_0xc4c603[_0xe1b4('0x36')]=_['map'](_0xca84a9,_0xe1b4('0x2d'));_0xc4c603[_0xe1b4('0x37')]=_['keys'](_0x5dd2cd[_0xe1b4('0x37')]);_0xc4c603[_0xe1b4('0x38')]=_[_0xe1b4('0x39')](_0xc4c603[_0xe1b4('0x36')],_0xc4c603[_0xe1b4('0x37')]);_0x60e161[_0xe1b4('0x3a')]=_[_0xe1b4('0x39')](_0xc4c603[_0xe1b4('0x36')],qs[_0xe1b4('0x3b')](_0x5dd2cd[_0xe1b4('0x37')][_0xe1b4('0x3b')]));_0x60e161[_0xe1b4('0x3a')]=_0x60e161['attributes'][_0xe1b4('0x3c')]?_0x60e161[_0xe1b4('0x3a')]:_0xc4c603[_0xe1b4('0x36')];if(!_0x5dd2cd[_0xe1b4('0x37')][_0xe1b4('0x3d')](_0xe1b4('0x3e'))){_0x60e161[_0xe1b4('0x21')]=qs[_0xe1b4('0x21')](_0x5dd2cd[_0xe1b4('0x37')]['limit']);_0x60e161[_0xe1b4('0x20')]=qs[_0xe1b4('0x20')](_0x5dd2cd['query'][_0xe1b4('0x20')]);}_0x60e161[_0xe1b4('0x3f')]=qs[_0xe1b4('0x40')](_0x5dd2cd['query'][_0xe1b4('0x40')]);_0x60e161['where']=qs[_0xe1b4('0x38')](_[_0xe1b4('0x41')](_0x5dd2cd[_0xe1b4('0x37')],_0xc4c603['filters']),_0xca84a9);if(_0x5dd2cd[_0xe1b4('0x37')][_0xe1b4('0x42')]){_0x60e161['where']=_[_0xe1b4('0x43')](_0x60e161[_0xe1b4('0x44')],{'$or':_[_0xe1b4('0x30')](_0xca84a9,function(_0x47358a){if(_0x47358a[_0xe1b4('0x34')]!==_0xe1b4('0x45')){var _0x28ecd5={};_0x28ecd5[_0x47358a[_0xe1b4('0x2d')]]={'$like':'%'+_0x5dd2cd[_0xe1b4('0x37')][_0xe1b4('0x42')]+'%'};return _0x28ecd5;}})});}_0x60e161=_['merge']({},_0x60e161,_0x5dd2cd[_0xe1b4('0x46')]);var _0x14b057={'where':_0x60e161[_0xe1b4('0x44')]};return db[_0xe1b4('0x31')][_0xe1b4('0x1f')](_0x14b057)[_0xe1b4('0x27')](function(_0x410297){_0x253589[_0xe1b4('0x1f')]=_0x410297;if(_0x5dd2cd[_0xe1b4('0x37')][_0xe1b4('0x47')]){_0x60e161[_0xe1b4('0x48')]=[{'all':!![]}];}return db[_0xe1b4('0x31')][_0xe1b4('0x49')](_0x60e161);})['then'](function(_0x20e587){_0x253589['rows']=_0x20e587;return _0x253589;})['then'](respondWithFilteredResult(_0x733729,_0x60e161))['catch'](handleError(_0x733729,null));};exports[_0xe1b4('0x4a')]=function(_0x4b82c3,_0x3bf1c9){var _0x4ac065={'raw':![],'where':{'id':_0x4b82c3[_0xe1b4('0x4b')]['id']}},_0x5e28c5={};_0x5e28c5[_0xe1b4('0x36')]=_[_0xe1b4('0x4c')](db[_0xe1b4('0x31')][_0xe1b4('0x32')]);_0x5e28c5[_0xe1b4('0x37')]=_['keys'](_0x4b82c3[_0xe1b4('0x37')]);_0x5e28c5[_0xe1b4('0x4d')]=_[_0xe1b4('0x39')](_0x5e28c5['model'],_0x5e28c5['query']);_0x4ac065['attributes']=_[_0xe1b4('0x39')](_0x5e28c5[_0xe1b4('0x36')],qs['fields'](_0x4b82c3[_0xe1b4('0x37')][_0xe1b4('0x3b')]));_0x4ac065[_0xe1b4('0x3a')]=_0x4ac065[_0xe1b4('0x3a')][_0xe1b4('0x3c')]?_0x4ac065[_0xe1b4('0x3a')]:_0x5e28c5['model'];if(_0x4b82c3[_0xe1b4('0x37')][_0xe1b4('0x47')]){_0x4ac065[_0xe1b4('0x48')]=[{'all':!![]}];}_0x4ac065=_[_0xe1b4('0x43')]({},_0x4ac065,_0x4b82c3[_0xe1b4('0x46')]);return db[_0xe1b4('0x31')][_0xe1b4('0x4e')](_0x4ac065)[_0xe1b4('0x27')](handleEntityNotFound(_0x3bf1c9,null))[_0xe1b4('0x27')](respondWithResult(_0x3bf1c9,null))[_0xe1b4('0x4f')](handleError(_0x3bf1c9,null));};exports[_0xe1b4('0x28')]=function(_0x3cf6f9,_0x297727){return db[_0xe1b4('0x31')][_0xe1b4('0x4e')]({'where':{'id':_0x3cf6f9[_0xe1b4('0x4b')]['id']}})['then'](handleEntityNotFound(_0x297727,null))[_0xe1b4('0x27')](removeEntity(_0x297727,null))[_0xe1b4('0x4f')](handleError(_0x297727,null));};exports[_0xe1b4('0x50')]=function(_0x33cae9,_0x2bfafc){return db[_0xe1b4('0x31')]['describe']()['then'](respondWithResult(_0x2bfafc,null))[_0xe1b4('0x4f')](handleError(_0x2bfafc,null));};exports[_0xe1b4('0x51')]=function(_0x452af3,_0x515c0f){var _0xd4a91d;return db['sequelize'][_0xe1b4('0x52')](function(_0x73cf6f){return db[_0xe1b4('0x31')][_0xe1b4('0x51')](_0x452af3[_0xe1b4('0x53')],{'transaction':_0x73cf6f})[_0xe1b4('0x27')](function(_0x52247a){_0xd4a91d=_0x52247a[_0xe1b4('0x29')]({'plain':!![]});return db['VoiceExtension'][_0xe1b4('0x4e')]({'where':{'id':_0xd4a91d['VoiceExtensionId']},'raw':!![]})['then'](function(_0x1ca0b7){return createVoicePrefixExtensions(_0xd4a91d,_0x1ca0b7,_0x73cf6f);});});})['then'](function(){var _0x2507ea=_0x452af3[_0xe1b4('0x54')]['get']({'plain':!![]});if(!_0x2507ea)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2507ea[_0xe1b4('0x55')]==='user'){var _0x3e0c99=_0xd4a91d;return db[_0xe1b4('0x56')][_0xe1b4('0x4e')]({'where':{'name':'VoicePrefixes','userProfileId':_0x2507ea['userProfileId']},'raw':!![]})[_0xe1b4('0x27')](function(_0x2313bd){if(_0x2313bd&&_0x2313bd[_0xe1b4('0x57')]===0x0){return db[_0xe1b4('0x58')][_0xe1b4('0x51')]({'name':_0x3e0c99[_0xe1b4('0x2d')],'resourceId':_0x3e0c99['id'],'type':_0x2313bd[_0xe1b4('0x2d')],'sectionId':_0x2313bd['id']},{})['then'](function(){return _0xd4a91d;});}else{return _0xd4a91d;}})['catch'](function(_0x12c959){logger['error'](_0xe1b4('0x59'),_0x12c959);throw _0x12c959;});}return _0xd4a91d;})['then'](respondWithResult(_0x515c0f,null))[_0xe1b4('0x4f')](handleError(_0x515c0f,null));};function Extension(_0x465016,_0x4b4671,_0x3bdd2a,_0x245ccb){this[_0xe1b4('0x5a')]=_0xe1b4('0x5b');this[_0xe1b4('0x5c')]=_0x465016;this[_0xe1b4('0x5d')]=_0x3bdd2a;this['type']=_0xe1b4('0x5e');this[_0xe1b4('0x5f')]=_0xe1b4('0x60');this[_0xe1b4('0x61')]=_0x4b4671;this['appdata']=_0x245ccb;}function createVoicePrefixExtensions(_0x2a109b,_0x231556,_0x3bf75e){return new BPromise(function(_0x3b8f49,_0x1797ba){var _0x30a4aa=new Extension(formatPrefixName(_0x2a109b['prefix']),0x1,_0xe1b4('0x62'),_0xe1b4('0x63'));_0x30a4aa['VoicePrefixId']=_0x2a109b['id'];return db[_0xe1b4('0x64')][_0xe1b4('0x51')](_0x30a4aa,{'transaction':_0x3bf75e})[_0xe1b4('0x27')](function(_0x33e6d5){var _0x549747=_0x33e6d5[_0xe1b4('0x29')]({'plain':!![]});var _0x1e3c9f=_[_0xe1b4('0x30')](addVoicePrefixExtensions(_0x2a109b,_0x231556),function(_0x32ea1d){_0x32ea1d[_0xe1b4('0x65')]=_0x549747['id'];_0x32ea1d['VoicePrefixId']=_0x2a109b['id'];return _0x32ea1d;});return db[_0xe1b4('0x64')]['bulkCreate'](_0x1e3c9f,{'transaction':_0x3bf75e})[_0xe1b4('0x27')](function(_0x35d0df){if(!_0x35d0df){return _0x1797ba('Extensions\x20creation\x20failed');}else{return _0x3b8f49(_0x35d0df);}})[_0xe1b4('0x4f')](function(_0x395937){return _0x1797ba(_0x395937);});});;});};function addVoicePrefixExtensions(_0x371323,_0x241fa7){var _0x2e66ad=[];var _0xd12ce3=formatPrefixName(_0x371323[_0xe1b4('0x66')]);_0x2e66ad[_0xe1b4('0x67')](new Extension(_0xd12ce3,0x2,_0xe1b4('0x68'),_0xe1b4('0x69')+_0x371323[_0xe1b4('0x2d')]));if(_0x371323[_0xe1b4('0x6a')]){_0x2e66ad['push'](new Extension(_0xd12ce3,0x3,_0xe1b4('0x68'),'PREFIX-CALLERIDALL='+_0x371323[_0xe1b4('0x6a')]));}else{_0x2e66ad['push'](new Extension(_0xd12ce3,0x3,_0xe1b4('0x62'),'No\x20callerid\x20available'));}_0x2e66ad[_0xe1b4('0x67')](new Extension(_0xd12ce3,0x4,'goto',_0x241fa7['context']+','+_0xe1b4('0x6b')+(0x8+_0x371323[_0xe1b4('0x2d')][_0xe1b4('0x3c')])+'}'+','+0x1));return _0x2e66ad;}function formatPrefixName(_0x375966){var _0x58d0ef='_';for(var _0x117178=0x0;_0x117178<_0x375966[_0xe1b4('0x3c')];_0x117178++){if(_0x375966[_0xe1b4('0x6c')](_0x117178)=='-'){_0x58d0ef+=_0x375966['charAt'](_0x117178);}else{_0x58d0ef+='['+_0x375966[_0xe1b4('0x6c')](_0x117178)+']';}}_0x58d0ef+='.';return _0x58d0ef;}exports[_0xe1b4('0x26')]=function(_0x19a8fd,_0x3fca54,_0x4af51d){var _0x373564=_0x19a8fd[_0xe1b4('0x53')];_0x373564[_0xe1b4('0x66')]='system-'+_0x373564[_0xe1b4('0x2d')]+'-';return db[_0xe1b4('0x6d')][_0xe1b4('0x52')](function(_0xdea5b2){return db[_0xe1b4('0x31')][_0xe1b4('0x26')](_0x373564,{'where':{'id':_0x373564['id']},'transaction':_0xdea5b2})[_0xe1b4('0x27')](function(){return db[_0xe1b4('0x64')][_0xe1b4('0x28')]({'where':{'VoicePrefixId':_0x373564['id']},'transaction':_0xdea5b2})[_0xe1b4('0x27')](function(){return db[_0xe1b4('0x64')][_0xe1b4('0x4e')]({'where':{'id':_0x373564[_0xe1b4('0x65')]},'raw':!![]})[_0xe1b4('0x27')](function(_0x49bd76){return createVoicePrefixExtensions(_0x373564,_0x49bd76,_0xdea5b2);});});});})[_0xe1b4('0x27')](function(){return db[_0xe1b4('0x31')]['findById'](_0x373564['id']);})[_0xe1b4('0x27')](respondWithResult(_0x3fca54,null))[_0xe1b4('0x4f')](handleError(_0x3fca54,null));};exports['addAgents']=function(_0x531067,_0x507544,_0xade865){return db['VoicePrefix'][_0xe1b4('0x4e')]({'where':{'id':_0x531067['params']['id']}})[_0xe1b4('0x27')](handleEntityNotFound(_0x507544,null))[_0xe1b4('0x27')](function(_0x51d318){if(_0x51d318){return _0x51d318['addAgents'](_0x531067['body'][_0xe1b4('0x6e')],_[_0xe1b4('0x6f')](_0x531067[_0xe1b4('0x53')],['ids','id'])||{})[_0xe1b4('0x70')](function(_0x1b1471){for(var _0x3cdfd2=0x0;_0x3cdfd2<_0x531067['body'][_0xe1b4('0x6e')][_0xe1b4('0x3c')];_0x3cdfd2+=0x1){socket[_0xe1b4('0x71')]('userVoicePrefix:save',{'UserId':_0x531067[_0xe1b4('0x53')]['ids'][_0x3cdfd2],'VoicePrefixId':_0x531067[_0xe1b4('0x4b')]['id']});}return _0x1b1471;});}})['then'](respondWithResult(_0x507544,null))['catch'](handleError(_0x507544,null));};exports['removeAgents']=function(_0x4e4f40,_0x2be068,_0x30645c){return db[_0xe1b4('0x31')]['find']({'where':{'id':_0x4e4f40[_0xe1b4('0x4b')]['id']}})[_0xe1b4('0x27')](handleEntityNotFound(_0x2be068,null))['then'](function(_0x32f3e7){if(_0x32f3e7){return _0x32f3e7[_0xe1b4('0x72')](_0x4e4f40[_0xe1b4('0x37')][_0xe1b4('0x6e')])[_0xe1b4('0x27')](function(){if(_[_0xe1b4('0x73')](_0x4e4f40['query'][_0xe1b4('0x6e')])){for(var _0x4d8624=0x0;_0x4d8624<_0x4e4f40[_0xe1b4('0x37')][_0xe1b4('0x6e')][_0xe1b4('0x3c')];_0x4d8624+=0x1){socket[_0xe1b4('0x71')](_0xe1b4('0x74'),{'UserId':Number(_0x4e4f40[_0xe1b4('0x37')]['ids'][_0x4d8624]),'VoicePrefixId':Number(_0x4e4f40[_0xe1b4('0x4b')]['id'])});}}else{socket[_0xe1b4('0x71')]('userVoicePrefix:remove',{'UserId':Number(_0x4e4f40['query'][_0xe1b4('0x6e')]),'VoicePrefixId':Number(_0x4e4f40[_0xe1b4('0x4b')]['id'])});}});}})[_0xe1b4('0x27')](respondWithStatusCode(_0x2be068,null))[_0xe1b4('0x4f')](handleError(_0x2be068,null));};exports[_0xe1b4('0x75')]=function(_0x3c89a7,_0x47f404,_0x11b5d4){var _0x2063e0={};var _0x2e89bb={};var _0x4b2d99;var _0x2c5caf;return db[_0xe1b4('0x31')][_0xe1b4('0x76')]({'where':{'id':_0x3c89a7[_0xe1b4('0x4b')]['id']}})['then'](handleEntityNotFound(_0x47f404,null))['then'](function(_0x166034){if(_0x166034){_0x4b2d99=_0x166034;_0x2e89bb[_0xe1b4('0x36')]=_[_0xe1b4('0x4c')](db[_0xe1b4('0x77')][_0xe1b4('0x32')]);_0x2e89bb[_0xe1b4('0x37')]=_['keys'](_0x3c89a7[_0xe1b4('0x37')]);_0x2e89bb['filters']=_['intersection'](_0x2e89bb['model'],_0x2e89bb[_0xe1b4('0x37')]);_0x2063e0[_0xe1b4('0x3a')]=_['intersection'](_0x2e89bb['model'],qs[_0xe1b4('0x3b')](_0x3c89a7[_0xe1b4('0x37')][_0xe1b4('0x3b')]));_0x2063e0['attributes']=_0x2063e0[_0xe1b4('0x3a')][_0xe1b4('0x3c')]?_0x2063e0[_0xe1b4('0x3a')]:_0x2e89bb[_0xe1b4('0x36')];_0x2063e0['order']=qs['sort'](_0x3c89a7[_0xe1b4('0x37')][_0xe1b4('0x40')]);_0x2063e0[_0xe1b4('0x44')]=qs['filters'](_['pick'](_0x3c89a7[_0xe1b4('0x37')],_0x2e89bb['filters']));if(_0x3c89a7['query'][_0xe1b4('0x42')]){_0x2063e0[_0xe1b4('0x44')]=_[_0xe1b4('0x43')](_0x2063e0['where'],{'$or':_['map'](_0x2063e0[_0xe1b4('0x3a')],function(_0x50e9ff){var _0x206329={};_0x206329[_0x50e9ff]={'$like':'%'+_0x3c89a7['query']['filter']+'%'};return _0x206329;})});}_0x2063e0=_[_0xe1b4('0x43')]({},_0x2063e0,_0x3c89a7[_0xe1b4('0x46')]);return _0x4b2d99[_0xe1b4('0x75')](_0x2063e0);}})[_0xe1b4('0x27')](function(_0x1a33f0){if(_0x1a33f0){_0x2c5caf=_0x1a33f0[_0xe1b4('0x3c')];if(!_0x3c89a7[_0xe1b4('0x37')]['hasOwnProperty']('nolimit')){_0x2063e0['limit']=qs[_0xe1b4('0x21')](_0x3c89a7[_0xe1b4('0x37')][_0xe1b4('0x21')]);_0x2063e0[_0xe1b4('0x20')]=qs['offset'](_0x3c89a7['query'][_0xe1b4('0x20')]);}return _0x4b2d99[_0xe1b4('0x75')](_0x2063e0);}})[_0xe1b4('0x27')](function(_0x599637){if(_0x599637){return _0x599637?{'count':_0x2c5caf,'rows':_0x599637}:null;}})[_0xe1b4('0x27')](respondWithResult(_0x47f404,null))[_0xe1b4('0x4f')](handleError(_0x47f404,null));};