Built motion from commit 71df090e.|2.6.31
[motion2.git] / server / api / intFreshdeskAccount / intFreshdeskAccount.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 _0xe1aa=['getFields','remoteUri','apiKey','slice','substring','format','%s:X','toString','base64','requester','subject','agent','description','group','source','ticket_type','company','remove','includes','custom_dropdown','label','default','choices','capitalize','test','getFields,\x20%s,\x20%s,\x20%s','stringify','statusCode','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','sox','ejs','fs-extra','crypto','jsforce','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range','apply','reject','save','update','then','destroy','error','send','map','FreshdeskAccount','fieldName','type','key','name','query','filters','model','attributes','intersection','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','rows','show','params','keys','rawAttributes','fields','find','catch','create','body','getConfigurations','findOne','FreshdeskConfiguration','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','FreshdeskField'];(function(_0xbb091,_0x3fe7ee){var _0x467a04=function(_0x3a978d){while(--_0x3a978d){_0xbb091['push'](_0xbb091['shift']());}};_0x467a04(++_0x3fe7ee);}(_0xe1aa,0xfc));var _0xae1a=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0xe1aa[_0x501510];return _0x1e6ee5;};'use strict';var emlformat=require(_0xae1a('0x0'));var rimraf=require(_0xae1a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xae1a('0x2'));var moment=require(_0xae1a('0x3'));var BPromise=require(_0xae1a('0x4'));var Mustache=require(_0xae1a('0x5'));var util=require(_0xae1a('0x6'));var path=require('path');var sox=require(_0xae1a('0x7'));var csv=require('to-csv');var ejs=require(_0xae1a('0x8'));var fs=require('fs');var fs_extra=require(_0xae1a('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xae1a('0xa'));var jsforce=require(_0xae1a('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xae1a('0xc'));var querystring=require(_0xae1a('0xd'));var Papa=require('papaparse');var Redis=require(_0xae1a('0xe'));var authService=require(_0xae1a('0xf'));var qs=require(_0xae1a('0x10'));var as=require(_0xae1a('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xae1a('0x12'))(_0xae1a('0x13'));var utils=require('../../config/utils');var config=require(_0xae1a('0x14'));var licenseUtil=require(_0xae1a('0x15'));var db=require(_0xae1a('0x16'))['db'];var integrations=require(_0xae1a('0x17'));function respondWithStatusCode(_0x2f55ae,_0x1f6419){_0x1f6419=_0x1f6419||0xcc;return function(_0x352749){if(_0x352749){return _0x2f55ae[_0xae1a('0x18')](_0x1f6419);}return _0x2f55ae[_0xae1a('0x19')](_0x1f6419)[_0xae1a('0x1a')]();};}function respondWithResult(_0x47ce8e,_0x53dc19){_0x53dc19=_0x53dc19||0xc8;return function(_0x580f1c){if(_0x580f1c){return _0x47ce8e['status'](_0x53dc19)[_0xae1a('0x1b')](_0x580f1c);}};}function respondWithFilteredResult(_0x21109c,_0x2eb725){return function(_0x261d1d){if(_0x261d1d){var _0x407778=typeof _0x2eb725['offset']===_0xae1a('0x1c')&&typeof _0x2eb725[_0xae1a('0x1d')]==='undefined';var _0x1e05df=_0x261d1d[_0xae1a('0x1e')];var _0x2e0951=_0x407778?0x0:_0x2eb725[_0xae1a('0x1f')];var _0x1931b9=_0x407778?_0x261d1d[_0xae1a('0x1e')]:_0x2eb725[_0xae1a('0x1f')]+_0x2eb725[_0xae1a('0x1d')];var _0x448961;if(_0x1931b9>=_0x1e05df){_0x1931b9=_0x1e05df;_0x448961=0xc8;}else{_0x448961=0xce;}_0x21109c[_0xae1a('0x19')](_0x448961);return _0x21109c['set'](_0xae1a('0x20'),_0x2e0951+'-'+_0x1931b9+'/'+_0x1e05df)[_0xae1a('0x1b')](_0x261d1d);}return null;};}function patchUpdates(_0x376b61){return function(_0xae6fa5){try{jsonpatch[_0xae1a('0x21')](_0xae6fa5,_0x376b61,!![]);}catch(_0x53fac4){return BPromise[_0xae1a('0x22')](_0x53fac4);}return _0xae6fa5[_0xae1a('0x23')]();};}function saveUpdates(_0x39c190,_0x584fb4){return function(_0x45d15d){if(_0x45d15d){return _0x45d15d[_0xae1a('0x24')](_0x39c190)[_0xae1a('0x25')](function(_0x1ec64c){return _0x1ec64c;});}return null;};}function removeEntity(_0xb3e00d,_0x29a121){return function(_0x5c5b60){if(_0x5c5b60){return _0x5c5b60[_0xae1a('0x26')]()['then'](function(){_0xb3e00d['status'](0xcc)[_0xae1a('0x1a')]();});}};}function handleEntityNotFound(_0x2f13dc,_0x3907c6){return function(_0x22ed5b){if(!_0x22ed5b){_0x2f13dc[_0xae1a('0x18')](0x194);}return _0x22ed5b;};}function handleError(_0x4ecb5b,_0x270e66){_0x270e66=_0x270e66||0x1f4;return function(_0x454142){logger[_0xae1a('0x27')](_0x454142['stack']);if(_0x454142['name']){delete _0x454142['name'];}_0x4ecb5b[_0xae1a('0x19')](_0x270e66)[_0xae1a('0x28')](_0x454142);};}exports['index']=function(_0x5b3d63,_0x1d84f8){var _0x40e32c={},_0x127d6d={},_0x57d2e={'count':0x0,'rows':[]};var _0x29fef2=_[_0xae1a('0x29')](db[_0xae1a('0x2a')]['rawAttributes'],function(_0x5821a7){return{'name':_0x5821a7[_0xae1a('0x2b')],'type':_0x5821a7[_0xae1a('0x2c')][_0xae1a('0x2d')]};});_0x127d6d['model']=_[_0xae1a('0x29')](_0x29fef2,_0xae1a('0x2e'));_0x127d6d[_0xae1a('0x2f')]=_['keys'](_0x5b3d63[_0xae1a('0x2f')]);_0x127d6d[_0xae1a('0x30')]=_['intersection'](_0x127d6d[_0xae1a('0x31')],_0x127d6d[_0xae1a('0x2f')]);_0x40e32c[_0xae1a('0x32')]=_[_0xae1a('0x33')](_0x127d6d['model'],qs['fields'](_0x5b3d63['query']['fields']));_0x40e32c[_0xae1a('0x32')]=_0x40e32c['attributes'][_0xae1a('0x34')]?_0x40e32c['attributes']:_0x127d6d['model'];if(!_0x5b3d63[_0xae1a('0x2f')][_0xae1a('0x35')](_0xae1a('0x36'))){_0x40e32c['limit']=qs[_0xae1a('0x1d')](_0x5b3d63[_0xae1a('0x2f')][_0xae1a('0x1d')]);_0x40e32c[_0xae1a('0x1f')]=qs['offset'](_0x5b3d63['query']['offset']);}_0x40e32c[_0xae1a('0x37')]=qs[_0xae1a('0x38')](_0x5b3d63['query'][_0xae1a('0x38')]);_0x40e32c[_0xae1a('0x39')]=qs[_0xae1a('0x30')](_[_0xae1a('0x3a')](_0x5b3d63['query'],_0x127d6d[_0xae1a('0x30')]),_0x29fef2);if(_0x5b3d63['query'][_0xae1a('0x3b')]){_0x40e32c[_0xae1a('0x39')]=_[_0xae1a('0x3c')](_0x40e32c[_0xae1a('0x39')],{'$or':_[_0xae1a('0x29')](_0x29fef2,function(_0x220423){if(_0x220423[_0xae1a('0x2c')]!=='VIRTUAL'){var _0x416213={};_0x416213[_0x220423[_0xae1a('0x2e')]]={'$like':'%'+_0x5b3d63[_0xae1a('0x2f')][_0xae1a('0x3b')]+'%'};return _0x416213;}})});}_0x40e32c=_[_0xae1a('0x3c')]({},_0x40e32c,_0x5b3d63[_0xae1a('0x3d')]);var _0x5c8655={'where':_0x40e32c['where']};return db['FreshdeskAccount'][_0xae1a('0x1e')](_0x5c8655)['then'](function(_0x3eab4b){_0x57d2e[_0xae1a('0x1e')]=_0x3eab4b;if(_0x5b3d63[_0xae1a('0x2f')][_0xae1a('0x3e')]){_0x40e32c[_0xae1a('0x3f')]=[{'all':!![]}];}return db['FreshdeskAccount']['findAll'](_0x40e32c);})[_0xae1a('0x25')](function(_0x47a307){_0x57d2e[_0xae1a('0x40')]=_0x47a307;return _0x57d2e;})[_0xae1a('0x25')](respondWithFilteredResult(_0x1d84f8,_0x40e32c))['catch'](handleError(_0x1d84f8,null));};exports[_0xae1a('0x41')]=function(_0x511aef,_0x5df42a){var _0x26e55b={'raw':![],'where':{'id':_0x511aef[_0xae1a('0x42')]['id']}},_0x4be3fb={};_0x4be3fb['model']=_[_0xae1a('0x43')](db[_0xae1a('0x2a')][_0xae1a('0x44')]);_0x4be3fb[_0xae1a('0x2f')]=_[_0xae1a('0x43')](_0x511aef['query']);_0x4be3fb['filters']=_['intersection'](_0x4be3fb['model'],_0x4be3fb['query']);_0x26e55b[_0xae1a('0x32')]=_[_0xae1a('0x33')](_0x4be3fb['model'],qs['fields'](_0x511aef['query'][_0xae1a('0x45')]));_0x26e55b[_0xae1a('0x32')]=_0x26e55b[_0xae1a('0x32')][_0xae1a('0x34')]?_0x26e55b[_0xae1a('0x32')]:_0x4be3fb[_0xae1a('0x31')];if(_0x511aef[_0xae1a('0x2f')][_0xae1a('0x3e')]){_0x26e55b[_0xae1a('0x3f')]=[{'all':!![]}];}_0x26e55b=_[_0xae1a('0x3c')]({},_0x26e55b,_0x511aef[_0xae1a('0x3d')]);return db['FreshdeskAccount'][_0xae1a('0x46')](_0x26e55b)['then'](handleEntityNotFound(_0x5df42a,null))[_0xae1a('0x25')](respondWithResult(_0x5df42a,null))[_0xae1a('0x47')](handleError(_0x5df42a,null));};exports[_0xae1a('0x48')]=function(_0x24017b,_0x1884b){return db[_0xae1a('0x2a')][_0xae1a('0x48')](_0x24017b[_0xae1a('0x49')],{})[_0xae1a('0x25')](respondWithResult(_0x1884b,0xc9))['catch'](handleError(_0x1884b,null));};exports['update']=function(_0x5aceaf,_0x338c05){if(_0x5aceaf[_0xae1a('0x49')]['id']){delete _0x5aceaf['body']['id'];}return db[_0xae1a('0x2a')][_0xae1a('0x46')]({'where':{'id':_0x5aceaf['params']['id']}})[_0xae1a('0x25')](handleEntityNotFound(_0x338c05,null))[_0xae1a('0x25')](saveUpdates(_0x5aceaf[_0xae1a('0x49')],null))['then'](respondWithResult(_0x338c05,null))[_0xae1a('0x47')](handleError(_0x338c05,null));};exports['destroy']=function(_0x48a0ed,_0x400fb4){return db[_0xae1a('0x2a')][_0xae1a('0x46')]({'where':{'id':_0x48a0ed[_0xae1a('0x42')]['id']}})[_0xae1a('0x25')](handleEntityNotFound(_0x400fb4,null))[_0xae1a('0x25')](removeEntity(_0x400fb4,null))['catch'](handleError(_0x400fb4,null));};exports[_0xae1a('0x4a')]=function(_0x11bcfa,_0x161348,_0x2a15e9){var _0x444d4a={};var _0x3d77ac={};var _0x67fe08;var _0x19131b;return db[_0xae1a('0x2a')][_0xae1a('0x4b')]({'where':{'id':_0x11bcfa[_0xae1a('0x42')]['id']}})[_0xae1a('0x25')](handleEntityNotFound(_0x161348,null))[_0xae1a('0x25')](function(_0x4d057a){if(_0x4d057a){_0x67fe08=_0x4d057a;_0x3d77ac[_0xae1a('0x31')]=_[_0xae1a('0x43')](db[_0xae1a('0x4c')]['rawAttributes']);_0x3d77ac[_0xae1a('0x2f')]=_[_0xae1a('0x43')](_0x11bcfa[_0xae1a('0x2f')]);_0x3d77ac[_0xae1a('0x30')]=_[_0xae1a('0x33')](_0x3d77ac[_0xae1a('0x31')],_0x3d77ac['query']);_0x444d4a[_0xae1a('0x32')]=_[_0xae1a('0x33')](_0x3d77ac['model'],qs[_0xae1a('0x45')](_0x11bcfa['query'][_0xae1a('0x45')]));_0x444d4a[_0xae1a('0x32')]=_0x444d4a[_0xae1a('0x32')][_0xae1a('0x34')]?_0x444d4a[_0xae1a('0x32')]:_0x3d77ac[_0xae1a('0x31')];_0x444d4a['order']=qs[_0xae1a('0x38')](_0x11bcfa[_0xae1a('0x2f')][_0xae1a('0x38')]);_0x444d4a['where']=qs[_0xae1a('0x30')](_[_0xae1a('0x3a')](_0x11bcfa[_0xae1a('0x2f')],_0x3d77ac[_0xae1a('0x30')]));if(_0x11bcfa[_0xae1a('0x2f')][_0xae1a('0x3b')]){_0x444d4a[_0xae1a('0x39')]=_[_0xae1a('0x3c')](_0x444d4a[_0xae1a('0x39')],{'$or':_[_0xae1a('0x29')](_0x444d4a['attributes'],function(_0x1873a5){var _0x10783d={};_0x10783d[_0x1873a5]={'$like':'%'+_0x11bcfa[_0xae1a('0x2f')][_0xae1a('0x3b')]+'%'};return _0x10783d;})});}_0x444d4a=_[_0xae1a('0x3c')]({},_0x444d4a,_0x11bcfa[_0xae1a('0x3d')]);return _0x67fe08[_0xae1a('0x4a')](_0x444d4a);}})[_0xae1a('0x25')](function(_0x1c4f02){if(_0x1c4f02){_0x19131b=_0x1c4f02[_0xae1a('0x34')];if(!_0x11bcfa[_0xae1a('0x2f')][_0xae1a('0x35')](_0xae1a('0x36'))){_0x444d4a[_0xae1a('0x1d')]=qs[_0xae1a('0x1d')](_0x11bcfa[_0xae1a('0x2f')][_0xae1a('0x1d')]);_0x444d4a[_0xae1a('0x1f')]=qs[_0xae1a('0x1f')](_0x11bcfa['query'][_0xae1a('0x1f')]);}return _0x67fe08[_0xae1a('0x4a')](_0x444d4a);}})[_0xae1a('0x25')](function(_0x55f8f5){if(_0x55f8f5){return _0x55f8f5?{'count':_0x19131b,'rows':_0x55f8f5}:null;}})[_0xae1a('0x25')](respondWithResult(_0x161348,null))['catch'](handleError(_0x161348,null));};exports[_0xae1a('0x4d')]=function(_0xfc9e2c,_0x1966ee,_0x42c39f){if(_0xfc9e2c[_0xae1a('0x49')]['id']){delete _0xfc9e2c[_0xae1a('0x49')]['id'];}return db['FreshdeskAccount']['findOne']({'where':{'id':_0xfc9e2c[_0xae1a('0x42')]['id']}})[_0xae1a('0x25')](handleEntityNotFound(_0x1966ee,null))[_0xae1a('0x25')](function(_0x1af6a4){if(_0x1af6a4){_0xfc9e2c['body'][_0xae1a('0x4e')]=_0x1af6a4['id'];_0xfc9e2c[_0xae1a('0x49')][_0xae1a('0x4f')]=integrations[_0xae1a('0x50')](_0xfc9e2c[_0xae1a('0x49')][_0xae1a('0x51')],_0xfc9e2c[_0xae1a('0x49')][_0xae1a('0x2c')]);_0xfc9e2c['body'][_0xae1a('0x52')]=integrations['getDescriptions'](_0xfc9e2c['body'][_0xae1a('0x51')],_0xfc9e2c[_0xae1a('0x49')][_0xae1a('0x2c')]);return db[_0xae1a('0x4c')]['create'](_0xfc9e2c['body'],{'include':[{'model':db[_0xae1a('0x53')],'as':_0xae1a('0x4f')},{'model':db[_0xae1a('0x53')],'as':_0xae1a('0x52')}]});}return null;})['then'](respondWithResult(_0x1966ee,null))[_0xae1a('0x47')](handleError(_0x1966ee,null));};exports[_0xae1a('0x54')]=function(_0x4b6d0c,_0x12aadf,_0x22198a){var _0x4352d5='';return db[_0xae1a('0x2a')][_0xae1a('0x4b')]({'where':{'id':_0x4b6d0c[_0xae1a('0x42')]['id']},'attributes':['id',_0xae1a('0x55'),_0xae1a('0x56')]})[_0xae1a('0x25')](handleEntityNotFound(_0x12aadf,null))[_0xae1a('0x25')](function(_0x52b438){if(_0x52b438){_0x4352d5=_0x52b438[_0xae1a('0x55')];var _0x4d45ff=_0x4352d5[_0xae1a('0x57')](-0x1);if(_0x4d45ff==='/'){_0x4352d5=_0x4352d5[_0xae1a('0x58')](0x0,_0x4352d5['lastIndexOf'](_0x4d45ff));}return rp({'method':'GET','uri':util[_0xae1a('0x59')]('%s/%s',_0x4352d5,'api/v2/ticket_fields'),'headers':{'Authorization':util[_0xae1a('0x59')]('Basic\x20%s',new Buffer(util['format'](_0xae1a('0x5a'),_0x52b438[_0xae1a('0x56')]))[_0xae1a('0x5b')](_0xae1a('0x5c')))},'json':!![]});}})[_0xae1a('0x25')](function(_0x42863f){if(_0x42863f){var _0x3c32e0=[_0xae1a('0x5d'),_0xae1a('0x5e'),_0xae1a('0x5f'),_0xae1a('0x60'),_0xae1a('0x19'),'priority',_0xae1a('0x61'),_0xae1a('0x62'),_0xae1a('0x63'),_0xae1a('0x61'),_0xae1a('0x64')];_[_0xae1a('0x65')](_0x42863f,function(_0x4113c9){return _0x3c32e0[_0xae1a('0x66')](_0x4113c9[_0xae1a('0x2e')])||!_0x4113c9['default']&&_0x4113c9[_0xae1a('0x2c')]!=='custom_text'&&_0x4113c9[_0xae1a('0x2c')]!==_0xae1a('0x67');});return{'count':_0x42863f[_0xae1a('0x34')],'rows':_[_0xae1a('0x29')](_0x42863f,function(_0x363eb5){return{'id':_0x363eb5['name'],'name':_0x363eb5[_0xae1a('0x68')],'custom':!_0x363eb5[_0xae1a('0x69')],'options':_0x363eb5[_0xae1a('0x6a')]?_[_0xae1a('0x29')](_0x363eb5[_0xae1a('0x6a')],function(_0x381786){return{'name':_[_0xae1a('0x6b')](_0x381786),'value':_0x381786};}):[]};})};}})['then'](respondWithResult(_0x12aadf,null))[_0xae1a('0x47')](function(_0x3f3b0b){var _0x30017a=_0x4b6d0c[_0xae1a('0x2f')][_0xae1a('0x6c')]?0x1f4:_0x3f3b0b['statusCode']||0x1f4;logger['error'](_0xae1a('0x6d'),_0xae1a('0x54'),_0x30017a,JSON[_0xae1a('0x6e')](_0x3f3b0b));delete _0x3f3b0b[_0xae1a('0x2e')];if(_0x30017a===0x191){_0x30017a=0x190;}_0x12aadf['status'](_0x30017a)[_0xae1a('0x28')](_0x4b6d0c['query'][_0xae1a('0x6c')]?{'message':'Wrong\x20credentials','statusCode':_0x3f3b0b[_0xae1a('0x6f')]}:_0x3f3b0b);});};