ee067fcd6da7dfad67bf0dfca546b6b588286553
[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 _0x9a55=['status','end','offset','undefined','count','limit','set','Content-Range','json','reject','update','destroy','then','error','name','send','map','DeskConfiguration','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','params','find','create','body','getFields','findOne','length','getSubjects','DeskField','getDescriptions','hasOwnProperty','getTags','setTags','ids','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus'];(function(_0x11238d,_0x499ac8){var _0x3686b0=function(_0x1b7cbc){while(--_0x1b7cbc){_0x11238d['push'](_0x11238d['shift']());}};_0x3686b0(++_0x499ac8);}(_0x9a55,0x12d));var _0x59a5=function(_0x21ad57,_0x377618){_0x21ad57=_0x21ad57-0x0;var _0x1a093e=_0x9a55[_0x21ad57];return _0x1a093e;};'use strict';var emlformat=require(_0x59a5('0x0'));var rimraf=require(_0x59a5('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x59a5('0x2'));var rp=require(_0x59a5('0x3'));var moment=require('moment');var BPromise=require(_0x59a5('0x4'));var Mustache=require(_0x59a5('0x5'));var util=require(_0x59a5('0x6'));var path=require(_0x59a5('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x59a5('0x8'));var fs=require('fs');var fs_extra=require(_0x59a5('0x9'));var _=require(_0x59a5('0xa'));var squel=require('squel');var crypto=require(_0x59a5('0xb'));var jsforce=require(_0x59a5('0xc'));var deskjs=require(_0x59a5('0xd'));var toCsv=require(_0x59a5('0xe'));var querystring=require(_0x59a5('0xf'));var Papa=require(_0x59a5('0x10'));var Redis=require('ioredis');var authService=require(_0x59a5('0x11'));var qs=require(_0x59a5('0x12'));var as=require(_0x59a5('0x13'));var hardwareService=require(_0x59a5('0x14'));var logger=require('../../config/logger')(_0x59a5('0x15'));var utils=require(_0x59a5('0x16'));var config=require(_0x59a5('0x17'));var licenseUtil=require(_0x59a5('0x18'));var db=require(_0x59a5('0x19'))['db'];function respondWithStatusCode(_0xcbebd5,_0x595b6b){_0x595b6b=_0x595b6b||0xcc;return function(_0x2b85ec){if(_0x2b85ec){return _0xcbebd5[_0x59a5('0x1a')](_0x595b6b);}return _0xcbebd5[_0x59a5('0x1b')](_0x595b6b)[_0x59a5('0x1c')]();};}function respondWithResult(_0x3ff951,_0x17f375){_0x17f375=_0x17f375||0xc8;return function(_0x4074b3){if(_0x4074b3){return _0x3ff951[_0x59a5('0x1b')](_0x17f375)['json'](_0x4074b3);}};}function respondWithFilteredResult(_0x14eeae,_0x20353b){return function(_0x4c0d19){if(_0x4c0d19){var _0x346296=typeof _0x20353b[_0x59a5('0x1d')]===_0x59a5('0x1e')&&typeof _0x20353b['limit']===_0x59a5('0x1e');var _0x11108b=_0x4c0d19[_0x59a5('0x1f')];var _0x2341fa=_0x346296?0x0:_0x20353b[_0x59a5('0x1d')];var _0x5267fe=_0x346296?_0x4c0d19[_0x59a5('0x1f')]:_0x20353b[_0x59a5('0x1d')]+_0x20353b[_0x59a5('0x20')];var _0x291d07;if(_0x5267fe>=_0x11108b){_0x5267fe=_0x11108b;_0x291d07=0xc8;}else{_0x291d07=0xce;}_0x14eeae[_0x59a5('0x1b')](_0x291d07);return _0x14eeae[_0x59a5('0x21')](_0x59a5('0x22'),_0x2341fa+'-'+_0x5267fe+'/'+_0x11108b)[_0x59a5('0x23')](_0x4c0d19);}return null;};}function patchUpdates(_0x35a5f4){return function(_0x520563){try{jsonpatch['apply'](_0x520563,_0x35a5f4,!![]);}catch(_0xc3d2fb){return BPromise[_0x59a5('0x24')](_0xc3d2fb);}return _0x520563['save']();};}function saveUpdates(_0x3dd7bf,_0x507ad0){return function(_0x4a9877){if(_0x4a9877){return _0x4a9877[_0x59a5('0x25')](_0x3dd7bf)['then'](function(_0x472f5f){return _0x472f5f;});}return null;};}function removeEntity(_0x2c89ed,_0x304549){return function(_0x517ec5){if(_0x517ec5){return _0x517ec5[_0x59a5('0x26')]()[_0x59a5('0x27')](function(){_0x2c89ed['status'](0xcc)[_0x59a5('0x1c')]();});}};}function handleEntityNotFound(_0x388bac,_0x576d6a){return function(_0x2adbaf){if(!_0x2adbaf){_0x388bac[_0x59a5('0x1a')](0x194);}return _0x2adbaf;};}function handleError(_0x3b868c,_0x5b917a){_0x5b917a=_0x5b917a||0x1f4;return function(_0x4c18e7){logger[_0x59a5('0x28')](_0x4c18e7['stack']);if(_0x4c18e7['name']){delete _0x4c18e7[_0x59a5('0x29')];}_0x3b868c[_0x59a5('0x1b')](_0x5b917a)[_0x59a5('0x2a')](_0x4c18e7);};}exports['index']=function(_0x58b2a2,_0x156f22){var _0x23b383={},_0x1e30c8={},_0x222095={'count':0x0,'rows':[]};var _0x3359b4=_[_0x59a5('0x2b')](db[_0x59a5('0x2c')][_0x59a5('0x2d')],function(_0x35da65){return{'name':_0x35da65[_0x59a5('0x2e')],'type':_0x35da65[_0x59a5('0x2f')]['key']};});_0x1e30c8[_0x59a5('0x30')]=_[_0x59a5('0x2b')](_0x3359b4,_0x59a5('0x29'));_0x1e30c8[_0x59a5('0x31')]=_[_0x59a5('0x32')](_0x58b2a2[_0x59a5('0x31')]);_0x1e30c8[_0x59a5('0x33')]=_[_0x59a5('0x34')](_0x1e30c8[_0x59a5('0x30')],_0x1e30c8[_0x59a5('0x31')]);_0x23b383['attributes']=_[_0x59a5('0x34')](_0x1e30c8['model'],qs[_0x59a5('0x35')](_0x58b2a2[_0x59a5('0x31')][_0x59a5('0x35')]));_0x23b383['attributes']=_0x23b383['attributes']['length']?_0x23b383[_0x59a5('0x36')]:_0x1e30c8['model'];if(!_0x58b2a2['query']['hasOwnProperty'](_0x59a5('0x37'))){_0x23b383[_0x59a5('0x20')]=qs[_0x59a5('0x20')](_0x58b2a2[_0x59a5('0x31')][_0x59a5('0x20')]);_0x23b383[_0x59a5('0x1d')]=qs['offset'](_0x58b2a2[_0x59a5('0x31')][_0x59a5('0x1d')]);}_0x23b383[_0x59a5('0x38')]=qs[_0x59a5('0x39')](_0x58b2a2[_0x59a5('0x31')][_0x59a5('0x39')]);_0x23b383[_0x59a5('0x3a')]=qs[_0x59a5('0x33')](_[_0x59a5('0x3b')](_0x58b2a2[_0x59a5('0x31')],_0x1e30c8[_0x59a5('0x33')]),_0x3359b4);if(_0x58b2a2[_0x59a5('0x31')][_0x59a5('0x3c')]){_0x23b383[_0x59a5('0x3a')]=_[_0x59a5('0x3d')](_0x23b383[_0x59a5('0x3a')],{'$or':_[_0x59a5('0x2b')](_0x3359b4,function(_0x2c8e6f){if(_0x2c8e6f['type']!=='VIRTUAL'){var _0xabe20c={};_0xabe20c[_0x2c8e6f[_0x59a5('0x29')]]={'$like':'%'+_0x58b2a2[_0x59a5('0x31')][_0x59a5('0x3c')]+'%'};return _0xabe20c;}})});}_0x23b383=_[_0x59a5('0x3d')]({},_0x23b383,_0x58b2a2[_0x59a5('0x3e')]);var _0x31fed2={'where':_0x23b383[_0x59a5('0x3a')]};return db[_0x59a5('0x2c')][_0x59a5('0x1f')](_0x31fed2)[_0x59a5('0x27')](function(_0x34b6dc){_0x222095[_0x59a5('0x1f')]=_0x34b6dc;if(_0x58b2a2['query'][_0x59a5('0x3f')]){_0x23b383[_0x59a5('0x40')]=[{'all':!![]}];}return db[_0x59a5('0x2c')][_0x59a5('0x41')](_0x23b383);})[_0x59a5('0x27')](function(_0x3c0cc7){_0x222095[_0x59a5('0x42')]=_0x3c0cc7;return _0x222095;})['then'](respondWithFilteredResult(_0x156f22,_0x23b383))[_0x59a5('0x43')](handleError(_0x156f22,null));};exports['show']=function(_0x53c3ef,_0x39c254){var _0xd4790={'raw':![],'where':{'id':_0x53c3ef[_0x59a5('0x44')]['id']}},_0x1a9258={};_0x1a9258['model']=_['keys'](db[_0x59a5('0x2c')][_0x59a5('0x2d')]);_0x1a9258[_0x59a5('0x31')]=_[_0x59a5('0x32')](_0x53c3ef['query']);_0x1a9258[_0x59a5('0x33')]=_[_0x59a5('0x34')](_0x1a9258['model'],_0x1a9258['query']);_0xd4790[_0x59a5('0x36')]=_[_0x59a5('0x34')](_0x1a9258[_0x59a5('0x30')],qs['fields'](_0x53c3ef[_0x59a5('0x31')]['fields']));_0xd4790[_0x59a5('0x36')]=_0xd4790[_0x59a5('0x36')]['length']?_0xd4790['attributes']:_0x1a9258[_0x59a5('0x30')];if(_0x53c3ef[_0x59a5('0x31')]['includeAll']){_0xd4790[_0x59a5('0x40')]=[{'all':!![]}];}_0xd4790=_['merge']({},_0xd4790,_0x53c3ef[_0x59a5('0x3e')]);return db[_0x59a5('0x2c')][_0x59a5('0x45')](_0xd4790)[_0x59a5('0x27')](handleEntityNotFound(_0x39c254,null))[_0x59a5('0x27')](respondWithResult(_0x39c254,null))[_0x59a5('0x43')](handleError(_0x39c254,null));};exports[_0x59a5('0x46')]=function(_0x4620b5,_0x29904c){return db['DeskConfiguration'][_0x59a5('0x46')](_0x4620b5[_0x59a5('0x47')],{})[_0x59a5('0x27')](respondWithResult(_0x29904c,0xc9))[_0x59a5('0x43')](handleError(_0x29904c,null));};exports['update']=function(_0x8353e4,_0x18af6d){if(_0x8353e4[_0x59a5('0x47')]['id']){delete _0x8353e4['body']['id'];}return db[_0x59a5('0x2c')][_0x59a5('0x45')]({'where':{'id':_0x8353e4['params']['id']}})[_0x59a5('0x27')](handleEntityNotFound(_0x18af6d,null))[_0x59a5('0x27')](saveUpdates(_0x8353e4[_0x59a5('0x47')],null))[_0x59a5('0x27')](respondWithResult(_0x18af6d,null))['catch'](handleError(_0x18af6d,null));};exports[_0x59a5('0x26')]=function(_0x43e9b8,_0x4427bf){return db[_0x59a5('0x2c')][_0x59a5('0x45')]({'where':{'id':_0x43e9b8['params']['id']}})['then'](handleEntityNotFound(_0x4427bf,null))['then'](removeEntity(_0x4427bf,null))[_0x59a5('0x43')](handleError(_0x4427bf,null));};exports[_0x59a5('0x48')]=function(_0x3da5ff,_0x4a7964,_0x202da5){var _0x6ce2cc={};var _0x56d9aa={};var _0x132a25;var _0x47dc75;return db[_0x59a5('0x2c')][_0x59a5('0x49')]({'where':{'id':_0x3da5ff['params']['id']}})[_0x59a5('0x27')](handleEntityNotFound(_0x4a7964,null))[_0x59a5('0x27')](function(_0x2fe6a3){if(_0x2fe6a3){_0x132a25=_0x2fe6a3;_0x56d9aa[_0x59a5('0x30')]=_[_0x59a5('0x32')](db['DeskField'][_0x59a5('0x2d')]);_0x56d9aa[_0x59a5('0x31')]=_[_0x59a5('0x32')](_0x3da5ff['query']);_0x56d9aa[_0x59a5('0x33')]=_[_0x59a5('0x34')](_0x56d9aa['model'],_0x56d9aa[_0x59a5('0x31')]);_0x6ce2cc[_0x59a5('0x36')]=_['intersection'](_0x56d9aa[_0x59a5('0x30')],qs[_0x59a5('0x35')](_0x3da5ff[_0x59a5('0x31')][_0x59a5('0x35')]));_0x6ce2cc[_0x59a5('0x36')]=_0x6ce2cc[_0x59a5('0x36')][_0x59a5('0x4a')]?_0x6ce2cc[_0x59a5('0x36')]:_0x56d9aa[_0x59a5('0x30')];_0x6ce2cc['order']=qs[_0x59a5('0x39')](_0x3da5ff[_0x59a5('0x31')][_0x59a5('0x39')]);_0x6ce2cc[_0x59a5('0x3a')]=qs['filters'](_['pick'](_0x3da5ff[_0x59a5('0x31')],_0x56d9aa[_0x59a5('0x33')]));if(_0x3da5ff[_0x59a5('0x31')][_0x59a5('0x3c')]){_0x6ce2cc[_0x59a5('0x3a')]=_['merge'](_0x6ce2cc[_0x59a5('0x3a')],{'$or':_[_0x59a5('0x2b')](_0x6ce2cc[_0x59a5('0x36')],function(_0x54f8b1){var _0x148056={};_0x148056[_0x54f8b1]={'$like':'%'+_0x3da5ff['query']['filter']+'%'};return _0x148056;})});}_0x6ce2cc=_[_0x59a5('0x3d')]({},_0x6ce2cc,_0x3da5ff['options']);return _0x132a25[_0x59a5('0x48')](_0x6ce2cc);}})[_0x59a5('0x27')](function(_0x458ef9){if(_0x458ef9){_0x47dc75=_0x458ef9[_0x59a5('0x4a')];if(!_0x3da5ff[_0x59a5('0x31')]['hasOwnProperty'](_0x59a5('0x37'))){_0x6ce2cc[_0x59a5('0x20')]=qs[_0x59a5('0x20')](_0x3da5ff[_0x59a5('0x31')]['limit']);_0x6ce2cc['offset']=qs[_0x59a5('0x1d')](_0x3da5ff[_0x59a5('0x31')][_0x59a5('0x1d')]);}return _0x132a25[_0x59a5('0x48')](_0x6ce2cc);}})[_0x59a5('0x27')](function(_0x15feaf){if(_0x15feaf){return _0x15feaf?{'count':_0x47dc75,'rows':_0x15feaf}:null;}})['then'](respondWithResult(_0x4a7964,null))['catch'](handleError(_0x4a7964,null));};exports[_0x59a5('0x4b')]=function(_0x49a9cc,_0x1c1351,_0x558465){var _0x8b4867={};var _0x3333c9={};var _0x3ec5ea;var _0x425c1b;return db['DeskConfiguration'][_0x59a5('0x49')]({'where':{'id':_0x49a9cc[_0x59a5('0x44')]['id']}})[_0x59a5('0x27')](handleEntityNotFound(_0x1c1351,null))['then'](function(_0x3fe989){if(_0x3fe989){_0x3ec5ea=_0x3fe989;_0x3333c9[_0x59a5('0x30')]=_['keys'](db[_0x59a5('0x4c')]['rawAttributes']);_0x3333c9[_0x59a5('0x31')]=_[_0x59a5('0x32')](_0x49a9cc[_0x59a5('0x31')]);_0x3333c9['filters']=_[_0x59a5('0x34')](_0x3333c9[_0x59a5('0x30')],_0x3333c9[_0x59a5('0x31')]);_0x8b4867[_0x59a5('0x36')]=_['intersection'](_0x3333c9[_0x59a5('0x30')],qs[_0x59a5('0x35')](_0x49a9cc['query'][_0x59a5('0x35')]));_0x8b4867[_0x59a5('0x36')]=_0x8b4867['attributes']['length']?_0x8b4867[_0x59a5('0x36')]:_0x3333c9[_0x59a5('0x30')];_0x8b4867[_0x59a5('0x38')]=qs[_0x59a5('0x39')](_0x49a9cc[_0x59a5('0x31')][_0x59a5('0x39')]);_0x8b4867[_0x59a5('0x3a')]=qs[_0x59a5('0x33')](_[_0x59a5('0x3b')](_0x49a9cc[_0x59a5('0x31')],_0x3333c9[_0x59a5('0x33')]));if(_0x49a9cc['query'][_0x59a5('0x3c')]){_0x8b4867[_0x59a5('0x3a')]=_[_0x59a5('0x3d')](_0x8b4867[_0x59a5('0x3a')],{'$or':_[_0x59a5('0x2b')](_0x8b4867['attributes'],function(_0x37d454){var _0x229805={};_0x229805[_0x37d454]={'$like':'%'+_0x49a9cc[_0x59a5('0x31')][_0x59a5('0x3c')]+'%'};return _0x229805;})});}_0x8b4867=_[_0x59a5('0x3d')]({},_0x8b4867,_0x49a9cc[_0x59a5('0x3e')]);return _0x3ec5ea[_0x59a5('0x4b')](_0x8b4867);}})[_0x59a5('0x27')](function(_0x37ab11){if(_0x37ab11){_0x425c1b=_0x37ab11[_0x59a5('0x4a')];if(!_0x49a9cc[_0x59a5('0x31')]['hasOwnProperty'](_0x59a5('0x37'))){_0x8b4867['limit']=qs[_0x59a5('0x20')](_0x49a9cc[_0x59a5('0x31')][_0x59a5('0x20')]);_0x8b4867[_0x59a5('0x1d')]=qs[_0x59a5('0x1d')](_0x49a9cc[_0x59a5('0x31')][_0x59a5('0x1d')]);}return _0x3ec5ea['getSubjects'](_0x8b4867);}})[_0x59a5('0x27')](function(_0x1dc1aa){if(_0x1dc1aa){return _0x1dc1aa?{'count':_0x425c1b,'rows':_0x1dc1aa}:null;}})[_0x59a5('0x27')](respondWithResult(_0x1c1351,null))[_0x59a5('0x43')](handleError(_0x1c1351,null));};exports[_0x59a5('0x4d')]=function(_0xd682a6,_0x237b62,_0x18dd40){var _0x7a65ee={};var _0x4ec3cc={};var _0x48571b;var _0x54d0ed;return db[_0x59a5('0x2c')][_0x59a5('0x49')]({'where':{'id':_0xd682a6[_0x59a5('0x44')]['id']}})['then'](handleEntityNotFound(_0x237b62,null))[_0x59a5('0x27')](function(_0x4c0b43){if(_0x4c0b43){_0x48571b=_0x4c0b43;_0x4ec3cc[_0x59a5('0x30')]=_[_0x59a5('0x32')](db['DeskField']['rawAttributes']);_0x4ec3cc[_0x59a5('0x31')]=_['keys'](_0xd682a6[_0x59a5('0x31')]);_0x4ec3cc['filters']=_[_0x59a5('0x34')](_0x4ec3cc[_0x59a5('0x30')],_0x4ec3cc[_0x59a5('0x31')]);_0x7a65ee[_0x59a5('0x36')]=_[_0x59a5('0x34')](_0x4ec3cc[_0x59a5('0x30')],qs['fields'](_0xd682a6[_0x59a5('0x31')]['fields']));_0x7a65ee[_0x59a5('0x36')]=_0x7a65ee[_0x59a5('0x36')][_0x59a5('0x4a')]?_0x7a65ee[_0x59a5('0x36')]:_0x4ec3cc[_0x59a5('0x30')];_0x7a65ee[_0x59a5('0x38')]=qs[_0x59a5('0x39')](_0xd682a6[_0x59a5('0x31')]['sort']);_0x7a65ee['where']=qs[_0x59a5('0x33')](_[_0x59a5('0x3b')](_0xd682a6['query'],_0x4ec3cc[_0x59a5('0x33')]));if(_0xd682a6[_0x59a5('0x31')]['filter']){_0x7a65ee[_0x59a5('0x3a')]=_[_0x59a5('0x3d')](_0x7a65ee[_0x59a5('0x3a')],{'$or':_[_0x59a5('0x2b')](_0x7a65ee[_0x59a5('0x36')],function(_0x4849ee){var _0x165e38={};_0x165e38[_0x4849ee]={'$like':'%'+_0xd682a6[_0x59a5('0x31')][_0x59a5('0x3c')]+'%'};return _0x165e38;})});}_0x7a65ee=_[_0x59a5('0x3d')]({},_0x7a65ee,_0xd682a6[_0x59a5('0x3e')]);return _0x48571b[_0x59a5('0x4d')](_0x7a65ee);}})['then'](function(_0x3b3c9d){if(_0x3b3c9d){_0x54d0ed=_0x3b3c9d[_0x59a5('0x4a')];if(!_0xd682a6[_0x59a5('0x31')][_0x59a5('0x4e')](_0x59a5('0x37'))){_0x7a65ee[_0x59a5('0x20')]=qs[_0x59a5('0x20')](_0xd682a6[_0x59a5('0x31')][_0x59a5('0x20')]);_0x7a65ee['offset']=qs[_0x59a5('0x1d')](_0xd682a6['query'][_0x59a5('0x1d')]);}return _0x48571b[_0x59a5('0x4d')](_0x7a65ee);}})['then'](function(_0x34080a){if(_0x34080a){return _0x34080a?{'count':_0x54d0ed,'rows':_0x34080a}:null;}})[_0x59a5('0x27')](respondWithResult(_0x237b62,null))[_0x59a5('0x43')](handleError(_0x237b62,null));};exports['getTags']=function(_0x5d02e5,_0x3c58e0,_0x3d30c8){var _0x5d9cc7={};var _0x13f4b3={};var _0x2ce436;var _0x820529;return db[_0x59a5('0x2c')][_0x59a5('0x49')]({'where':{'id':_0x5d02e5[_0x59a5('0x44')]['id']}})[_0x59a5('0x27')](handleEntityNotFound(_0x3c58e0,null))[_0x59a5('0x27')](function(_0x353046){if(_0x353046){_0x2ce436=_0x353046;_0x13f4b3['model']=_['keys'](db['Tag'][_0x59a5('0x2d')]);_0x13f4b3[_0x59a5('0x31')]=_[_0x59a5('0x32')](_0x5d02e5[_0x59a5('0x31')]);_0x13f4b3['filters']=_[_0x59a5('0x34')](_0x13f4b3[_0x59a5('0x30')],_0x13f4b3[_0x59a5('0x31')]);_0x5d9cc7[_0x59a5('0x36')]=_['intersection'](_0x13f4b3['model'],qs[_0x59a5('0x35')](_0x5d02e5[_0x59a5('0x31')][_0x59a5('0x35')]));_0x5d9cc7[_0x59a5('0x36')]=_0x5d9cc7[_0x59a5('0x36')][_0x59a5('0x4a')]?_0x5d9cc7[_0x59a5('0x36')]:_0x13f4b3['model'];_0x5d9cc7[_0x59a5('0x38')]=qs['sort'](_0x5d02e5[_0x59a5('0x31')]['sort']);_0x5d9cc7[_0x59a5('0x3a')]=qs[_0x59a5('0x33')](_[_0x59a5('0x3b')](_0x5d02e5['query'],_0x13f4b3[_0x59a5('0x33')]));if(_0x5d02e5[_0x59a5('0x31')][_0x59a5('0x3c')]){_0x5d9cc7['where']=_['merge'](_0x5d9cc7[_0x59a5('0x3a')],{'$or':_['map'](_0x5d9cc7[_0x59a5('0x36')],function(_0x42c340){var _0x2cd8ad={};_0x2cd8ad[_0x42c340]={'$like':'%'+_0x5d02e5[_0x59a5('0x31')][_0x59a5('0x3c')]+'%'};return _0x2cd8ad;})});}_0x5d9cc7=_['merge']({},_0x5d9cc7,_0x5d02e5[_0x59a5('0x3e')]);return _0x2ce436[_0x59a5('0x4f')](_0x5d9cc7);}})['then'](function(_0x31c6a7){if(_0x31c6a7){_0x820529=_0x31c6a7[_0x59a5('0x4a')];if(!_0x5d02e5['query'][_0x59a5('0x4e')](_0x59a5('0x37'))){_0x5d9cc7['limit']=qs[_0x59a5('0x20')](_0x5d02e5[_0x59a5('0x31')][_0x59a5('0x20')]);_0x5d9cc7[_0x59a5('0x1d')]=qs[_0x59a5('0x1d')](_0x5d02e5[_0x59a5('0x31')]['offset']);}return _0x2ce436[_0x59a5('0x4f')](_0x5d9cc7);}})[_0x59a5('0x27')](function(_0x110621){if(_0x110621){return _0x110621?{'count':_0x820529,'rows':_0x110621}:null;}})[_0x59a5('0x27')](respondWithResult(_0x3c58e0,null))[_0x59a5('0x43')](handleError(_0x3c58e0,null));};exports[_0x59a5('0x50')]=function(_0x549cdc,_0x53b5eb,_0xb95110){if(_0x549cdc[_0x59a5('0x47')]['id']){delete _0x549cdc['body']['id'];}return db[_0x59a5('0x2c')]['findOne']({'where':{'id':_0x549cdc['params']['id']}})[_0x59a5('0x27')](handleEntityNotFound(_0x53b5eb,null))[_0x59a5('0x27')](function(_0x2320e2){if(_0x2320e2){return _0x2320e2[_0x59a5('0x50')](_0x549cdc['body'][_0x59a5('0x51')]||[]);}return null;})[_0x59a5('0x27')](respondWithResult(_0x53b5eb,null))['catch'](handleError(_0x53b5eb,null));};