63a2b5c53b68f290811574db44e460a6c7506381
[motion2.git] / server / api / intDeskConfiguration / intDeskConfiguration.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 _0xdc59=['reject','save','update','then','error','index','map','DeskConfiguration','fieldName','type','key','name','query','attributes','intersection','model','fields','order','sort','where','filters','filter','merge','includeAll','include','findAll','rows','catch','show','params','keys','length','find','create','body','destroy','getFields','DeskField','rawAttributes','options','hasOwnProperty','nolimit','findOne','pick','getSubjects','getDescriptions','getTags','Tag','setTags','ids','eml-format','zip-dir','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','apply'];(function(_0x3e81d0,_0x6e0c2b){var _0x3e77ed=function(_0x224e93){while(--_0x224e93){_0x3e81d0['push'](_0x3e81d0['shift']());}};_0x3e77ed(++_0x6e0c2b);}(_0xdc59,0x18a));var _0x9dc5=function(_0x57add2,_0x4f2b7d){_0x57add2=_0x57add2-0x0;var _0x4e3670=_0xdc59[_0x57add2];return _0x4e3670;};'use strict';var emlformat=require(_0x9dc5('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9dc5('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9dc5('0x2'));var moment=require(_0x9dc5('0x3'));var BPromise=require(_0x9dc5('0x4'));var Mustache=require('mustache');var util=require(_0x9dc5('0x5'));var path=require(_0x9dc5('0x6'));var sox=require(_0x9dc5('0x7'));var csv=require('to-csv');var ejs=require(_0x9dc5('0x8'));var fs=require('fs');var fs_extra=require(_0x9dc5('0x9'));var _=require(_0x9dc5('0xa'));var squel=require(_0x9dc5('0xb'));var crypto=require(_0x9dc5('0xc'));var jsforce=require(_0x9dc5('0xd'));var deskjs=require(_0x9dc5('0xe'));var toCsv=require(_0x9dc5('0xf'));var querystring=require('querystring');var Papa=require(_0x9dc5('0x10'));var Redis=require('ioredis');var authService=require(_0x9dc5('0x11'));var qs=require(_0x9dc5('0x12'));var as=require(_0x9dc5('0x13'));var hardwareService=require(_0x9dc5('0x14'));var logger=require(_0x9dc5('0x15'))(_0x9dc5('0x16'));var utils=require(_0x9dc5('0x17'));var config=require(_0x9dc5('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x9dc5('0x19'))['db'];function respondWithStatusCode(_0x5a422d,_0xba23e4){_0xba23e4=_0xba23e4||0xcc;return function(_0xccf31b){if(_0xccf31b){return _0x5a422d[_0x9dc5('0x1a')](_0xba23e4);}return _0x5a422d[_0x9dc5('0x1b')](_0xba23e4)[_0x9dc5('0x1c')]();};}function respondWithResult(_0x1d764c,_0x4ec0e2){_0x4ec0e2=_0x4ec0e2||0xc8;return function(_0x51caaa){if(_0x51caaa){return _0x1d764c[_0x9dc5('0x1b')](_0x4ec0e2)[_0x9dc5('0x1d')](_0x51caaa);}};}function respondWithFilteredResult(_0x9caed3,_0x3272b4){return function(_0x27d4d1){if(_0x27d4d1){var _0x30663a=typeof _0x3272b4[_0x9dc5('0x1e')]===_0x9dc5('0x1f')&&typeof _0x3272b4[_0x9dc5('0x20')]===_0x9dc5('0x1f');var _0x496e61=_0x27d4d1['count'];var _0x3cfd7d=_0x30663a?0x0:_0x3272b4[_0x9dc5('0x1e')];var _0x38b54b=_0x30663a?_0x27d4d1[_0x9dc5('0x21')]:_0x3272b4[_0x9dc5('0x1e')]+_0x3272b4['limit'];var _0x18cb01;if(_0x38b54b>=_0x496e61){_0x38b54b=_0x496e61;_0x18cb01=0xc8;}else{_0x18cb01=0xce;}_0x9caed3[_0x9dc5('0x1b')](_0x18cb01);return _0x9caed3[_0x9dc5('0x22')]('Content-Range',_0x3cfd7d+'-'+_0x38b54b+'/'+_0x496e61)['json'](_0x27d4d1);}return null;};}function patchUpdates(_0x116ee9){return function(_0x5cbada){try{jsonpatch[_0x9dc5('0x23')](_0x5cbada,_0x116ee9,!![]);}catch(_0x215488){return BPromise[_0x9dc5('0x24')](_0x215488);}return _0x5cbada[_0x9dc5('0x25')]();};}function saveUpdates(_0x18574f,_0x3bc275){return function(_0x255a93){if(_0x255a93){return _0x255a93[_0x9dc5('0x26')](_0x18574f)['then'](function(_0x14a6c2){return _0x14a6c2;});}return null;};}function removeEntity(_0x4d12ec,_0x3fd2f8){return function(_0x39833f){if(_0x39833f){return _0x39833f['destroy']()[_0x9dc5('0x27')](function(){_0x4d12ec[_0x9dc5('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x52d62a,_0x57b8e3){return function(_0x28277c){if(!_0x28277c){_0x52d62a[_0x9dc5('0x1a')](0x194);}return _0x28277c;};}function handleError(_0x565321,_0x14b22a){_0x14b22a=_0x14b22a||0x1f4;return function(_0x278448){logger[_0x9dc5('0x28')](_0x278448['stack']);if(_0x278448['name']){delete _0x278448['name'];}_0x565321[_0x9dc5('0x1b')](_0x14b22a)['send'](_0x278448);};}exports[_0x9dc5('0x29')]=function(_0x4ab950,_0x522077){var _0x1dff97={},_0x1b545f={},_0x155f15={'count':0x0,'rows':[]};var _0x22e1fb=_[_0x9dc5('0x2a')](db[_0x9dc5('0x2b')]['rawAttributes'],function(_0x12bf86){return{'name':_0x12bf86[_0x9dc5('0x2c')],'type':_0x12bf86[_0x9dc5('0x2d')][_0x9dc5('0x2e')]};});_0x1b545f['model']=_[_0x9dc5('0x2a')](_0x22e1fb,_0x9dc5('0x2f'));_0x1b545f[_0x9dc5('0x30')]=_['keys'](_0x4ab950[_0x9dc5('0x30')]);_0x1b545f['filters']=_['intersection'](_0x1b545f['model'],_0x1b545f[_0x9dc5('0x30')]);_0x1dff97[_0x9dc5('0x31')]=_[_0x9dc5('0x32')](_0x1b545f[_0x9dc5('0x33')],qs[_0x9dc5('0x34')](_0x4ab950[_0x9dc5('0x30')][_0x9dc5('0x34')]));_0x1dff97['attributes']=_0x1dff97[_0x9dc5('0x31')]['length']?_0x1dff97[_0x9dc5('0x31')]:_0x1b545f[_0x9dc5('0x33')];if(!_0x4ab950[_0x9dc5('0x30')]['hasOwnProperty']('nolimit')){_0x1dff97[_0x9dc5('0x20')]=qs['limit'](_0x4ab950['query']['limit']);_0x1dff97[_0x9dc5('0x1e')]=qs['offset'](_0x4ab950['query'][_0x9dc5('0x1e')]);}_0x1dff97[_0x9dc5('0x35')]=qs[_0x9dc5('0x36')](_0x4ab950[_0x9dc5('0x30')]['sort']);_0x1dff97[_0x9dc5('0x37')]=qs[_0x9dc5('0x38')](_['pick'](_0x4ab950[_0x9dc5('0x30')],_0x1b545f['filters']),_0x22e1fb);if(_0x4ab950['query']['filter']){_0x1dff97[_0x9dc5('0x37')]=_['merge'](_0x1dff97[_0x9dc5('0x37')],{'$or':_[_0x9dc5('0x2a')](_0x22e1fb,function(_0x34658c){if(_0x34658c['type']!=='VIRTUAL'){var _0x58abe7={};_0x58abe7[_0x34658c[_0x9dc5('0x2f')]]={'$like':'%'+_0x4ab950[_0x9dc5('0x30')][_0x9dc5('0x39')]+'%'};return _0x58abe7;}})});}_0x1dff97=_[_0x9dc5('0x3a')]({},_0x1dff97,_0x4ab950['options']);var _0x195cfa={'where':_0x1dff97[_0x9dc5('0x37')]};return db['DeskConfiguration'][_0x9dc5('0x21')](_0x195cfa)[_0x9dc5('0x27')](function(_0x38ae73){_0x155f15[_0x9dc5('0x21')]=_0x38ae73;if(_0x4ab950['query'][_0x9dc5('0x3b')]){_0x1dff97[_0x9dc5('0x3c')]=[{'all':!![]}];}return db[_0x9dc5('0x2b')][_0x9dc5('0x3d')](_0x1dff97);})['then'](function(_0x7884e9){_0x155f15[_0x9dc5('0x3e')]=_0x7884e9;return _0x155f15;})[_0x9dc5('0x27')](respondWithFilteredResult(_0x522077,_0x1dff97))[_0x9dc5('0x3f')](handleError(_0x522077,null));};exports[_0x9dc5('0x40')]=function(_0xaa03d1,_0x144849){var _0x6b1d1c={'raw':![],'where':{'id':_0xaa03d1[_0x9dc5('0x41')]['id']}},_0x11b901={};_0x11b901['model']=_['keys'](db[_0x9dc5('0x2b')]['rawAttributes']);_0x11b901[_0x9dc5('0x30')]=_[_0x9dc5('0x42')](_0xaa03d1[_0x9dc5('0x30')]);_0x11b901[_0x9dc5('0x38')]=_['intersection'](_0x11b901['model'],_0x11b901[_0x9dc5('0x30')]);_0x6b1d1c['attributes']=_['intersection'](_0x11b901[_0x9dc5('0x33')],qs[_0x9dc5('0x34')](_0xaa03d1[_0x9dc5('0x30')][_0x9dc5('0x34')]));_0x6b1d1c[_0x9dc5('0x31')]=_0x6b1d1c[_0x9dc5('0x31')][_0x9dc5('0x43')]?_0x6b1d1c[_0x9dc5('0x31')]:_0x11b901[_0x9dc5('0x33')];if(_0xaa03d1[_0x9dc5('0x30')][_0x9dc5('0x3b')]){_0x6b1d1c[_0x9dc5('0x3c')]=[{'all':!![]}];}_0x6b1d1c=_[_0x9dc5('0x3a')]({},_0x6b1d1c,_0xaa03d1['options']);return db['DeskConfiguration'][_0x9dc5('0x44')](_0x6b1d1c)[_0x9dc5('0x27')](handleEntityNotFound(_0x144849,null))[_0x9dc5('0x27')](respondWithResult(_0x144849,null))[_0x9dc5('0x3f')](handleError(_0x144849,null));};exports['create']=function(_0x1bf157,_0xe77850){return db[_0x9dc5('0x2b')][_0x9dc5('0x45')](_0x1bf157['body'],{})['then'](respondWithResult(_0xe77850,0xc9))[_0x9dc5('0x3f')](handleError(_0xe77850,null));};exports[_0x9dc5('0x26')]=function(_0x1be264,_0x1ac6e0){if(_0x1be264[_0x9dc5('0x46')]['id']){delete _0x1be264[_0x9dc5('0x46')]['id'];}return db[_0x9dc5('0x2b')][_0x9dc5('0x44')]({'where':{'id':_0x1be264['params']['id']}})[_0x9dc5('0x27')](handleEntityNotFound(_0x1ac6e0,null))['then'](saveUpdates(_0x1be264[_0x9dc5('0x46')],null))[_0x9dc5('0x27')](respondWithResult(_0x1ac6e0,null))['catch'](handleError(_0x1ac6e0,null));};exports[_0x9dc5('0x47')]=function(_0x2a992f,_0x453501){return db[_0x9dc5('0x2b')][_0x9dc5('0x44')]({'where':{'id':_0x2a992f[_0x9dc5('0x41')]['id']}})[_0x9dc5('0x27')](handleEntityNotFound(_0x453501,null))[_0x9dc5('0x27')](removeEntity(_0x453501,null))[_0x9dc5('0x3f')](handleError(_0x453501,null));};exports[_0x9dc5('0x48')]=function(_0x472f2,_0x217624,_0x23cc98){var _0x4eebab={};var _0x20d0ad={};var _0x2083c1;var _0x5319b4;return db[_0x9dc5('0x2b')]['findOne']({'where':{'id':_0x472f2['params']['id']}})[_0x9dc5('0x27')](handleEntityNotFound(_0x217624,null))[_0x9dc5('0x27')](function(_0x531638){if(_0x531638){_0x2083c1=_0x531638;_0x20d0ad[_0x9dc5('0x33')]=_[_0x9dc5('0x42')](db[_0x9dc5('0x49')][_0x9dc5('0x4a')]);_0x20d0ad['query']=_[_0x9dc5('0x42')](_0x472f2[_0x9dc5('0x30')]);_0x20d0ad[_0x9dc5('0x38')]=_[_0x9dc5('0x32')](_0x20d0ad[_0x9dc5('0x33')],_0x20d0ad[_0x9dc5('0x30')]);_0x4eebab[_0x9dc5('0x31')]=_[_0x9dc5('0x32')](_0x20d0ad[_0x9dc5('0x33')],qs['fields'](_0x472f2[_0x9dc5('0x30')][_0x9dc5('0x34')]));_0x4eebab[_0x9dc5('0x31')]=_0x4eebab[_0x9dc5('0x31')][_0x9dc5('0x43')]?_0x4eebab[_0x9dc5('0x31')]:_0x20d0ad[_0x9dc5('0x33')];_0x4eebab[_0x9dc5('0x35')]=qs[_0x9dc5('0x36')](_0x472f2[_0x9dc5('0x30')]['sort']);_0x4eebab['where']=qs['filters'](_['pick'](_0x472f2['query'],_0x20d0ad[_0x9dc5('0x38')]));if(_0x472f2[_0x9dc5('0x30')][_0x9dc5('0x39')]){_0x4eebab[_0x9dc5('0x37')]=_[_0x9dc5('0x3a')](_0x4eebab[_0x9dc5('0x37')],{'$or':_[_0x9dc5('0x2a')](_0x4eebab[_0x9dc5('0x31')],function(_0xca5c8d){var _0x781e31={};_0x781e31[_0xca5c8d]={'$like':'%'+_0x472f2[_0x9dc5('0x30')][_0x9dc5('0x39')]+'%'};return _0x781e31;})});}_0x4eebab=_[_0x9dc5('0x3a')]({},_0x4eebab,_0x472f2[_0x9dc5('0x4b')]);return _0x2083c1[_0x9dc5('0x48')](_0x4eebab);}})[_0x9dc5('0x27')](function(_0x24602d){if(_0x24602d){_0x5319b4=_0x24602d[_0x9dc5('0x43')];if(!_0x472f2[_0x9dc5('0x30')][_0x9dc5('0x4c')](_0x9dc5('0x4d'))){_0x4eebab['limit']=qs['limit'](_0x472f2[_0x9dc5('0x30')][_0x9dc5('0x20')]);_0x4eebab[_0x9dc5('0x1e')]=qs[_0x9dc5('0x1e')](_0x472f2[_0x9dc5('0x30')]['offset']);}return _0x2083c1[_0x9dc5('0x48')](_0x4eebab);}})[_0x9dc5('0x27')](function(_0x553c7a){if(_0x553c7a){return _0x553c7a?{'count':_0x5319b4,'rows':_0x553c7a}:null;}})[_0x9dc5('0x27')](respondWithResult(_0x217624,null))[_0x9dc5('0x3f')](handleError(_0x217624,null));};exports['getSubjects']=function(_0x48dad8,_0x52a450,_0x1f2fd1){var _0x124000={};var _0x32bc02={};var _0xe15b1;var _0x2af69b;return db[_0x9dc5('0x2b')][_0x9dc5('0x4e')]({'where':{'id':_0x48dad8[_0x9dc5('0x41')]['id']}})[_0x9dc5('0x27')](handleEntityNotFound(_0x52a450,null))[_0x9dc5('0x27')](function(_0x27be9d){if(_0x27be9d){_0xe15b1=_0x27be9d;_0x32bc02[_0x9dc5('0x33')]=_[_0x9dc5('0x42')](db['DeskField'][_0x9dc5('0x4a')]);_0x32bc02['query']=_['keys'](_0x48dad8['query']);_0x32bc02[_0x9dc5('0x38')]=_[_0x9dc5('0x32')](_0x32bc02[_0x9dc5('0x33')],_0x32bc02[_0x9dc5('0x30')]);_0x124000[_0x9dc5('0x31')]=_['intersection'](_0x32bc02[_0x9dc5('0x33')],qs[_0x9dc5('0x34')](_0x48dad8[_0x9dc5('0x30')][_0x9dc5('0x34')]));_0x124000[_0x9dc5('0x31')]=_0x124000[_0x9dc5('0x31')][_0x9dc5('0x43')]?_0x124000['attributes']:_0x32bc02['model'];_0x124000['order']=qs['sort'](_0x48dad8[_0x9dc5('0x30')][_0x9dc5('0x36')]);_0x124000[_0x9dc5('0x37')]=qs['filters'](_[_0x9dc5('0x4f')](_0x48dad8[_0x9dc5('0x30')],_0x32bc02['filters']));if(_0x48dad8[_0x9dc5('0x30')][_0x9dc5('0x39')]){_0x124000[_0x9dc5('0x37')]=_[_0x9dc5('0x3a')](_0x124000['where'],{'$or':_[_0x9dc5('0x2a')](_0x124000[_0x9dc5('0x31')],function(_0x5267af){var _0x4fa68e={};_0x4fa68e[_0x5267af]={'$like':'%'+_0x48dad8['query']['filter']+'%'};return _0x4fa68e;})});}_0x124000=_[_0x9dc5('0x3a')]({},_0x124000,_0x48dad8[_0x9dc5('0x4b')]);return _0xe15b1[_0x9dc5('0x50')](_0x124000);}})[_0x9dc5('0x27')](function(_0x6295bc){if(_0x6295bc){_0x2af69b=_0x6295bc['length'];if(!_0x48dad8[_0x9dc5('0x30')][_0x9dc5('0x4c')](_0x9dc5('0x4d'))){_0x124000[_0x9dc5('0x20')]=qs[_0x9dc5('0x20')](_0x48dad8[_0x9dc5('0x30')][_0x9dc5('0x20')]);_0x124000[_0x9dc5('0x1e')]=qs['offset'](_0x48dad8[_0x9dc5('0x30')][_0x9dc5('0x1e')]);}return _0xe15b1[_0x9dc5('0x50')](_0x124000);}})[_0x9dc5('0x27')](function(_0x4b92dc){if(_0x4b92dc){return _0x4b92dc?{'count':_0x2af69b,'rows':_0x4b92dc}:null;}})[_0x9dc5('0x27')](respondWithResult(_0x52a450,null))[_0x9dc5('0x3f')](handleError(_0x52a450,null));};exports[_0x9dc5('0x51')]=function(_0x3e22ab,_0x2fe21f,_0x2dd6c2){var _0x4d14da={};var _0x3367d0={};var _0x178e0d;var _0x1d7ffd;return db['DeskConfiguration'][_0x9dc5('0x4e')]({'where':{'id':_0x3e22ab['params']['id']}})['then'](handleEntityNotFound(_0x2fe21f,null))['then'](function(_0x39a2b0){if(_0x39a2b0){_0x178e0d=_0x39a2b0;_0x3367d0['model']=_[_0x9dc5('0x42')](db[_0x9dc5('0x49')][_0x9dc5('0x4a')]);_0x3367d0[_0x9dc5('0x30')]=_[_0x9dc5('0x42')](_0x3e22ab[_0x9dc5('0x30')]);_0x3367d0[_0x9dc5('0x38')]=_['intersection'](_0x3367d0[_0x9dc5('0x33')],_0x3367d0['query']);_0x4d14da['attributes']=_[_0x9dc5('0x32')](_0x3367d0[_0x9dc5('0x33')],qs[_0x9dc5('0x34')](_0x3e22ab[_0x9dc5('0x30')][_0x9dc5('0x34')]));_0x4d14da[_0x9dc5('0x31')]=_0x4d14da[_0x9dc5('0x31')]['length']?_0x4d14da[_0x9dc5('0x31')]:_0x3367d0[_0x9dc5('0x33')];_0x4d14da['order']=qs[_0x9dc5('0x36')](_0x3e22ab[_0x9dc5('0x30')][_0x9dc5('0x36')]);_0x4d14da[_0x9dc5('0x37')]=qs[_0x9dc5('0x38')](_[_0x9dc5('0x4f')](_0x3e22ab[_0x9dc5('0x30')],_0x3367d0[_0x9dc5('0x38')]));if(_0x3e22ab[_0x9dc5('0x30')]['filter']){_0x4d14da[_0x9dc5('0x37')]=_[_0x9dc5('0x3a')](_0x4d14da[_0x9dc5('0x37')],{'$or':_[_0x9dc5('0x2a')](_0x4d14da[_0x9dc5('0x31')],function(_0x20df52){var _0xa65489={};_0xa65489[_0x20df52]={'$like':'%'+_0x3e22ab['query']['filter']+'%'};return _0xa65489;})});}_0x4d14da=_[_0x9dc5('0x3a')]({},_0x4d14da,_0x3e22ab['options']);return _0x178e0d['getDescriptions'](_0x4d14da);}})['then'](function(_0x3a804f){if(_0x3a804f){_0x1d7ffd=_0x3a804f[_0x9dc5('0x43')];if(!_0x3e22ab['query'][_0x9dc5('0x4c')]('nolimit')){_0x4d14da[_0x9dc5('0x20')]=qs[_0x9dc5('0x20')](_0x3e22ab[_0x9dc5('0x30')]['limit']);_0x4d14da[_0x9dc5('0x1e')]=qs[_0x9dc5('0x1e')](_0x3e22ab[_0x9dc5('0x30')][_0x9dc5('0x1e')]);}return _0x178e0d[_0x9dc5('0x51')](_0x4d14da);}})[_0x9dc5('0x27')](function(_0x331b1b){if(_0x331b1b){return _0x331b1b?{'count':_0x1d7ffd,'rows':_0x331b1b}:null;}})[_0x9dc5('0x27')](respondWithResult(_0x2fe21f,null))[_0x9dc5('0x3f')](handleError(_0x2fe21f,null));};exports[_0x9dc5('0x52')]=function(_0x3d8493,_0x2f0166,_0x202142){var _0x20f35d={};var _0x33d157={};var _0x2f84a6;var _0x189fdf;return db[_0x9dc5('0x2b')][_0x9dc5('0x4e')]({'where':{'id':_0x3d8493['params']['id']}})[_0x9dc5('0x27')](handleEntityNotFound(_0x2f0166,null))[_0x9dc5('0x27')](function(_0x316638){if(_0x316638){_0x2f84a6=_0x316638;_0x33d157[_0x9dc5('0x33')]=_[_0x9dc5('0x42')](db[_0x9dc5('0x53')][_0x9dc5('0x4a')]);_0x33d157['query']=_[_0x9dc5('0x42')](_0x3d8493[_0x9dc5('0x30')]);_0x33d157[_0x9dc5('0x38')]=_['intersection'](_0x33d157[_0x9dc5('0x33')],_0x33d157[_0x9dc5('0x30')]);_0x20f35d[_0x9dc5('0x31')]=_[_0x9dc5('0x32')](_0x33d157[_0x9dc5('0x33')],qs[_0x9dc5('0x34')](_0x3d8493[_0x9dc5('0x30')][_0x9dc5('0x34')]));_0x20f35d[_0x9dc5('0x31')]=_0x20f35d[_0x9dc5('0x31')][_0x9dc5('0x43')]?_0x20f35d['attributes']:_0x33d157[_0x9dc5('0x33')];_0x20f35d[_0x9dc5('0x35')]=qs[_0x9dc5('0x36')](_0x3d8493['query']['sort']);_0x20f35d[_0x9dc5('0x37')]=qs['filters'](_['pick'](_0x3d8493['query'],_0x33d157['filters']));if(_0x3d8493['query'][_0x9dc5('0x39')]){_0x20f35d['where']=_['merge'](_0x20f35d['where'],{'$or':_[_0x9dc5('0x2a')](_0x20f35d[_0x9dc5('0x31')],function(_0x2599ac){var _0x4377fe={};_0x4377fe[_0x2599ac]={'$like':'%'+_0x3d8493[_0x9dc5('0x30')][_0x9dc5('0x39')]+'%'};return _0x4377fe;})});}_0x20f35d=_[_0x9dc5('0x3a')]({},_0x20f35d,_0x3d8493[_0x9dc5('0x4b')]);return _0x2f84a6[_0x9dc5('0x52')](_0x20f35d);}})[_0x9dc5('0x27')](function(_0x2ee44d){if(_0x2ee44d){_0x189fdf=_0x2ee44d['length'];if(!_0x3d8493[_0x9dc5('0x30')][_0x9dc5('0x4c')](_0x9dc5('0x4d'))){_0x20f35d['limit']=qs['limit'](_0x3d8493['query'][_0x9dc5('0x20')]);_0x20f35d['offset']=qs['offset'](_0x3d8493[_0x9dc5('0x30')][_0x9dc5('0x1e')]);}return _0x2f84a6[_0x9dc5('0x52')](_0x20f35d);}})['then'](function(_0x1a7bf5){if(_0x1a7bf5){return _0x1a7bf5?{'count':_0x189fdf,'rows':_0x1a7bf5}:null;}})['then'](respondWithResult(_0x2f0166,null))[_0x9dc5('0x3f')](handleError(_0x2f0166,null));};exports[_0x9dc5('0x54')]=function(_0x2ba11a,_0x42dc30,_0xcb0075){if(_0x2ba11a[_0x9dc5('0x46')]['id']){delete _0x2ba11a[_0x9dc5('0x46')]['id'];}return db[_0x9dc5('0x2b')][_0x9dc5('0x4e')]({'where':{'id':_0x2ba11a[_0x9dc5('0x41')]['id']}})[_0x9dc5('0x27')](handleEntityNotFound(_0x42dc30,null))['then'](function(_0x470221){if(_0x470221){return _0x470221[_0x9dc5('0x54')](_0x2ba11a[_0x9dc5('0x46')][_0x9dc5('0x55')]||[]);}return null;})['then'](respondWithResult(_0x42dc30,null))['catch'](handleError(_0x42dc30,null));};