4ffacadb3a16fb7e19fe23c70e6a3cf76f0b0c0a
[motion2.git] / server / api / intZendeskConfiguration / intZendeskConfiguration.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 _0xf5e3=['catch','show','find','create','body','params','getFields','ZendeskField','hasOwnProperty','findOne','getSubjects','getDescriptions','getTags','Tag','setTags','ids','eml-format','zip-dir','fast-json-patch','request-promise','mustache','util','sox','ejs','crypto','jsforce','desk.js','to-csv','querystring','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','json','apply','reject','save','update','destroy','error','stack','name','send','index','map','ZendeskConfiguration','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','length','nolimit','order','sort','where','filters','pick','merge','type','filter','options','then','includeAll','include','findAll','rows'];(function(_0x181398,_0x281eae){var _0x135f1d=function(_0x1f976e){while(--_0x1f976e){_0x181398['push'](_0x181398['shift']());}};_0x135f1d(++_0x281eae);}(_0xf5e3,0x1af));var _0x3f5e=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0xf5e3[_0x397e5f];return _0x5302b8;};'use strict';var emlformat=require(_0x3f5e('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x3f5e('0x1'));var jsonpatch=require(_0x3f5e('0x2'));var rp=require(_0x3f5e('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x3f5e('0x4'));var util=require(_0x3f5e('0x5'));var path=require('path');var sox=require(_0x3f5e('0x6'));var csv=require('to-csv');var ejs=require(_0x3f5e('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x3f5e('0x8'));var jsforce=require(_0x3f5e('0x9'));var deskjs=require(_0x3f5e('0xa'));var toCsv=require(_0x3f5e('0xb'));var querystring=require(_0x3f5e('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x3f5e('0xd'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3f5e('0xe'));var logger=require(_0x3f5e('0xf'))('api');var utils=require(_0x3f5e('0x10'));var config=require(_0x3f5e('0x11'));var licenseUtil=require(_0x3f5e('0x12'));var db=require(_0x3f5e('0x13'))['db'];function respondWithStatusCode(_0x210bb5,_0x2bf439){_0x2bf439=_0x2bf439||0xcc;return function(_0x28d8ae){if(_0x28d8ae){return _0x210bb5[_0x3f5e('0x14')](_0x2bf439);}return _0x210bb5[_0x3f5e('0x15')](_0x2bf439)[_0x3f5e('0x16')]();};}function respondWithResult(_0x3384dc,_0x15d3a6){_0x15d3a6=_0x15d3a6||0xc8;return function(_0x183a26){if(_0x183a26){return _0x3384dc[_0x3f5e('0x15')](_0x15d3a6)['json'](_0x183a26);}};}function respondWithFilteredResult(_0x36a7ae,_0x396447){return function(_0x5631e8){if(_0x5631e8){var _0x49b451=typeof _0x396447[_0x3f5e('0x17')]==='undefined'&&typeof _0x396447[_0x3f5e('0x18')]===_0x3f5e('0x19');var _0x2c2da1=_0x5631e8['count'];var _0x437895=_0x49b451?0x0:_0x396447[_0x3f5e('0x17')];var _0x39e8eb=_0x49b451?_0x5631e8[_0x3f5e('0x1a')]:_0x396447[_0x3f5e('0x17')]+_0x396447['limit'];var _0x3a33f5;if(_0x39e8eb>=_0x2c2da1){_0x39e8eb=_0x2c2da1;_0x3a33f5=0xc8;}else{_0x3a33f5=0xce;}_0x36a7ae['status'](_0x3a33f5);return _0x36a7ae[_0x3f5e('0x1b')](_0x3f5e('0x1c'),_0x437895+'-'+_0x39e8eb+'/'+_0x2c2da1)[_0x3f5e('0x1d')](_0x5631e8);}return null;};}function patchUpdates(_0x50bfbb){return function(_0x2d81ca){try{jsonpatch[_0x3f5e('0x1e')](_0x2d81ca,_0x50bfbb,!![]);}catch(_0x1b171d){return BPromise[_0x3f5e('0x1f')](_0x1b171d);}return _0x2d81ca[_0x3f5e('0x20')]();};}function saveUpdates(_0x5043b2,_0x4c9097){return function(_0x156c01){if(_0x156c01){return _0x156c01[_0x3f5e('0x21')](_0x5043b2)['then'](function(_0x3cfe84){return _0x3cfe84;});}return null;};}function removeEntity(_0x50f6b1,_0x1df7cb){return function(_0x3d479c){if(_0x3d479c){return _0x3d479c[_0x3f5e('0x22')]()['then'](function(){_0x50f6b1[_0x3f5e('0x15')](0xcc)[_0x3f5e('0x16')]();});}};}function handleEntityNotFound(_0x2c1192,_0x5641e8){return function(_0x21fc55){if(!_0x21fc55){_0x2c1192[_0x3f5e('0x14')](0x194);}return _0x21fc55;};}function handleError(_0x5d4d36,_0x10f617){_0x10f617=_0x10f617||0x1f4;return function(_0xb8e39){logger[_0x3f5e('0x23')](_0xb8e39[_0x3f5e('0x24')]);if(_0xb8e39[_0x3f5e('0x25')]){delete _0xb8e39[_0x3f5e('0x25')];}_0x5d4d36['status'](_0x10f617)[_0x3f5e('0x26')](_0xb8e39);};}exports[_0x3f5e('0x27')]=function(_0x2c3008,_0x548e76){var _0x2fe68b={},_0x409873={},_0x456e49={'count':0x0,'rows':[]};var _0x69a9b0=_[_0x3f5e('0x28')](db[_0x3f5e('0x29')][_0x3f5e('0x2a')],function(_0x574a2c){return{'name':_0x574a2c[_0x3f5e('0x2b')],'type':_0x574a2c['type'][_0x3f5e('0x2c')]};});_0x409873[_0x3f5e('0x2d')]=_[_0x3f5e('0x28')](_0x69a9b0,'name');_0x409873[_0x3f5e('0x2e')]=_[_0x3f5e('0x2f')](_0x2c3008[_0x3f5e('0x2e')]);_0x409873['filters']=_[_0x3f5e('0x30')](_0x409873[_0x3f5e('0x2d')],_0x409873[_0x3f5e('0x2e')]);_0x2fe68b[_0x3f5e('0x31')]=_[_0x3f5e('0x30')](_0x409873['model'],qs['fields'](_0x2c3008['query'][_0x3f5e('0x32')]));_0x2fe68b[_0x3f5e('0x31')]=_0x2fe68b['attributes'][_0x3f5e('0x33')]?_0x2fe68b[_0x3f5e('0x31')]:_0x409873[_0x3f5e('0x2d')];if(!_0x2c3008[_0x3f5e('0x2e')]['hasOwnProperty'](_0x3f5e('0x34'))){_0x2fe68b['limit']=qs[_0x3f5e('0x18')](_0x2c3008[_0x3f5e('0x2e')]['limit']);_0x2fe68b['offset']=qs[_0x3f5e('0x17')](_0x2c3008[_0x3f5e('0x2e')]['offset']);}_0x2fe68b[_0x3f5e('0x35')]=qs['sort'](_0x2c3008[_0x3f5e('0x2e')][_0x3f5e('0x36')]);_0x2fe68b[_0x3f5e('0x37')]=qs[_0x3f5e('0x38')](_[_0x3f5e('0x39')](_0x2c3008[_0x3f5e('0x2e')],_0x409873[_0x3f5e('0x38')]),_0x69a9b0);if(_0x2c3008[_0x3f5e('0x2e')]['filter']){_0x2fe68b[_0x3f5e('0x37')]=_[_0x3f5e('0x3a')](_0x2fe68b['where'],{'$or':_[_0x3f5e('0x28')](_0x69a9b0,function(_0x7bdc8a){if(_0x7bdc8a[_0x3f5e('0x3b')]!=='VIRTUAL'){var _0x1d61a9={};_0x1d61a9[_0x7bdc8a[_0x3f5e('0x25')]]={'$like':'%'+_0x2c3008['query'][_0x3f5e('0x3c')]+'%'};return _0x1d61a9;}})});}_0x2fe68b=_[_0x3f5e('0x3a')]({},_0x2fe68b,_0x2c3008[_0x3f5e('0x3d')]);var _0x5c49ca={'where':_0x2fe68b[_0x3f5e('0x37')]};return db[_0x3f5e('0x29')][_0x3f5e('0x1a')](_0x5c49ca)[_0x3f5e('0x3e')](function(_0x30a3ed){_0x456e49[_0x3f5e('0x1a')]=_0x30a3ed;if(_0x2c3008[_0x3f5e('0x2e')][_0x3f5e('0x3f')]){_0x2fe68b[_0x3f5e('0x40')]=[{'all':!![]}];}return db[_0x3f5e('0x29')][_0x3f5e('0x41')](_0x2fe68b);})[_0x3f5e('0x3e')](function(_0xfd8b83){_0x456e49[_0x3f5e('0x42')]=_0xfd8b83;return _0x456e49;})[_0x3f5e('0x3e')](respondWithFilteredResult(_0x548e76,_0x2fe68b))[_0x3f5e('0x43')](handleError(_0x548e76,null));};exports[_0x3f5e('0x44')]=function(_0x4c954a,_0x59c75f){var _0x1e40a4={'raw':![],'where':{'id':_0x4c954a['params']['id']}},_0x31cd83={};_0x31cd83[_0x3f5e('0x2d')]=_[_0x3f5e('0x2f')](db['ZendeskConfiguration'][_0x3f5e('0x2a')]);_0x31cd83[_0x3f5e('0x2e')]=_[_0x3f5e('0x2f')](_0x4c954a[_0x3f5e('0x2e')]);_0x31cd83['filters']=_[_0x3f5e('0x30')](_0x31cd83['model'],_0x31cd83['query']);_0x1e40a4['attributes']=_[_0x3f5e('0x30')](_0x31cd83['model'],qs[_0x3f5e('0x32')](_0x4c954a[_0x3f5e('0x2e')][_0x3f5e('0x32')]));_0x1e40a4[_0x3f5e('0x31')]=_0x1e40a4[_0x3f5e('0x31')][_0x3f5e('0x33')]?_0x1e40a4[_0x3f5e('0x31')]:_0x31cd83['model'];if(_0x4c954a['query']['includeAll']){_0x1e40a4[_0x3f5e('0x40')]=[{'all':!![]}];}_0x1e40a4=_['merge']({},_0x1e40a4,_0x4c954a[_0x3f5e('0x3d')]);return db['ZendeskConfiguration'][_0x3f5e('0x45')](_0x1e40a4)[_0x3f5e('0x3e')](handleEntityNotFound(_0x59c75f,null))[_0x3f5e('0x3e')](respondWithResult(_0x59c75f,null))[_0x3f5e('0x43')](handleError(_0x59c75f,null));};exports[_0x3f5e('0x46')]=function(_0x484cf3,_0x287548){return db['ZendeskConfiguration'][_0x3f5e('0x46')](_0x484cf3[_0x3f5e('0x47')],{})[_0x3f5e('0x3e')](respondWithResult(_0x287548,0xc9))[_0x3f5e('0x43')](handleError(_0x287548,null));};exports[_0x3f5e('0x21')]=function(_0x5fd4b,_0x4dbcb5){if(_0x5fd4b['body']['id']){delete _0x5fd4b[_0x3f5e('0x47')]['id'];}return db['ZendeskConfiguration'][_0x3f5e('0x45')]({'where':{'id':_0x5fd4b['params']['id']}})[_0x3f5e('0x3e')](handleEntityNotFound(_0x4dbcb5,null))['then'](saveUpdates(_0x5fd4b[_0x3f5e('0x47')],null))[_0x3f5e('0x3e')](respondWithResult(_0x4dbcb5,null))[_0x3f5e('0x43')](handleError(_0x4dbcb5,null));};exports[_0x3f5e('0x22')]=function(_0x33987f,_0x192f40){return db[_0x3f5e('0x29')][_0x3f5e('0x45')]({'where':{'id':_0x33987f[_0x3f5e('0x48')]['id']}})['then'](handleEntityNotFound(_0x192f40,null))[_0x3f5e('0x3e')](removeEntity(_0x192f40,null))[_0x3f5e('0x43')](handleError(_0x192f40,null));};exports[_0x3f5e('0x49')]=function(_0x3b6485,_0x2d1616,_0x375352){var _0x50a446={};var _0x52bba8={};var _0xe3195a;var _0x5eaba9;return db['ZendeskConfiguration']['findOne']({'where':{'id':_0x3b6485['params']['id']}})[_0x3f5e('0x3e')](handleEntityNotFound(_0x2d1616,null))['then'](function(_0x1b2b01){if(_0x1b2b01){_0xe3195a=_0x1b2b01;_0x52bba8[_0x3f5e('0x2d')]=_[_0x3f5e('0x2f')](db[_0x3f5e('0x4a')][_0x3f5e('0x2a')]);_0x52bba8[_0x3f5e('0x2e')]=_[_0x3f5e('0x2f')](_0x3b6485['query']);_0x52bba8[_0x3f5e('0x38')]=_[_0x3f5e('0x30')](_0x52bba8[_0x3f5e('0x2d')],_0x52bba8[_0x3f5e('0x2e')]);_0x50a446[_0x3f5e('0x31')]=_[_0x3f5e('0x30')](_0x52bba8[_0x3f5e('0x2d')],qs['fields'](_0x3b6485['query']['fields']));_0x50a446[_0x3f5e('0x31')]=_0x50a446['attributes'][_0x3f5e('0x33')]?_0x50a446['attributes']:_0x52bba8[_0x3f5e('0x2d')];_0x50a446['order']=qs[_0x3f5e('0x36')](_0x3b6485[_0x3f5e('0x2e')]['sort']);_0x50a446[_0x3f5e('0x37')]=qs[_0x3f5e('0x38')](_['pick'](_0x3b6485['query'],_0x52bba8[_0x3f5e('0x38')]));if(_0x3b6485['query']['filter']){_0x50a446[_0x3f5e('0x37')]=_[_0x3f5e('0x3a')](_0x50a446['where'],{'$or':_[_0x3f5e('0x28')](_0x50a446[_0x3f5e('0x31')],function(_0x53168f){var _0x13f4a5={};_0x13f4a5[_0x53168f]={'$like':'%'+_0x3b6485[_0x3f5e('0x2e')][_0x3f5e('0x3c')]+'%'};return _0x13f4a5;})});}_0x50a446=_[_0x3f5e('0x3a')]({},_0x50a446,_0x3b6485[_0x3f5e('0x3d')]);return _0xe3195a[_0x3f5e('0x49')](_0x50a446);}})[_0x3f5e('0x3e')](function(_0x3df67a){if(_0x3df67a){_0x5eaba9=_0x3df67a[_0x3f5e('0x33')];if(!_0x3b6485[_0x3f5e('0x2e')][_0x3f5e('0x4b')](_0x3f5e('0x34'))){_0x50a446['limit']=qs[_0x3f5e('0x18')](_0x3b6485[_0x3f5e('0x2e')][_0x3f5e('0x18')]);_0x50a446[_0x3f5e('0x17')]=qs[_0x3f5e('0x17')](_0x3b6485['query'][_0x3f5e('0x17')]);}return _0xe3195a[_0x3f5e('0x49')](_0x50a446);}})[_0x3f5e('0x3e')](function(_0x385d67){if(_0x385d67){return _0x385d67?{'count':_0x5eaba9,'rows':_0x385d67}:null;}})[_0x3f5e('0x3e')](respondWithResult(_0x2d1616,null))[_0x3f5e('0x43')](handleError(_0x2d1616,null));};exports['getSubjects']=function(_0x88d0e0,_0x364aef,_0x4b519f){var _0x34d8c8={};var _0x59f064={};var _0x648db4;var _0x5f0705;return db[_0x3f5e('0x29')][_0x3f5e('0x4c')]({'where':{'id':_0x88d0e0['params']['id']}})[_0x3f5e('0x3e')](handleEntityNotFound(_0x364aef,null))[_0x3f5e('0x3e')](function(_0x387a5b){if(_0x387a5b){_0x648db4=_0x387a5b;_0x59f064['model']=_[_0x3f5e('0x2f')](db[_0x3f5e('0x4a')][_0x3f5e('0x2a')]);_0x59f064[_0x3f5e('0x2e')]=_[_0x3f5e('0x2f')](_0x88d0e0[_0x3f5e('0x2e')]);_0x59f064[_0x3f5e('0x38')]=_[_0x3f5e('0x30')](_0x59f064[_0x3f5e('0x2d')],_0x59f064[_0x3f5e('0x2e')]);_0x34d8c8[_0x3f5e('0x31')]=_[_0x3f5e('0x30')](_0x59f064[_0x3f5e('0x2d')],qs[_0x3f5e('0x32')](_0x88d0e0[_0x3f5e('0x2e')][_0x3f5e('0x32')]));_0x34d8c8[_0x3f5e('0x31')]=_0x34d8c8[_0x3f5e('0x31')][_0x3f5e('0x33')]?_0x34d8c8[_0x3f5e('0x31')]:_0x59f064['model'];_0x34d8c8[_0x3f5e('0x35')]=qs[_0x3f5e('0x36')](_0x88d0e0[_0x3f5e('0x2e')]['sort']);_0x34d8c8[_0x3f5e('0x37')]=qs[_0x3f5e('0x38')](_[_0x3f5e('0x39')](_0x88d0e0['query'],_0x59f064[_0x3f5e('0x38')]));if(_0x88d0e0['query'][_0x3f5e('0x3c')]){_0x34d8c8[_0x3f5e('0x37')]=_[_0x3f5e('0x3a')](_0x34d8c8['where'],{'$or':_['map'](_0x34d8c8[_0x3f5e('0x31')],function(_0x10aa09){var _0x1876b2={};_0x1876b2[_0x10aa09]={'$like':'%'+_0x88d0e0[_0x3f5e('0x2e')][_0x3f5e('0x3c')]+'%'};return _0x1876b2;})});}_0x34d8c8=_[_0x3f5e('0x3a')]({},_0x34d8c8,_0x88d0e0[_0x3f5e('0x3d')]);return _0x648db4[_0x3f5e('0x4d')](_0x34d8c8);}})['then'](function(_0x42b3e8){if(_0x42b3e8){_0x5f0705=_0x42b3e8[_0x3f5e('0x33')];if(!_0x88d0e0['query'][_0x3f5e('0x4b')](_0x3f5e('0x34'))){_0x34d8c8[_0x3f5e('0x18')]=qs[_0x3f5e('0x18')](_0x88d0e0[_0x3f5e('0x2e')][_0x3f5e('0x18')]);_0x34d8c8[_0x3f5e('0x17')]=qs[_0x3f5e('0x17')](_0x88d0e0[_0x3f5e('0x2e')][_0x3f5e('0x17')]);}return _0x648db4[_0x3f5e('0x4d')](_0x34d8c8);}})[_0x3f5e('0x3e')](function(_0x2dc1d1){if(_0x2dc1d1){return _0x2dc1d1?{'count':_0x5f0705,'rows':_0x2dc1d1}:null;}})['then'](respondWithResult(_0x364aef,null))[_0x3f5e('0x43')](handleError(_0x364aef,null));};exports[_0x3f5e('0x4e')]=function(_0x46ae23,_0x59aa3c,_0x1809b2){var _0x411c66={};var _0x3642cd={};var _0x16739b;var _0x1fcb39;return db[_0x3f5e('0x29')][_0x3f5e('0x4c')]({'where':{'id':_0x46ae23['params']['id']}})['then'](handleEntityNotFound(_0x59aa3c,null))['then'](function(_0x573399){if(_0x573399){_0x16739b=_0x573399;_0x3642cd[_0x3f5e('0x2d')]=_[_0x3f5e('0x2f')](db[_0x3f5e('0x4a')][_0x3f5e('0x2a')]);_0x3642cd[_0x3f5e('0x2e')]=_['keys'](_0x46ae23[_0x3f5e('0x2e')]);_0x3642cd[_0x3f5e('0x38')]=_[_0x3f5e('0x30')](_0x3642cd[_0x3f5e('0x2d')],_0x3642cd[_0x3f5e('0x2e')]);_0x411c66[_0x3f5e('0x31')]=_['intersection'](_0x3642cd['model'],qs[_0x3f5e('0x32')](_0x46ae23[_0x3f5e('0x2e')][_0x3f5e('0x32')]));_0x411c66[_0x3f5e('0x31')]=_0x411c66['attributes'][_0x3f5e('0x33')]?_0x411c66[_0x3f5e('0x31')]:_0x3642cd[_0x3f5e('0x2d')];_0x411c66[_0x3f5e('0x35')]=qs['sort'](_0x46ae23[_0x3f5e('0x2e')][_0x3f5e('0x36')]);_0x411c66[_0x3f5e('0x37')]=qs[_0x3f5e('0x38')](_['pick'](_0x46ae23[_0x3f5e('0x2e')],_0x3642cd[_0x3f5e('0x38')]));if(_0x46ae23[_0x3f5e('0x2e')][_0x3f5e('0x3c')]){_0x411c66[_0x3f5e('0x37')]=_[_0x3f5e('0x3a')](_0x411c66[_0x3f5e('0x37')],{'$or':_[_0x3f5e('0x28')](_0x411c66[_0x3f5e('0x31')],function(_0x26411c){var _0x5993d1={};_0x5993d1[_0x26411c]={'$like':'%'+_0x46ae23[_0x3f5e('0x2e')]['filter']+'%'};return _0x5993d1;})});}_0x411c66=_[_0x3f5e('0x3a')]({},_0x411c66,_0x46ae23['options']);return _0x16739b[_0x3f5e('0x4e')](_0x411c66);}})[_0x3f5e('0x3e')](function(_0x1d6912){if(_0x1d6912){_0x1fcb39=_0x1d6912[_0x3f5e('0x33')];if(!_0x46ae23['query'][_0x3f5e('0x4b')](_0x3f5e('0x34'))){_0x411c66[_0x3f5e('0x18')]=qs[_0x3f5e('0x18')](_0x46ae23['query'][_0x3f5e('0x18')]);_0x411c66['offset']=qs[_0x3f5e('0x17')](_0x46ae23[_0x3f5e('0x2e')][_0x3f5e('0x17')]);}return _0x16739b[_0x3f5e('0x4e')](_0x411c66);}})[_0x3f5e('0x3e')](function(_0x4ef1f7){if(_0x4ef1f7){return _0x4ef1f7?{'count':_0x1fcb39,'rows':_0x4ef1f7}:null;}})[_0x3f5e('0x3e')](respondWithResult(_0x59aa3c,null))['catch'](handleError(_0x59aa3c,null));};exports[_0x3f5e('0x4f')]=function(_0x46e3ed,_0x592229,_0x538198){var _0x55a32d={};var _0x57508d={};var _0x4f8805;var _0x3c4f83;return db[_0x3f5e('0x29')][_0x3f5e('0x4c')]({'where':{'id':_0x46e3ed[_0x3f5e('0x48')]['id']}})[_0x3f5e('0x3e')](handleEntityNotFound(_0x592229,null))[_0x3f5e('0x3e')](function(_0x1c9647){if(_0x1c9647){_0x4f8805=_0x1c9647;_0x57508d[_0x3f5e('0x2d')]=_[_0x3f5e('0x2f')](db[_0x3f5e('0x50')][_0x3f5e('0x2a')]);_0x57508d[_0x3f5e('0x2e')]=_['keys'](_0x46e3ed[_0x3f5e('0x2e')]);_0x57508d[_0x3f5e('0x38')]=_[_0x3f5e('0x30')](_0x57508d[_0x3f5e('0x2d')],_0x57508d[_0x3f5e('0x2e')]);_0x55a32d[_0x3f5e('0x31')]=_[_0x3f5e('0x30')](_0x57508d[_0x3f5e('0x2d')],qs[_0x3f5e('0x32')](_0x46e3ed[_0x3f5e('0x2e')][_0x3f5e('0x32')]));_0x55a32d[_0x3f5e('0x31')]=_0x55a32d[_0x3f5e('0x31')]['length']?_0x55a32d[_0x3f5e('0x31')]:_0x57508d['model'];_0x55a32d['order']=qs[_0x3f5e('0x36')](_0x46e3ed[_0x3f5e('0x2e')][_0x3f5e('0x36')]);_0x55a32d[_0x3f5e('0x37')]=qs[_0x3f5e('0x38')](_['pick'](_0x46e3ed['query'],_0x57508d[_0x3f5e('0x38')]));if(_0x46e3ed[_0x3f5e('0x2e')]['filter']){_0x55a32d[_0x3f5e('0x37')]=_[_0x3f5e('0x3a')](_0x55a32d['where'],{'$or':_[_0x3f5e('0x28')](_0x55a32d[_0x3f5e('0x31')],function(_0x5ccfc8){var _0x2aba73={};_0x2aba73[_0x5ccfc8]={'$like':'%'+_0x46e3ed[_0x3f5e('0x2e')]['filter']+'%'};return _0x2aba73;})});}_0x55a32d=_['merge']({},_0x55a32d,_0x46e3ed['options']);return _0x4f8805[_0x3f5e('0x4f')](_0x55a32d);}})['then'](function(_0x56e223){if(_0x56e223){_0x3c4f83=_0x56e223['length'];if(!_0x46e3ed[_0x3f5e('0x2e')][_0x3f5e('0x4b')]('nolimit')){_0x55a32d[_0x3f5e('0x18')]=qs[_0x3f5e('0x18')](_0x46e3ed[_0x3f5e('0x2e')][_0x3f5e('0x18')]);_0x55a32d[_0x3f5e('0x17')]=qs[_0x3f5e('0x17')](_0x46e3ed[_0x3f5e('0x2e')][_0x3f5e('0x17')]);}return _0x4f8805['getTags'](_0x55a32d);}})[_0x3f5e('0x3e')](function(_0x41573d){if(_0x41573d){return _0x41573d?{'count':_0x3c4f83,'rows':_0x41573d}:null;}})[_0x3f5e('0x3e')](respondWithResult(_0x592229,null))['catch'](handleError(_0x592229,null));};exports[_0x3f5e('0x51')]=function(_0x384673,_0x66d003,_0x4fb326){if(_0x384673[_0x3f5e('0x47')]['id']){delete _0x384673[_0x3f5e('0x47')]['id'];}return db[_0x3f5e('0x29')][_0x3f5e('0x4c')]({'where':{'id':_0x384673[_0x3f5e('0x48')]['id']}})['then'](handleEntityNotFound(_0x66d003,null))[_0x3f5e('0x3e')](function(_0x24f52f){if(_0x24f52f){return _0x24f52f[_0x3f5e('0x51')](_0x384673[_0x3f5e('0x47')][_0x3f5e('0x52')]||[]);}return null;})[_0x3f5e('0x3e')](respondWithResult(_0x66d003,null))[_0x3f5e('0x43')](handleError(_0x66d003,null));};