049b3f04a669dcd816b3628419b94ef61c8941fa
[motion2.git] / server / api / trigger / trigger.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 _0xec90=['Action','getActions','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','status','end','json','offset','undefined','limit','count','set','reject','save','update','then','destroy','get','Triggers','sendStatus','error','stack','name','send','index','Trigger','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','filter','merge','map','options','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','user','role','UserProfileSection','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','TriggerAllId','Condition','addAnyCondition','TriggerAnyId','getAllConditions','findOne','rawAttributes','nolimit','pick','getAnyConditions','addAction','TriggerId'];(function(_0x122096,_0x60c295){var _0x3d1966=function(_0x3d569e){while(--_0x3d569e){_0x122096['push'](_0x122096['shift']());}};_0x3d1966(++_0x60c295);}(_0xec90,0xc0));var _0x0ec9=function(_0x54256c,_0x51e1e6){_0x54256c=_0x54256c-0x0;var _0x295965=_0xec90[_0x54256c];return _0x295965;};'use strict';var emlformat=require(_0x0ec9('0x0'));var rimraf=require(_0x0ec9('0x1'));var zipdir=require(_0x0ec9('0x2'));var jsonpatch=require(_0x0ec9('0x3'));var rp=require('request-promise');var moment=require(_0x0ec9('0x4'));var BPromise=require(_0x0ec9('0x5'));var Mustache=require(_0x0ec9('0x6'));var util=require(_0x0ec9('0x7'));var path=require(_0x0ec9('0x8'));var sox=require(_0x0ec9('0x9'));var csv=require(_0x0ec9('0xa'));var ejs=require(_0x0ec9('0xb'));var fs=require('fs');var fs_extra=require(_0x0ec9('0xc'));var _=require('lodash');var squel=require(_0x0ec9('0xd'));var crypto=require(_0x0ec9('0xe'));var jsforce=require(_0x0ec9('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x0ec9('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x0ec9('0x10'));var qs=require(_0x0ec9('0x11'));var as=require(_0x0ec9('0x12'));var hardwareService=require(_0x0ec9('0x13'));var logger=require(_0x0ec9('0x14'))(_0x0ec9('0x15'));var utils=require(_0x0ec9('0x16'));var config=require(_0x0ec9('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1d82f6,_0x5add88){_0x5add88=_0x5add88||0xcc;return function(_0x389615){if(_0x389615){return _0x1d82f6['sendStatus'](_0x5add88);}return _0x1d82f6[_0x0ec9('0x18')](_0x5add88)[_0x0ec9('0x19')]();};}function respondWithResult(_0x535ac0,_0x203053){_0x203053=_0x203053||0xc8;return function(_0x3f9ca1){if(_0x3f9ca1){return _0x535ac0['status'](_0x203053)[_0x0ec9('0x1a')](_0x3f9ca1);}};}function respondWithFilteredResult(_0x29bb93,_0x15d7f0){return function(_0x4e60b7){if(_0x4e60b7){var _0x4c439e=typeof _0x15d7f0[_0x0ec9('0x1b')]===_0x0ec9('0x1c')&&typeof _0x15d7f0[_0x0ec9('0x1d')]==='undefined';var _0x9daf59=_0x4e60b7[_0x0ec9('0x1e')];var _0x17af2d=_0x4c439e?0x0:_0x15d7f0['offset'];var _0x28c1e1=_0x4c439e?_0x4e60b7[_0x0ec9('0x1e')]:_0x15d7f0[_0x0ec9('0x1b')]+_0x15d7f0[_0x0ec9('0x1d')];var _0x250e3a;if(_0x28c1e1>=_0x9daf59){_0x28c1e1=_0x9daf59;_0x250e3a=0xc8;}else{_0x250e3a=0xce;}_0x29bb93[_0x0ec9('0x18')](_0x250e3a);return _0x29bb93[_0x0ec9('0x1f')]('Content-Range',_0x17af2d+'-'+_0x28c1e1+'/'+_0x9daf59)[_0x0ec9('0x1a')](_0x4e60b7);}return null;};}function patchUpdates(_0x171987){return function(_0x3d6df1){try{jsonpatch['apply'](_0x3d6df1,_0x171987,!![]);}catch(_0x4c7175){return BPromise[_0x0ec9('0x20')](_0x4c7175);}return _0x3d6df1[_0x0ec9('0x21')]();};}function saveUpdates(_0x3a3466,_0x28226d){return function(_0x514cdd){if(_0x514cdd){return _0x514cdd[_0x0ec9('0x22')](_0x3a3466)[_0x0ec9('0x23')](function(_0x35c5c7){return _0x35c5c7;});}return null;};}function removeEntity(_0x267c7e,_0x96191f){return function(_0x323a35){if(_0x323a35){return _0x323a35[_0x0ec9('0x24')]()[_0x0ec9('0x23')](function(){var _0x500716=_0x323a35[_0x0ec9('0x25')]({'plain':!![]});var _0xd8f8a0=_0x0ec9('0x26');return db['UserProfileResource']['destroy']({'where':{'type':_0xd8f8a0,'resourceId':_0x500716['id']}})[_0x0ec9('0x23')](function(){return _0x323a35;});})[_0x0ec9('0x23')](function(){_0x267c7e[_0x0ec9('0x18')](0xcc)[_0x0ec9('0x19')]();});}};}function handleEntityNotFound(_0x23738f,_0x4b261c){return function(_0x5123da){if(!_0x5123da){_0x23738f[_0x0ec9('0x27')](0x194);}return _0x5123da;};}function handleError(_0x1d6b3a,_0x310385){_0x310385=_0x310385||0x1f4;return function(_0x3edd76){logger[_0x0ec9('0x28')](_0x3edd76[_0x0ec9('0x29')]);if(_0x3edd76[_0x0ec9('0x2a')]){delete _0x3edd76[_0x0ec9('0x2a')];}_0x1d6b3a['status'](_0x310385)[_0x0ec9('0x2b')](_0x3edd76);};}exports[_0x0ec9('0x2c')]=function(_0x2b316f,_0x3c1626){var _0x1238dd={},_0x323c92={},_0x3e1d48={'count':0x0,'rows':[]};var _0x16b74b=_['map'](db[_0x0ec9('0x2d')]['rawAttributes'],function(_0x4ab932){return{'name':_0x4ab932[_0x0ec9('0x2e')],'type':_0x4ab932[_0x0ec9('0x2f')][_0x0ec9('0x30')]};});_0x323c92[_0x0ec9('0x31')]=_['map'](_0x16b74b,_0x0ec9('0x2a'));_0x323c92[_0x0ec9('0x32')]=_[_0x0ec9('0x33')](_0x2b316f['query']);_0x323c92[_0x0ec9('0x34')]=_[_0x0ec9('0x35')](_0x323c92['model'],_0x323c92[_0x0ec9('0x32')]);_0x1238dd[_0x0ec9('0x36')]=_['intersection'](_0x323c92[_0x0ec9('0x31')],qs[_0x0ec9('0x37')](_0x2b316f['query'][_0x0ec9('0x37')]));_0x1238dd[_0x0ec9('0x36')]=_0x1238dd['attributes']['length']?_0x1238dd[_0x0ec9('0x36')]:_0x323c92['model'];if(!_0x2b316f[_0x0ec9('0x32')][_0x0ec9('0x38')]('nolimit')){_0x1238dd[_0x0ec9('0x1d')]=qs[_0x0ec9('0x1d')](_0x2b316f['query']['limit']);_0x1238dd[_0x0ec9('0x1b')]=qs[_0x0ec9('0x1b')](_0x2b316f['query'][_0x0ec9('0x1b')]);}_0x1238dd[_0x0ec9('0x39')]=qs[_0x0ec9('0x3a')](_0x2b316f[_0x0ec9('0x32')][_0x0ec9('0x3a')]);_0x1238dd[_0x0ec9('0x3b')]=qs[_0x0ec9('0x34')](_['pick'](_0x2b316f[_0x0ec9('0x32')],_0x323c92[_0x0ec9('0x34')]),_0x16b74b);if(_0x2b316f['query'][_0x0ec9('0x3c')]){_0x1238dd[_0x0ec9('0x3b')]=_[_0x0ec9('0x3d')](_0x1238dd['where'],{'$or':_[_0x0ec9('0x3e')](_0x16b74b,function(_0x36ed31){if(_0x36ed31[_0x0ec9('0x2f')]!=='VIRTUAL'){var _0x453486={};_0x453486[_0x36ed31['name']]={'$like':'%'+_0x2b316f[_0x0ec9('0x32')]['filter']+'%'};return _0x453486;}})});}_0x1238dd=_[_0x0ec9('0x3d')]({},_0x1238dd,_0x2b316f[_0x0ec9('0x3f')]);var _0x3ed277={'where':_0x1238dd['where']};return db[_0x0ec9('0x2d')][_0x0ec9('0x1e')](_0x3ed277)['then'](function(_0x3e9f3a){_0x3e1d48[_0x0ec9('0x1e')]=_0x3e9f3a;if(_0x2b316f[_0x0ec9('0x32')][_0x0ec9('0x40')]){_0x1238dd[_0x0ec9('0x41')]=[{'all':!![]}];}return db[_0x0ec9('0x2d')][_0x0ec9('0x42')](_0x1238dd);})[_0x0ec9('0x23')](function(_0x421e4f){_0x3e1d48[_0x0ec9('0x43')]=_0x421e4f;return _0x3e1d48;})['then'](respondWithFilteredResult(_0x3c1626,_0x1238dd))[_0x0ec9('0x44')](handleError(_0x3c1626,null));};exports[_0x0ec9('0x45')]=function(_0x342dfc,_0xf6b254){var _0x43abf8={'raw':![],'where':{'id':_0x342dfc[_0x0ec9('0x46')]['id']}},_0x59502a={};_0x59502a[_0x0ec9('0x31')]=_['keys'](db[_0x0ec9('0x2d')]['rawAttributes']);_0x59502a[_0x0ec9('0x32')]=_[_0x0ec9('0x33')](_0x342dfc['query']);_0x59502a[_0x0ec9('0x34')]=_[_0x0ec9('0x35')](_0x59502a[_0x0ec9('0x31')],_0x59502a[_0x0ec9('0x32')]);_0x43abf8[_0x0ec9('0x36')]=_[_0x0ec9('0x35')](_0x59502a['model'],qs[_0x0ec9('0x37')](_0x342dfc[_0x0ec9('0x32')][_0x0ec9('0x37')]));_0x43abf8['attributes']=_0x43abf8[_0x0ec9('0x36')][_0x0ec9('0x47')]?_0x43abf8[_0x0ec9('0x36')]:_0x59502a[_0x0ec9('0x31')];if(_0x342dfc[_0x0ec9('0x32')][_0x0ec9('0x40')]){_0x43abf8[_0x0ec9('0x41')]=[{'all':!![]}];}_0x43abf8=_['merge']({},_0x43abf8,_0x342dfc[_0x0ec9('0x3f')]);return db[_0x0ec9('0x2d')][_0x0ec9('0x48')](_0x43abf8)[_0x0ec9('0x23')](handleEntityNotFound(_0xf6b254,null))[_0x0ec9('0x23')](respondWithResult(_0xf6b254,null))[_0x0ec9('0x44')](handleError(_0xf6b254,null));};exports[_0x0ec9('0x49')]=function(_0x5e66d7,_0x4e42e3){return db[_0x0ec9('0x2d')]['create'](_0x5e66d7[_0x0ec9('0x4a')],{})[_0x0ec9('0x23')](function(_0x3cf957){var _0x179d78=_0x5e66d7[_0x0ec9('0x4b')]['get']({'plain':!![]});if(!_0x179d78)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x179d78[_0x0ec9('0x4c')]===_0x0ec9('0x4b')){var _0x559f00=_0x3cf957[_0x0ec9('0x25')]({'plain':!![]});var _0x27ae36='Triggers';return db[_0x0ec9('0x4d')]['find']({'where':{'name':_0x27ae36,'userProfileId':_0x179d78['userProfileId']},'raw':!![]})[_0x0ec9('0x23')](function(_0x4ca52e){if(_0x4ca52e&&_0x4ca52e[_0x0ec9('0x4e')]===0x0){return db[_0x0ec9('0x4f')][_0x0ec9('0x49')]({'name':_0x559f00['name'],'resourceId':_0x559f00['id'],'type':_0x4ca52e[_0x0ec9('0x2a')],'sectionId':_0x4ca52e['id']},{})[_0x0ec9('0x23')](function(){return _0x3cf957;});}else{return _0x3cf957;}})[_0x0ec9('0x44')](function(_0x50b7b5){logger[_0x0ec9('0x28')](_0x0ec9('0x50'),_0x50b7b5);throw _0x50b7b5;});}return _0x3cf957;})[_0x0ec9('0x23')](respondWithResult(_0x4e42e3,0xc9))[_0x0ec9('0x44')](handleError(_0x4e42e3,null));};exports['update']=function(_0x107e33,_0x1dcbe7){if(_0x107e33['body']['id']){delete _0x107e33['body']['id'];}return db[_0x0ec9('0x2d')]['find']({'where':{'id':_0x107e33[_0x0ec9('0x46')]['id']}})['then'](handleEntityNotFound(_0x1dcbe7,null))[_0x0ec9('0x23')](saveUpdates(_0x107e33['body'],null))[_0x0ec9('0x23')](respondWithResult(_0x1dcbe7,null))[_0x0ec9('0x44')](handleError(_0x1dcbe7,null));};exports['destroy']=function(_0x4472bf,_0x262a79){return db[_0x0ec9('0x2d')][_0x0ec9('0x48')]({'where':{'id':_0x4472bf[_0x0ec9('0x46')]['id']}})[_0x0ec9('0x23')](handleEntityNotFound(_0x262a79,null))['then'](removeEntity(_0x262a79,null))[_0x0ec9('0x44')](handleError(_0x262a79,null));};exports['addAllCondition']=function(_0x6a14d5,_0x4bb9ed,_0x532547){if(_0x6a14d5['body']['id']){delete _0x6a14d5[_0x0ec9('0x4a')]['id'];}return db[_0x0ec9('0x2d')][_0x0ec9('0x48')]({'where':{'id':_0x6a14d5['params']['id']}})[_0x0ec9('0x23')](handleEntityNotFound(_0x4bb9ed,null))['then'](function(_0x10aadd){if(_0x10aadd){_0x6a14d5[_0x0ec9('0x4a')][_0x0ec9('0x51')]=_0x10aadd['id'];return db[_0x0ec9('0x52')][_0x0ec9('0x49')](_0x6a14d5['body']);}})[_0x0ec9('0x23')](respondWithResult(_0x4bb9ed,null))[_0x0ec9('0x44')](handleError(_0x4bb9ed,null));};exports[_0x0ec9('0x53')]=function(_0x278475,_0x2ebae9,_0x619d31){if(_0x278475[_0x0ec9('0x4a')]['id']){delete _0x278475[_0x0ec9('0x4a')]['id'];}return db[_0x0ec9('0x2d')][_0x0ec9('0x48')]({'where':{'id':_0x278475[_0x0ec9('0x46')]['id']}})['then'](handleEntityNotFound(_0x2ebae9,null))[_0x0ec9('0x23')](function(_0x28b702){if(_0x28b702){_0x278475[_0x0ec9('0x4a')][_0x0ec9('0x54')]=_0x28b702['id'];return db[_0x0ec9('0x52')]['create'](_0x278475['body']);}})['then'](respondWithResult(_0x2ebae9,null))[_0x0ec9('0x44')](handleError(_0x2ebae9,null));};exports[_0x0ec9('0x55')]=function(_0x425dae,_0x311cd9,_0x16aaf4){var _0x2ed61a={};var _0x12bbdd={};var _0x39e000;var _0x28b3a0;return db['Trigger'][_0x0ec9('0x56')]({'where':{'id':_0x425dae[_0x0ec9('0x46')]['id']}})[_0x0ec9('0x23')](handleEntityNotFound(_0x311cd9,null))['then'](function(_0x2fcd36){if(_0x2fcd36){_0x39e000=_0x2fcd36;_0x12bbdd[_0x0ec9('0x31')]=_[_0x0ec9('0x33')](db['Condition'][_0x0ec9('0x57')]);_0x12bbdd[_0x0ec9('0x32')]=_['keys'](_0x425dae[_0x0ec9('0x32')]);_0x12bbdd[_0x0ec9('0x34')]=_[_0x0ec9('0x35')](_0x12bbdd[_0x0ec9('0x31')],_0x12bbdd[_0x0ec9('0x32')]);_0x2ed61a[_0x0ec9('0x36')]=_[_0x0ec9('0x35')](_0x12bbdd[_0x0ec9('0x31')],qs['fields'](_0x425dae['query']['fields']));_0x2ed61a[_0x0ec9('0x36')]=_0x2ed61a['attributes'][_0x0ec9('0x47')]?_0x2ed61a[_0x0ec9('0x36')]:_0x12bbdd[_0x0ec9('0x31')];_0x2ed61a['order']=qs[_0x0ec9('0x3a')](_0x425dae['query'][_0x0ec9('0x3a')]);_0x2ed61a[_0x0ec9('0x3b')]=qs[_0x0ec9('0x34')](_['pick'](_0x425dae[_0x0ec9('0x32')],_0x12bbdd[_0x0ec9('0x34')]));if(_0x425dae[_0x0ec9('0x32')][_0x0ec9('0x3c')]){_0x2ed61a[_0x0ec9('0x3b')]=_['merge'](_0x2ed61a[_0x0ec9('0x3b')],{'$or':_[_0x0ec9('0x3e')](_0x2ed61a[_0x0ec9('0x36')],function(_0x13275b){var _0x39bea4={};_0x39bea4[_0x13275b]={'$like':'%'+_0x425dae['query'][_0x0ec9('0x3c')]+'%'};return _0x39bea4;})});}_0x2ed61a=_[_0x0ec9('0x3d')]({},_0x2ed61a,_0x425dae[_0x0ec9('0x3f')]);return _0x39e000['getAllConditions'](_0x2ed61a);}})[_0x0ec9('0x23')](function(_0x50677a){if(_0x50677a){_0x28b3a0=_0x50677a['length'];if(!_0x425dae[_0x0ec9('0x32')][_0x0ec9('0x38')](_0x0ec9('0x58'))){_0x2ed61a['limit']=qs['limit'](_0x425dae['query']['limit']);_0x2ed61a['offset']=qs[_0x0ec9('0x1b')](_0x425dae[_0x0ec9('0x32')]['offset']);}return _0x39e000[_0x0ec9('0x55')](_0x2ed61a);}})['then'](function(_0x32e12f){if(_0x32e12f){return _0x32e12f?{'count':_0x28b3a0,'rows':_0x32e12f}:null;}})[_0x0ec9('0x23')](respondWithResult(_0x311cd9,null))[_0x0ec9('0x44')](handleError(_0x311cd9,null));};exports['getAnyConditions']=function(_0x46be86,_0x5e0036,_0x3f7fc1){var _0x2d247b={};var _0x571ae8={};var _0x4bb756;var _0x2e4197;return db[_0x0ec9('0x2d')][_0x0ec9('0x56')]({'where':{'id':_0x46be86['params']['id']}})[_0x0ec9('0x23')](handleEntityNotFound(_0x5e0036,null))[_0x0ec9('0x23')](function(_0x37e3ba){if(_0x37e3ba){_0x4bb756=_0x37e3ba;_0x571ae8[_0x0ec9('0x31')]=_['keys'](db[_0x0ec9('0x52')]['rawAttributes']);_0x571ae8[_0x0ec9('0x32')]=_['keys'](_0x46be86[_0x0ec9('0x32')]);_0x571ae8[_0x0ec9('0x34')]=_[_0x0ec9('0x35')](_0x571ae8['model'],_0x571ae8[_0x0ec9('0x32')]);_0x2d247b['attributes']=_[_0x0ec9('0x35')](_0x571ae8[_0x0ec9('0x31')],qs[_0x0ec9('0x37')](_0x46be86[_0x0ec9('0x32')]['fields']));_0x2d247b[_0x0ec9('0x36')]=_0x2d247b[_0x0ec9('0x36')][_0x0ec9('0x47')]?_0x2d247b[_0x0ec9('0x36')]:_0x571ae8['model'];_0x2d247b['order']=qs[_0x0ec9('0x3a')](_0x46be86[_0x0ec9('0x32')]['sort']);_0x2d247b['where']=qs[_0x0ec9('0x34')](_[_0x0ec9('0x59')](_0x46be86['query'],_0x571ae8[_0x0ec9('0x34')]));if(_0x46be86[_0x0ec9('0x32')][_0x0ec9('0x3c')]){_0x2d247b[_0x0ec9('0x3b')]=_[_0x0ec9('0x3d')](_0x2d247b[_0x0ec9('0x3b')],{'$or':_[_0x0ec9('0x3e')](_0x2d247b[_0x0ec9('0x36')],function(_0x36f11f){var _0x5c7048={};_0x5c7048[_0x36f11f]={'$like':'%'+_0x46be86[_0x0ec9('0x32')][_0x0ec9('0x3c')]+'%'};return _0x5c7048;})});}_0x2d247b=_[_0x0ec9('0x3d')]({},_0x2d247b,_0x46be86[_0x0ec9('0x3f')]);return _0x4bb756[_0x0ec9('0x5a')](_0x2d247b);}})[_0x0ec9('0x23')](function(_0x406998){if(_0x406998){_0x2e4197=_0x406998[_0x0ec9('0x47')];if(!_0x46be86[_0x0ec9('0x32')][_0x0ec9('0x38')](_0x0ec9('0x58'))){_0x2d247b[_0x0ec9('0x1d')]=qs[_0x0ec9('0x1d')](_0x46be86[_0x0ec9('0x32')][_0x0ec9('0x1d')]);_0x2d247b[_0x0ec9('0x1b')]=qs['offset'](_0x46be86[_0x0ec9('0x32')][_0x0ec9('0x1b')]);}return _0x4bb756[_0x0ec9('0x5a')](_0x2d247b);}})[_0x0ec9('0x23')](function(_0x323703){if(_0x323703){return _0x323703?{'count':_0x2e4197,'rows':_0x323703}:null;}})['then'](respondWithResult(_0x5e0036,null))['catch'](handleError(_0x5e0036,null));};exports[_0x0ec9('0x5b')]=function(_0x5b74aa,_0x4ef556,_0x491e1f){if(_0x5b74aa[_0x0ec9('0x4a')]['id']){delete _0x5b74aa['body']['id'];}return db[_0x0ec9('0x2d')][_0x0ec9('0x48')]({'where':{'id':_0x5b74aa['params']['id']}})[_0x0ec9('0x23')](handleEntityNotFound(_0x4ef556,null))[_0x0ec9('0x23')](function(_0x5b4e65){if(_0x5b4e65){_0x5b74aa[_0x0ec9('0x4a')][_0x0ec9('0x5c')]=_0x5b4e65['id'];return db['Action'][_0x0ec9('0x49')](_0x5b74aa[_0x0ec9('0x4a')]);}})['then'](respondWithResult(_0x4ef556,null))[_0x0ec9('0x44')](handleError(_0x4ef556,null));};exports['getActions']=function(_0x3a1c46,_0x37ceb8,_0x5b9b9a){var _0x4f355b={};var _0x1ce183={};var _0x4081a7;var _0xd31867;return db[_0x0ec9('0x2d')][_0x0ec9('0x56')]({'where':{'id':_0x3a1c46[_0x0ec9('0x46')]['id']}})['then'](handleEntityNotFound(_0x37ceb8,null))[_0x0ec9('0x23')](function(_0x2c81ac){if(_0x2c81ac){_0x4081a7=_0x2c81ac;_0x1ce183['model']=_[_0x0ec9('0x33')](db[_0x0ec9('0x5d')][_0x0ec9('0x57')]);_0x1ce183[_0x0ec9('0x32')]=_[_0x0ec9('0x33')](_0x3a1c46[_0x0ec9('0x32')]);_0x1ce183[_0x0ec9('0x34')]=_['intersection'](_0x1ce183[_0x0ec9('0x31')],_0x1ce183[_0x0ec9('0x32')]);_0x4f355b['attributes']=_[_0x0ec9('0x35')](_0x1ce183[_0x0ec9('0x31')],qs[_0x0ec9('0x37')](_0x3a1c46[_0x0ec9('0x32')][_0x0ec9('0x37')]));_0x4f355b[_0x0ec9('0x36')]=_0x4f355b[_0x0ec9('0x36')][_0x0ec9('0x47')]?_0x4f355b[_0x0ec9('0x36')]:_0x1ce183[_0x0ec9('0x31')];_0x4f355b[_0x0ec9('0x39')]=qs[_0x0ec9('0x3a')](_0x3a1c46['query']['sort']);_0x4f355b[_0x0ec9('0x3b')]=qs[_0x0ec9('0x34')](_[_0x0ec9('0x59')](_0x3a1c46['query'],_0x1ce183[_0x0ec9('0x34')]));if(_0x3a1c46[_0x0ec9('0x32')]['filter']){_0x4f355b['where']=_[_0x0ec9('0x3d')](_0x4f355b[_0x0ec9('0x3b')],{'$or':_[_0x0ec9('0x3e')](_0x4f355b[_0x0ec9('0x36')],function(_0x4f8c19){var _0x17b974={};_0x17b974[_0x4f8c19]={'$like':'%'+_0x3a1c46[_0x0ec9('0x32')]['filter']+'%'};return _0x17b974;})});}_0x4f355b=_[_0x0ec9('0x3d')]({},_0x4f355b,_0x3a1c46[_0x0ec9('0x3f')]);return _0x4081a7[_0x0ec9('0x5e')](_0x4f355b);}})[_0x0ec9('0x23')](function(_0x5e3a33){if(_0x5e3a33){_0xd31867=_0x5e3a33[_0x0ec9('0x47')];if(!_0x3a1c46[_0x0ec9('0x32')]['hasOwnProperty'](_0x0ec9('0x58'))){_0x4f355b[_0x0ec9('0x1d')]=qs[_0x0ec9('0x1d')](_0x3a1c46[_0x0ec9('0x32')][_0x0ec9('0x1d')]);_0x4f355b[_0x0ec9('0x1b')]=qs['offset'](_0x3a1c46['query']['offset']);}return _0x4081a7['getActions'](_0x4f355b);}})[_0x0ec9('0x23')](function(_0x28a71c){if(_0x28a71c){return _0x28a71c?{'count':_0xd31867,'rows':_0x28a71c}:null;}})['then'](respondWithResult(_0x37ceb8,null))['catch'](handleError(_0x37ceb8,null));};