8a4d295ed5647722af12fcad525c2490abfa2bcd
[motion2.git] / server / api / intFreshdeskConfiguration / intFreshdeskConfiguration.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 _0xba93=['type','key','model','query','keys','filters','intersection','attributes','fields','nolimit','order','sort','pick','merge','where','VIRTUAL','filter','options','includeAll','findAll','rows','params','length','include','find','catch','create','body','getFields','FreshdeskField','hasOwnProperty','getSubjects','findOne','getDescriptions','getTags','setTags','ids','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','ejs','fs-extra','squel','crypto','jsforce','to-csv','querystring','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','limit','undefined','offset','count','set','Content-Range','apply','save','update','then','destroy','end','error','name','send','index','map','FreshdeskConfiguration','rawAttributes','fieldName'];(function(_0xffa198,_0x5a8940){var _0x1e4b50=function(_0x1f1c43){while(--_0x1f1c43){_0xffa198['push'](_0xffa198['shift']());}};_0x1e4b50(++_0x5a8940);}(_0xba93,0x175));var _0x3ba9=function(_0x2ec146,_0x400f65){_0x2ec146=_0x2ec146-0x0;var _0x28361e=_0xba93[_0x2ec146];return _0x28361e;};'use strict';var emlformat=require(_0x3ba9('0x0'));var rimraf=require(_0x3ba9('0x1'));var zipdir=require(_0x3ba9('0x2'));var jsonpatch=require(_0x3ba9('0x3'));var rp=require(_0x3ba9('0x4'));var moment=require(_0x3ba9('0x5'));var BPromise=require(_0x3ba9('0x6'));var Mustache=require(_0x3ba9('0x7'));var util=require('util');var path=require(_0x3ba9('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x3ba9('0x9'));var fs=require('fs');var fs_extra=require(_0x3ba9('0xa'));var _=require('lodash');var squel=require(_0x3ba9('0xb'));var crypto=require(_0x3ba9('0xc'));var jsforce=require(_0x3ba9('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x3ba9('0xe'));var querystring=require(_0x3ba9('0xf'));var Papa=require('papaparse');var Redis=require(_0x3ba9('0x10'));var authService=require(_0x3ba9('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3ba9('0x12'));var logger=require(_0x3ba9('0x13'))(_0x3ba9('0x14'));var utils=require(_0x3ba9('0x15'));var config=require(_0x3ba9('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x3ba9('0x17'))['db'];function respondWithStatusCode(_0x2bea9a,_0x4e0415){_0x4e0415=_0x4e0415||0xcc;return function(_0x1840d2){if(_0x1840d2){return _0x2bea9a[_0x3ba9('0x18')](_0x4e0415);}return _0x2bea9a[_0x3ba9('0x19')](_0x4e0415)['end']();};}function respondWithResult(_0x33819a,_0x3e494c){_0x3e494c=_0x3e494c||0xc8;return function(_0x1da076){if(_0x1da076){return _0x33819a[_0x3ba9('0x19')](_0x3e494c)[_0x3ba9('0x1a')](_0x1da076);}};}function respondWithFilteredResult(_0x8ed758,_0x1e6f83){return function(_0x2adad5){if(_0x2adad5){var _0x12f093=typeof _0x1e6f83['offset']==='undefined'&&typeof _0x1e6f83[_0x3ba9('0x1b')]===_0x3ba9('0x1c');var _0x520026=_0x2adad5['count'];var _0xabebf1=_0x12f093?0x0:_0x1e6f83[_0x3ba9('0x1d')];var _0x47b22a=_0x12f093?_0x2adad5[_0x3ba9('0x1e')]:_0x1e6f83[_0x3ba9('0x1d')]+_0x1e6f83['limit'];var _0x58849d;if(_0x47b22a>=_0x520026){_0x47b22a=_0x520026;_0x58849d=0xc8;}else{_0x58849d=0xce;}_0x8ed758[_0x3ba9('0x19')](_0x58849d);return _0x8ed758[_0x3ba9('0x1f')](_0x3ba9('0x20'),_0xabebf1+'-'+_0x47b22a+'/'+_0x520026)[_0x3ba9('0x1a')](_0x2adad5);}return null;};}function patchUpdates(_0x3758bb){return function(_0x5f337d){try{jsonpatch[_0x3ba9('0x21')](_0x5f337d,_0x3758bb,!![]);}catch(_0x3d75e0){return BPromise['reject'](_0x3d75e0);}return _0x5f337d[_0x3ba9('0x22')]();};}function saveUpdates(_0x4caefd,_0x271b36){return function(_0x475db0){if(_0x475db0){return _0x475db0[_0x3ba9('0x23')](_0x4caefd)[_0x3ba9('0x24')](function(_0x1ac167){return _0x1ac167;});}return null;};}function removeEntity(_0x3a286d,_0x261de6){return function(_0x47afd5){if(_0x47afd5){return _0x47afd5[_0x3ba9('0x25')]()['then'](function(){_0x3a286d['status'](0xcc)[_0x3ba9('0x26')]();});}};}function handleEntityNotFound(_0x42e324,_0x3c3e14){return function(_0x30a52){if(!_0x30a52){_0x42e324[_0x3ba9('0x18')](0x194);}return _0x30a52;};}function handleError(_0x574711,_0x39461a){_0x39461a=_0x39461a||0x1f4;return function(_0x1bfa98){logger[_0x3ba9('0x27')](_0x1bfa98['stack']);if(_0x1bfa98[_0x3ba9('0x28')]){delete _0x1bfa98[_0x3ba9('0x28')];}_0x574711['status'](_0x39461a)[_0x3ba9('0x29')](_0x1bfa98);};}exports[_0x3ba9('0x2a')]=function(_0x93e934,_0x57a87e){var _0xc27618={},_0x971d7d={},_0x9d0e98={'count':0x0,'rows':[]};var _0x3890df=_[_0x3ba9('0x2b')](db[_0x3ba9('0x2c')][_0x3ba9('0x2d')],function(_0x289cb1){return{'name':_0x289cb1[_0x3ba9('0x2e')],'type':_0x289cb1[_0x3ba9('0x2f')][_0x3ba9('0x30')]};});_0x971d7d[_0x3ba9('0x31')]=_[_0x3ba9('0x2b')](_0x3890df,_0x3ba9('0x28'));_0x971d7d[_0x3ba9('0x32')]=_[_0x3ba9('0x33')](_0x93e934[_0x3ba9('0x32')]);_0x971d7d[_0x3ba9('0x34')]=_[_0x3ba9('0x35')](_0x971d7d[_0x3ba9('0x31')],_0x971d7d[_0x3ba9('0x32')]);_0xc27618[_0x3ba9('0x36')]=_[_0x3ba9('0x35')](_0x971d7d['model'],qs[_0x3ba9('0x37')](_0x93e934[_0x3ba9('0x32')]['fields']));_0xc27618['attributes']=_0xc27618[_0x3ba9('0x36')]['length']?_0xc27618['attributes']:_0x971d7d[_0x3ba9('0x31')];if(!_0x93e934[_0x3ba9('0x32')]['hasOwnProperty'](_0x3ba9('0x38'))){_0xc27618[_0x3ba9('0x1b')]=qs['limit'](_0x93e934[_0x3ba9('0x32')][_0x3ba9('0x1b')]);_0xc27618[_0x3ba9('0x1d')]=qs[_0x3ba9('0x1d')](_0x93e934['query']['offset']);}_0xc27618[_0x3ba9('0x39')]=qs[_0x3ba9('0x3a')](_0x93e934['query'][_0x3ba9('0x3a')]);_0xc27618['where']=qs['filters'](_[_0x3ba9('0x3b')](_0x93e934['query'],_0x971d7d[_0x3ba9('0x34')]),_0x3890df);if(_0x93e934[_0x3ba9('0x32')]['filter']){_0xc27618['where']=_[_0x3ba9('0x3c')](_0xc27618[_0x3ba9('0x3d')],{'$or':_[_0x3ba9('0x2b')](_0x3890df,function(_0x831a73){if(_0x831a73['type']!==_0x3ba9('0x3e')){var _0x45908b={};_0x45908b[_0x831a73[_0x3ba9('0x28')]]={'$like':'%'+_0x93e934[_0x3ba9('0x32')][_0x3ba9('0x3f')]+'%'};return _0x45908b;}})});}_0xc27618=_['merge']({},_0xc27618,_0x93e934[_0x3ba9('0x40')]);var _0x1d4965={'where':_0xc27618[_0x3ba9('0x3d')]};return db[_0x3ba9('0x2c')][_0x3ba9('0x1e')](_0x1d4965)[_0x3ba9('0x24')](function(_0x19efb6){_0x9d0e98[_0x3ba9('0x1e')]=_0x19efb6;if(_0x93e934[_0x3ba9('0x32')][_0x3ba9('0x41')]){_0xc27618['include']=[{'all':!![]}];}return db[_0x3ba9('0x2c')][_0x3ba9('0x42')](_0xc27618);})[_0x3ba9('0x24')](function(_0x2b41ec){_0x9d0e98[_0x3ba9('0x43')]=_0x2b41ec;return _0x9d0e98;})[_0x3ba9('0x24')](respondWithFilteredResult(_0x57a87e,_0xc27618))['catch'](handleError(_0x57a87e,null));};exports['show']=function(_0x17e7fd,_0x291c0e){var _0x2b2dda={'raw':![],'where':{'id':_0x17e7fd[_0x3ba9('0x44')]['id']}},_0x54c267={};_0x54c267[_0x3ba9('0x31')]=_[_0x3ba9('0x33')](db[_0x3ba9('0x2c')][_0x3ba9('0x2d')]);_0x54c267[_0x3ba9('0x32')]=_[_0x3ba9('0x33')](_0x17e7fd[_0x3ba9('0x32')]);_0x54c267[_0x3ba9('0x34')]=_['intersection'](_0x54c267[_0x3ba9('0x31')],_0x54c267[_0x3ba9('0x32')]);_0x2b2dda['attributes']=_[_0x3ba9('0x35')](_0x54c267[_0x3ba9('0x31')],qs[_0x3ba9('0x37')](_0x17e7fd['query'][_0x3ba9('0x37')]));_0x2b2dda['attributes']=_0x2b2dda['attributes'][_0x3ba9('0x45')]?_0x2b2dda['attributes']:_0x54c267[_0x3ba9('0x31')];if(_0x17e7fd[_0x3ba9('0x32')][_0x3ba9('0x41')]){_0x2b2dda[_0x3ba9('0x46')]=[{'all':!![]}];}_0x2b2dda=_['merge']({},_0x2b2dda,_0x17e7fd['options']);return db[_0x3ba9('0x2c')][_0x3ba9('0x47')](_0x2b2dda)[_0x3ba9('0x24')](handleEntityNotFound(_0x291c0e,null))[_0x3ba9('0x24')](respondWithResult(_0x291c0e,null))[_0x3ba9('0x48')](handleError(_0x291c0e,null));};exports['create']=function(_0x22bdc0,_0xfd8e5){return db[_0x3ba9('0x2c')][_0x3ba9('0x49')](_0x22bdc0[_0x3ba9('0x4a')],{})[_0x3ba9('0x24')](respondWithResult(_0xfd8e5,0xc9))[_0x3ba9('0x48')](handleError(_0xfd8e5,null));};exports['update']=function(_0x53420c,_0x1aa8fb){if(_0x53420c['body']['id']){delete _0x53420c['body']['id'];}return db['FreshdeskConfiguration'][_0x3ba9('0x47')]({'where':{'id':_0x53420c[_0x3ba9('0x44')]['id']}})['then'](handleEntityNotFound(_0x1aa8fb,null))[_0x3ba9('0x24')](saveUpdates(_0x53420c[_0x3ba9('0x4a')],null))[_0x3ba9('0x24')](respondWithResult(_0x1aa8fb,null))[_0x3ba9('0x48')](handleError(_0x1aa8fb,null));};exports['destroy']=function(_0x529375,_0x2f6158){return db[_0x3ba9('0x2c')]['find']({'where':{'id':_0x529375[_0x3ba9('0x44')]['id']}})[_0x3ba9('0x24')](handleEntityNotFound(_0x2f6158,null))['then'](removeEntity(_0x2f6158,null))[_0x3ba9('0x48')](handleError(_0x2f6158,null));};exports[_0x3ba9('0x4b')]=function(_0x1bd33d,_0x317b86,_0x3dd316){var _0xc3b023={};var _0x900d51={};var _0x2e6e45;var _0x236dca;return db['FreshdeskConfiguration']['findOne']({'where':{'id':_0x1bd33d[_0x3ba9('0x44')]['id']}})[_0x3ba9('0x24')](handleEntityNotFound(_0x317b86,null))[_0x3ba9('0x24')](function(_0x6f6f0b){if(_0x6f6f0b){_0x2e6e45=_0x6f6f0b;_0x900d51[_0x3ba9('0x31')]=_[_0x3ba9('0x33')](db[_0x3ba9('0x4c')][_0x3ba9('0x2d')]);_0x900d51[_0x3ba9('0x32')]=_['keys'](_0x1bd33d[_0x3ba9('0x32')]);_0x900d51['filters']=_[_0x3ba9('0x35')](_0x900d51['model'],_0x900d51['query']);_0xc3b023[_0x3ba9('0x36')]=_[_0x3ba9('0x35')](_0x900d51['model'],qs['fields'](_0x1bd33d[_0x3ba9('0x32')][_0x3ba9('0x37')]));_0xc3b023[_0x3ba9('0x36')]=_0xc3b023['attributes']['length']?_0xc3b023[_0x3ba9('0x36')]:_0x900d51[_0x3ba9('0x31')];_0xc3b023['order']=qs[_0x3ba9('0x3a')](_0x1bd33d[_0x3ba9('0x32')]['sort']);_0xc3b023[_0x3ba9('0x3d')]=qs['filters'](_['pick'](_0x1bd33d[_0x3ba9('0x32')],_0x900d51[_0x3ba9('0x34')]));if(_0x1bd33d[_0x3ba9('0x32')][_0x3ba9('0x3f')]){_0xc3b023[_0x3ba9('0x3d')]=_[_0x3ba9('0x3c')](_0xc3b023[_0x3ba9('0x3d')],{'$or':_[_0x3ba9('0x2b')](_0xc3b023[_0x3ba9('0x36')],function(_0x351bdd){var _0x51f554={};_0x51f554[_0x351bdd]={'$like':'%'+_0x1bd33d[_0x3ba9('0x32')]['filter']+'%'};return _0x51f554;})});}_0xc3b023=_[_0x3ba9('0x3c')]({},_0xc3b023,_0x1bd33d[_0x3ba9('0x40')]);return _0x2e6e45['getFields'](_0xc3b023);}})['then'](function(_0x4dd773){if(_0x4dd773){_0x236dca=_0x4dd773[_0x3ba9('0x45')];if(!_0x1bd33d[_0x3ba9('0x32')][_0x3ba9('0x4d')](_0x3ba9('0x38'))){_0xc3b023['limit']=qs[_0x3ba9('0x1b')](_0x1bd33d[_0x3ba9('0x32')][_0x3ba9('0x1b')]);_0xc3b023[_0x3ba9('0x1d')]=qs[_0x3ba9('0x1d')](_0x1bd33d[_0x3ba9('0x32')]['offset']);}return _0x2e6e45[_0x3ba9('0x4b')](_0xc3b023);}})[_0x3ba9('0x24')](function(_0x3b72c3){if(_0x3b72c3){return _0x3b72c3?{'count':_0x236dca,'rows':_0x3b72c3}:null;}})[_0x3ba9('0x24')](respondWithResult(_0x317b86,null))[_0x3ba9('0x48')](handleError(_0x317b86,null));};exports[_0x3ba9('0x4e')]=function(_0x46bc0d,_0x1ced66,_0xdf0d9a){var _0x1ddc62={};var _0x42f641={};var _0x3f28a0;var _0x4a5cae;return db['FreshdeskConfiguration'][_0x3ba9('0x4f')]({'where':{'id':_0x46bc0d[_0x3ba9('0x44')]['id']}})[_0x3ba9('0x24')](handleEntityNotFound(_0x1ced66,null))[_0x3ba9('0x24')](function(_0x23dc44){if(_0x23dc44){_0x3f28a0=_0x23dc44;_0x42f641[_0x3ba9('0x31')]=_['keys'](db[_0x3ba9('0x4c')][_0x3ba9('0x2d')]);_0x42f641[_0x3ba9('0x32')]=_[_0x3ba9('0x33')](_0x46bc0d[_0x3ba9('0x32')]);_0x42f641['filters']=_['intersection'](_0x42f641[_0x3ba9('0x31')],_0x42f641[_0x3ba9('0x32')]);_0x1ddc62['attributes']=_[_0x3ba9('0x35')](_0x42f641[_0x3ba9('0x31')],qs[_0x3ba9('0x37')](_0x46bc0d[_0x3ba9('0x32')][_0x3ba9('0x37')]));_0x1ddc62[_0x3ba9('0x36')]=_0x1ddc62[_0x3ba9('0x36')][_0x3ba9('0x45')]?_0x1ddc62[_0x3ba9('0x36')]:_0x42f641[_0x3ba9('0x31')];_0x1ddc62[_0x3ba9('0x39')]=qs[_0x3ba9('0x3a')](_0x46bc0d[_0x3ba9('0x32')][_0x3ba9('0x3a')]);_0x1ddc62[_0x3ba9('0x3d')]=qs[_0x3ba9('0x34')](_[_0x3ba9('0x3b')](_0x46bc0d['query'],_0x42f641['filters']));if(_0x46bc0d[_0x3ba9('0x32')][_0x3ba9('0x3f')]){_0x1ddc62[_0x3ba9('0x3d')]=_[_0x3ba9('0x3c')](_0x1ddc62[_0x3ba9('0x3d')],{'$or':_['map'](_0x1ddc62[_0x3ba9('0x36')],function(_0x39f592){var _0x29da9c={};_0x29da9c[_0x39f592]={'$like':'%'+_0x46bc0d[_0x3ba9('0x32')][_0x3ba9('0x3f')]+'%'};return _0x29da9c;})});}_0x1ddc62=_[_0x3ba9('0x3c')]({},_0x1ddc62,_0x46bc0d['options']);return _0x3f28a0[_0x3ba9('0x4e')](_0x1ddc62);}})[_0x3ba9('0x24')](function(_0x8c74a8){if(_0x8c74a8){_0x4a5cae=_0x8c74a8['length'];if(!_0x46bc0d[_0x3ba9('0x32')][_0x3ba9('0x4d')](_0x3ba9('0x38'))){_0x1ddc62[_0x3ba9('0x1b')]=qs[_0x3ba9('0x1b')](_0x46bc0d[_0x3ba9('0x32')][_0x3ba9('0x1b')]);_0x1ddc62[_0x3ba9('0x1d')]=qs['offset'](_0x46bc0d[_0x3ba9('0x32')][_0x3ba9('0x1d')]);}return _0x3f28a0[_0x3ba9('0x4e')](_0x1ddc62);}})[_0x3ba9('0x24')](function(_0x4c093a){if(_0x4c093a){return _0x4c093a?{'count':_0x4a5cae,'rows':_0x4c093a}:null;}})['then'](respondWithResult(_0x1ced66,null))[_0x3ba9('0x48')](handleError(_0x1ced66,null));};exports[_0x3ba9('0x50')]=function(_0x25ba8f,_0x3c01dc,_0x4e4d13){var _0x533254={};var _0x23aff8={};var _0x298008;var _0x4e2f63;return db[_0x3ba9('0x2c')][_0x3ba9('0x4f')]({'where':{'id':_0x25ba8f[_0x3ba9('0x44')]['id']}})[_0x3ba9('0x24')](handleEntityNotFound(_0x3c01dc,null))[_0x3ba9('0x24')](function(_0x37975a){if(_0x37975a){_0x298008=_0x37975a;_0x23aff8[_0x3ba9('0x31')]=_[_0x3ba9('0x33')](db[_0x3ba9('0x4c')][_0x3ba9('0x2d')]);_0x23aff8[_0x3ba9('0x32')]=_[_0x3ba9('0x33')](_0x25ba8f[_0x3ba9('0x32')]);_0x23aff8['filters']=_[_0x3ba9('0x35')](_0x23aff8[_0x3ba9('0x31')],_0x23aff8[_0x3ba9('0x32')]);_0x533254[_0x3ba9('0x36')]=_[_0x3ba9('0x35')](_0x23aff8['model'],qs[_0x3ba9('0x37')](_0x25ba8f[_0x3ba9('0x32')]['fields']));_0x533254[_0x3ba9('0x36')]=_0x533254[_0x3ba9('0x36')][_0x3ba9('0x45')]?_0x533254[_0x3ba9('0x36')]:_0x23aff8[_0x3ba9('0x31')];_0x533254[_0x3ba9('0x39')]=qs[_0x3ba9('0x3a')](_0x25ba8f[_0x3ba9('0x32')][_0x3ba9('0x3a')]);_0x533254['where']=qs['filters'](_[_0x3ba9('0x3b')](_0x25ba8f[_0x3ba9('0x32')],_0x23aff8[_0x3ba9('0x34')]));if(_0x25ba8f[_0x3ba9('0x32')][_0x3ba9('0x3f')]){_0x533254['where']=_[_0x3ba9('0x3c')](_0x533254[_0x3ba9('0x3d')],{'$or':_[_0x3ba9('0x2b')](_0x533254[_0x3ba9('0x36')],function(_0x50e7be){var _0x420585={};_0x420585[_0x50e7be]={'$like':'%'+_0x25ba8f[_0x3ba9('0x32')][_0x3ba9('0x3f')]+'%'};return _0x420585;})});}_0x533254=_[_0x3ba9('0x3c')]({},_0x533254,_0x25ba8f[_0x3ba9('0x40')]);return _0x298008[_0x3ba9('0x50')](_0x533254);}})[_0x3ba9('0x24')](function(_0x4edd72){if(_0x4edd72){_0x4e2f63=_0x4edd72[_0x3ba9('0x45')];if(!_0x25ba8f[_0x3ba9('0x32')][_0x3ba9('0x4d')]('nolimit')){_0x533254[_0x3ba9('0x1b')]=qs[_0x3ba9('0x1b')](_0x25ba8f[_0x3ba9('0x32')][_0x3ba9('0x1b')]);_0x533254[_0x3ba9('0x1d')]=qs[_0x3ba9('0x1d')](_0x25ba8f[_0x3ba9('0x32')]['offset']);}return _0x298008[_0x3ba9('0x50')](_0x533254);}})[_0x3ba9('0x24')](function(_0x73cd28){if(_0x73cd28){return _0x73cd28?{'count':_0x4e2f63,'rows':_0x73cd28}:null;}})[_0x3ba9('0x24')](respondWithResult(_0x3c01dc,null))[_0x3ba9('0x48')](handleError(_0x3c01dc,null));};exports[_0x3ba9('0x51')]=function(_0x1b17ae,_0x1a185f,_0x2f969d){var _0x4390c0={};var _0x3a9015={};var _0x266f93;var _0xa711c8;return db[_0x3ba9('0x2c')][_0x3ba9('0x4f')]({'where':{'id':_0x1b17ae[_0x3ba9('0x44')]['id']}})[_0x3ba9('0x24')](handleEntityNotFound(_0x1a185f,null))[_0x3ba9('0x24')](function(_0x424f70){if(_0x424f70){_0x266f93=_0x424f70;_0x3a9015[_0x3ba9('0x31')]=_[_0x3ba9('0x33')](db['Tag'][_0x3ba9('0x2d')]);_0x3a9015[_0x3ba9('0x32')]=_[_0x3ba9('0x33')](_0x1b17ae[_0x3ba9('0x32')]);_0x3a9015[_0x3ba9('0x34')]=_[_0x3ba9('0x35')](_0x3a9015[_0x3ba9('0x31')],_0x3a9015[_0x3ba9('0x32')]);_0x4390c0[_0x3ba9('0x36')]=_[_0x3ba9('0x35')](_0x3a9015['model'],qs['fields'](_0x1b17ae[_0x3ba9('0x32')]['fields']));_0x4390c0['attributes']=_0x4390c0[_0x3ba9('0x36')]['length']?_0x4390c0[_0x3ba9('0x36')]:_0x3a9015[_0x3ba9('0x31')];_0x4390c0[_0x3ba9('0x39')]=qs['sort'](_0x1b17ae[_0x3ba9('0x32')]['sort']);_0x4390c0[_0x3ba9('0x3d')]=qs['filters'](_['pick'](_0x1b17ae['query'],_0x3a9015['filters']));if(_0x1b17ae[_0x3ba9('0x32')][_0x3ba9('0x3f')]){_0x4390c0[_0x3ba9('0x3d')]=_[_0x3ba9('0x3c')](_0x4390c0[_0x3ba9('0x3d')],{'$or':_[_0x3ba9('0x2b')](_0x4390c0['attributes'],function(_0x3f36cb){var _0x30daf9={};_0x30daf9[_0x3f36cb]={'$like':'%'+_0x1b17ae[_0x3ba9('0x32')][_0x3ba9('0x3f')]+'%'};return _0x30daf9;})});}_0x4390c0=_[_0x3ba9('0x3c')]({},_0x4390c0,_0x1b17ae[_0x3ba9('0x40')]);return _0x266f93[_0x3ba9('0x51')](_0x4390c0);}})['then'](function(_0x3171dd){if(_0x3171dd){_0xa711c8=_0x3171dd[_0x3ba9('0x45')];if(!_0x1b17ae['query'][_0x3ba9('0x4d')](_0x3ba9('0x38'))){_0x4390c0[_0x3ba9('0x1b')]=qs[_0x3ba9('0x1b')](_0x1b17ae['query'][_0x3ba9('0x1b')]);_0x4390c0['offset']=qs['offset'](_0x1b17ae[_0x3ba9('0x32')][_0x3ba9('0x1d')]);}return _0x266f93['getTags'](_0x4390c0);}})[_0x3ba9('0x24')](function(_0x4bd3e7){if(_0x4bd3e7){return _0x4bd3e7?{'count':_0xa711c8,'rows':_0x4bd3e7}:null;}})['then'](respondWithResult(_0x1a185f,null))[_0x3ba9('0x48')](handleError(_0x1a185f,null));};exports[_0x3ba9('0x52')]=function(_0x1b8fa8,_0x13018d,_0x57fa9c){if(_0x1b8fa8[_0x3ba9('0x4a')]['id']){delete _0x1b8fa8[_0x3ba9('0x4a')]['id'];}return db[_0x3ba9('0x2c')][_0x3ba9('0x4f')]({'where':{'id':_0x1b8fa8[_0x3ba9('0x44')]['id']}})[_0x3ba9('0x24')](handleEntityNotFound(_0x13018d,null))[_0x3ba9('0x24')](function(_0x4f6f98){if(_0x4f6f98){return _0x4f6f98[_0x3ba9('0x52')](_0x1b8fa8[_0x3ba9('0x4a')][_0x3ba9('0x53')]||[]);}return null;})[_0x3ba9('0x24')](respondWithResult(_0x13018d,null))[_0x3ba9('0x48')](handleError(_0x13018d,null));};