Built motion from commit 26159a51.|2.5.44
[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 _0x422f=['GET','format','%s/%s','api/v2/ticket_fields','%s:X','base64','subject','agent','description','priority','source','ticket_type','group','custom_text','custom_dropdown','label','default','capitalize','statusCode','getFields,\x20%s,\x20%s,\x20%s','send','test','Wrong\x20credentials','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','set','json','reject','then','destroy','error','stack','name','index','map','key','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','filter','merge','where','type','VIRTUAL','options','FreshdeskAccount','include','findAll','rows','catch','params','length','includeAll','find','create','body','update','findOne','rawAttributes','pick','getConfigurations','addConfiguration','AccountId','Subjects','Descriptions','getDescriptions','channel','FreshdeskField','remoteUri','apiKey','lastIndexOf'];(function(_0x26d9e5,_0x13594a){var _0x18dbfa=function(_0x2534f2){while(--_0x2534f2){_0x26d9e5['push'](_0x26d9e5['shift']());}};_0x18dbfa(++_0x13594a);}(_0x422f,0x1c7));var _0xf422=function(_0x50a8ec,_0x25eb4b){_0x50a8ec=_0x50a8ec-0x0;var _0xcaa7af=_0x422f[_0x50a8ec];return _0xcaa7af;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf422('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf422('0x1'));var rp=require(_0xf422('0x2'));var moment=require('moment');var BPromise=require(_0xf422('0x3'));var Mustache=require(_0xf422('0x4'));var util=require(_0xf422('0x5'));var path=require(_0xf422('0x6'));var sox=require(_0xf422('0x7'));var csv=require(_0xf422('0x8'));var ejs=require(_0xf422('0x9'));var fs=require('fs');var fs_extra=require(_0xf422('0xa'));var _=require(_0xf422('0xb'));var squel=require('squel');var crypto=require(_0xf422('0xc'));var jsforce=require(_0xf422('0xd'));var deskjs=require(_0xf422('0xe'));var toCsv=require(_0xf422('0x8'));var querystring=require(_0xf422('0xf'));var Papa=require('papaparse');var Redis=require(_0xf422('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xf422('0x11'));var hardwareService=require(_0xf422('0x12'));var logger=require(_0xf422('0x13'))(_0xf422('0x14'));var utils=require(_0xf422('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xf422('0x16'));var db=require(_0xf422('0x17'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x133a6a,_0x8aa9cc){_0x8aa9cc=_0x8aa9cc||0xcc;return function(_0x1ea998){if(_0x1ea998){return _0x133a6a[_0xf422('0x18')](_0x8aa9cc);}return _0x133a6a[_0xf422('0x19')](_0x8aa9cc)[_0xf422('0x1a')]();};}function respondWithResult(_0x223b21,_0x272430){_0x272430=_0x272430||0xc8;return function(_0x2e6d81){if(_0x2e6d81){return _0x223b21['status'](_0x272430)['json'](_0x2e6d81);}};}function respondWithFilteredResult(_0x52f96b,_0x1c81e1){return function(_0x30b70a){if(_0x30b70a){var _0x21a35d=typeof _0x1c81e1[_0xf422('0x1b')]==='undefined'&&typeof _0x1c81e1[_0xf422('0x1c')]===_0xf422('0x1d');var _0x76e4b1=_0x30b70a[_0xf422('0x1e')];var _0x43de64=_0x21a35d?0x0:_0x1c81e1[_0xf422('0x1b')];var _0x4fefd0=_0x21a35d?_0x30b70a['count']:_0x1c81e1[_0xf422('0x1b')]+_0x1c81e1[_0xf422('0x1c')];var _0x215287;if(_0x4fefd0>=_0x76e4b1){_0x4fefd0=_0x76e4b1;_0x215287=0xc8;}else{_0x215287=0xce;}_0x52f96b['status'](_0x215287);return _0x52f96b[_0xf422('0x1f')]('Content-Range',_0x43de64+'-'+_0x4fefd0+'/'+_0x76e4b1)[_0xf422('0x20')](_0x30b70a);}return null;};}function patchUpdates(_0x15833b){return function(_0x36b7e7){try{jsonpatch['apply'](_0x36b7e7,_0x15833b,!![]);}catch(_0xf2d06b){return BPromise[_0xf422('0x21')](_0xf2d06b);}return _0x36b7e7['save']();};}function saveUpdates(_0x4b80a0,_0x268575){return function(_0x3cb26b){if(_0x3cb26b){return _0x3cb26b['update'](_0x4b80a0)[_0xf422('0x22')](function(_0x570ea2){return _0x570ea2;});}return null;};}function removeEntity(_0x3b21a5,_0x32ceee){return function(_0x31a518){if(_0x31a518){return _0x31a518[_0xf422('0x23')]()[_0xf422('0x22')](function(){_0x3b21a5[_0xf422('0x19')](0xcc)[_0xf422('0x1a')]();});}};}function handleEntityNotFound(_0x11d10b,_0x5dcab4){return function(_0x1125ce){if(!_0x1125ce){_0x11d10b['sendStatus'](0x194);}return _0x1125ce;};}function handleError(_0x2f0f9f,_0x7d36e7){_0x7d36e7=_0x7d36e7||0x1f4;return function(_0x29e62f){logger[_0xf422('0x24')](_0x29e62f[_0xf422('0x25')]);if(_0x29e62f[_0xf422('0x26')]){delete _0x29e62f[_0xf422('0x26')];}_0x2f0f9f['status'](_0x7d36e7)['send'](_0x29e62f);};}exports[_0xf422('0x27')]=function(_0x10d51b,_0x266fb8){var _0x33ef63={},_0xefb99e={},_0x48e0c7={'count':0x0,'rows':[]};var _0x6d22f1=_[_0xf422('0x28')](db['FreshdeskAccount']['rawAttributes'],function(_0x3f86fc){return{'name':_0x3f86fc['fieldName'],'type':_0x3f86fc['type'][_0xf422('0x29')]};});_0xefb99e[_0xf422('0x2a')]=_['map'](_0x6d22f1,_0xf422('0x26'));_0xefb99e[_0xf422('0x2b')]=_[_0xf422('0x2c')](_0x10d51b[_0xf422('0x2b')]);_0xefb99e[_0xf422('0x2d')]=_['intersection'](_0xefb99e[_0xf422('0x2a')],_0xefb99e['query']);_0x33ef63[_0xf422('0x2e')]=_[_0xf422('0x2f')](_0xefb99e[_0xf422('0x2a')],qs[_0xf422('0x30')](_0x10d51b[_0xf422('0x2b')][_0xf422('0x30')]));_0x33ef63[_0xf422('0x2e')]=_0x33ef63['attributes']['length']?_0x33ef63[_0xf422('0x2e')]:_0xefb99e[_0xf422('0x2a')];if(!_0x10d51b['query'][_0xf422('0x31')](_0xf422('0x32'))){_0x33ef63[_0xf422('0x1c')]=qs[_0xf422('0x1c')](_0x10d51b[_0xf422('0x2b')][_0xf422('0x1c')]);_0x33ef63[_0xf422('0x1b')]=qs[_0xf422('0x1b')](_0x10d51b[_0xf422('0x2b')][_0xf422('0x1b')]);}_0x33ef63[_0xf422('0x33')]=qs[_0xf422('0x34')](_0x10d51b[_0xf422('0x2b')][_0xf422('0x34')]);_0x33ef63['where']=qs['filters'](_['pick'](_0x10d51b[_0xf422('0x2b')],_0xefb99e[_0xf422('0x2d')]),_0x6d22f1);if(_0x10d51b['query'][_0xf422('0x35')]){_0x33ef63['where']=_[_0xf422('0x36')](_0x33ef63[_0xf422('0x37')],{'$or':_['map'](_0x6d22f1,function(_0x42dc4d){if(_0x42dc4d[_0xf422('0x38')]!==_0xf422('0x39')){var _0x511fc7={};_0x511fc7[_0x42dc4d[_0xf422('0x26')]]={'$like':'%'+_0x10d51b['query']['filter']+'%'};return _0x511fc7;}})});}_0x33ef63=_['merge']({},_0x33ef63,_0x10d51b[_0xf422('0x3a')]);var _0x293497={'where':_0x33ef63[_0xf422('0x37')]};return db[_0xf422('0x3b')][_0xf422('0x1e')](_0x293497)[_0xf422('0x22')](function(_0x42923d){_0x48e0c7[_0xf422('0x1e')]=_0x42923d;if(_0x10d51b['query']['includeAll']){_0x33ef63[_0xf422('0x3c')]=[{'all':!![]}];}return db[_0xf422('0x3b')][_0xf422('0x3d')](_0x33ef63);})[_0xf422('0x22')](function(_0xc7423f){_0x48e0c7[_0xf422('0x3e')]=_0xc7423f;return _0x48e0c7;})['then'](respondWithFilteredResult(_0x266fb8,_0x33ef63))[_0xf422('0x3f')](handleError(_0x266fb8,null));};exports['show']=function(_0x17c1f2,_0x391e3c){var _0x564041={'raw':![],'where':{'id':_0x17c1f2[_0xf422('0x40')]['id']}},_0x3c9b0d={};_0x3c9b0d[_0xf422('0x2a')]=_[_0xf422('0x2c')](db[_0xf422('0x3b')]['rawAttributes']);_0x3c9b0d[_0xf422('0x2b')]=_[_0xf422('0x2c')](_0x17c1f2[_0xf422('0x2b')]);_0x3c9b0d[_0xf422('0x2d')]=_[_0xf422('0x2f')](_0x3c9b0d['model'],_0x3c9b0d[_0xf422('0x2b')]);_0x564041[_0xf422('0x2e')]=_['intersection'](_0x3c9b0d[_0xf422('0x2a')],qs['fields'](_0x17c1f2[_0xf422('0x2b')][_0xf422('0x30')]));_0x564041[_0xf422('0x2e')]=_0x564041[_0xf422('0x2e')][_0xf422('0x41')]?_0x564041[_0xf422('0x2e')]:_0x3c9b0d[_0xf422('0x2a')];if(_0x17c1f2[_0xf422('0x2b')][_0xf422('0x42')]){_0x564041[_0xf422('0x3c')]=[{'all':!![]}];}_0x564041=_[_0xf422('0x36')]({},_0x564041,_0x17c1f2[_0xf422('0x3a')]);return db[_0xf422('0x3b')][_0xf422('0x43')](_0x564041)[_0xf422('0x22')](handleEntityNotFound(_0x391e3c,null))['then'](respondWithResult(_0x391e3c,null))['catch'](handleError(_0x391e3c,null));};exports[_0xf422('0x44')]=function(_0x2c2ce9,_0x3452a8){return db['FreshdeskAccount'][_0xf422('0x44')](_0x2c2ce9[_0xf422('0x45')],{})[_0xf422('0x22')](respondWithResult(_0x3452a8,0xc9))[_0xf422('0x3f')](handleError(_0x3452a8,null));};exports[_0xf422('0x46')]=function(_0x259e24,_0x3dffe0){if(_0x259e24['body']['id']){delete _0x259e24[_0xf422('0x45')]['id'];}return db['FreshdeskAccount'][_0xf422('0x43')]({'where':{'id':_0x259e24[_0xf422('0x40')]['id']}})['then'](handleEntityNotFound(_0x3dffe0,null))[_0xf422('0x22')](saveUpdates(_0x259e24[_0xf422('0x45')],null))[_0xf422('0x22')](respondWithResult(_0x3dffe0,null))[_0xf422('0x3f')](handleError(_0x3dffe0,null));};exports[_0xf422('0x23')]=function(_0x5c3cb8,_0x5261df){return db[_0xf422('0x3b')]['find']({'where':{'id':_0x5c3cb8[_0xf422('0x40')]['id']}})[_0xf422('0x22')](handleEntityNotFound(_0x5261df,null))[_0xf422('0x22')](removeEntity(_0x5261df,null))[_0xf422('0x3f')](handleError(_0x5261df,null));};exports['getConfigurations']=function(_0x4b8b1f,_0x44448c,_0xe333b8){var _0x46a200={};var _0xddcd6c={};var _0x2b640a;var _0x350af2;return db['FreshdeskAccount'][_0xf422('0x47')]({'where':{'id':_0x4b8b1f['params']['id']}})[_0xf422('0x22')](handleEntityNotFound(_0x44448c,null))[_0xf422('0x22')](function(_0x2369e7){if(_0x2369e7){_0x2b640a=_0x2369e7;_0xddcd6c[_0xf422('0x2a')]=_['keys'](db['FreshdeskConfiguration'][_0xf422('0x48')]);_0xddcd6c[_0xf422('0x2b')]=_[_0xf422('0x2c')](_0x4b8b1f[_0xf422('0x2b')]);_0xddcd6c[_0xf422('0x2d')]=_[_0xf422('0x2f')](_0xddcd6c[_0xf422('0x2a')],_0xddcd6c['query']);_0x46a200[_0xf422('0x2e')]=_[_0xf422('0x2f')](_0xddcd6c[_0xf422('0x2a')],qs[_0xf422('0x30')](_0x4b8b1f[_0xf422('0x2b')][_0xf422('0x30')]));_0x46a200[_0xf422('0x2e')]=_0x46a200[_0xf422('0x2e')][_0xf422('0x41')]?_0x46a200[_0xf422('0x2e')]:_0xddcd6c['model'];_0x46a200[_0xf422('0x33')]=qs[_0xf422('0x34')](_0x4b8b1f[_0xf422('0x2b')][_0xf422('0x34')]);_0x46a200[_0xf422('0x37')]=qs['filters'](_[_0xf422('0x49')](_0x4b8b1f[_0xf422('0x2b')],_0xddcd6c['filters']));if(_0x4b8b1f[_0xf422('0x2b')][_0xf422('0x35')]){_0x46a200[_0xf422('0x37')]=_[_0xf422('0x36')](_0x46a200[_0xf422('0x37')],{'$or':_[_0xf422('0x28')](_0x46a200[_0xf422('0x2e')],function(_0x5997bc){var _0x2c2316={};_0x2c2316[_0x5997bc]={'$like':'%'+_0x4b8b1f[_0xf422('0x2b')][_0xf422('0x35')]+'%'};return _0x2c2316;})});}_0x46a200=_['merge']({},_0x46a200,_0x4b8b1f[_0xf422('0x3a')]);return _0x2b640a[_0xf422('0x4a')](_0x46a200);}})[_0xf422('0x22')](function(_0x144494){if(_0x144494){_0x350af2=_0x144494[_0xf422('0x41')];if(!_0x4b8b1f[_0xf422('0x2b')][_0xf422('0x31')](_0xf422('0x32'))){_0x46a200[_0xf422('0x1c')]=qs[_0xf422('0x1c')](_0x4b8b1f[_0xf422('0x2b')][_0xf422('0x1c')]);_0x46a200[_0xf422('0x1b')]=qs[_0xf422('0x1b')](_0x4b8b1f[_0xf422('0x2b')][_0xf422('0x1b')]);}return _0x2b640a[_0xf422('0x4a')](_0x46a200);}})[_0xf422('0x22')](function(_0x366019){if(_0x366019){return _0x366019?{'count':_0x350af2,'rows':_0x366019}:null;}})['then'](respondWithResult(_0x44448c,null))['catch'](handleError(_0x44448c,null));};exports[_0xf422('0x4b')]=function(_0x5ec3a5,_0xd9e138,_0x3345dd){if(_0x5ec3a5[_0xf422('0x45')]['id']){delete _0x5ec3a5[_0xf422('0x45')]['id'];}return db['FreshdeskAccount'][_0xf422('0x47')]({'where':{'id':_0x5ec3a5[_0xf422('0x40')]['id']}})[_0xf422('0x22')](handleEntityNotFound(_0xd9e138,null))['then'](function(_0x5b5dfa){if(_0x5b5dfa){_0x5ec3a5[_0xf422('0x45')][_0xf422('0x4c')]=_0x5b5dfa['id'];_0x5ec3a5[_0xf422('0x45')][_0xf422('0x4d')]=integrations['getSubjects'](_0x5ec3a5['body']['channel'],_0x5ec3a5[_0xf422('0x45')][_0xf422('0x38')]);_0x5ec3a5[_0xf422('0x45')][_0xf422('0x4e')]=integrations[_0xf422('0x4f')](_0x5ec3a5[_0xf422('0x45')][_0xf422('0x50')],_0x5ec3a5['body']['type']);return db['FreshdeskConfiguration'][_0xf422('0x44')](_0x5ec3a5['body'],{'include':[{'model':db[_0xf422('0x51')],'as':_0xf422('0x4d')},{'model':db['FreshdeskField'],'as':_0xf422('0x4e')}]});}return null;})[_0xf422('0x22')](respondWithResult(_0xd9e138,null))[_0xf422('0x3f')](handleError(_0xd9e138,null));};exports['getFields']=function(_0x2435af,_0x24adb6,_0x5b1760){var _0x20d6aa='';return db[_0xf422('0x3b')][_0xf422('0x47')]({'where':{'id':_0x2435af[_0xf422('0x40')]['id']},'attributes':['id',_0xf422('0x52'),_0xf422('0x53')]})[_0xf422('0x22')](handleEntityNotFound(_0x24adb6,null))['then'](function(_0x1d2ca8){if(_0x1d2ca8){_0x20d6aa=_0x1d2ca8[_0xf422('0x52')];var _0x33c2df=_0x20d6aa['slice'](-0x1);if(_0x33c2df==='/'){_0x20d6aa=_0x20d6aa['substring'](0x0,_0x20d6aa[_0xf422('0x54')](_0x33c2df));}return rp({'method':_0xf422('0x55'),'uri':util[_0xf422('0x56')](_0xf422('0x57'),_0x20d6aa,_0xf422('0x58')),'headers':{'Authorization':util[_0xf422('0x56')]('Basic\x20%s',new Buffer(util[_0xf422('0x56')](_0xf422('0x59'),_0x1d2ca8[_0xf422('0x53')]))['toString'](_0xf422('0x5a')))},'json':!![]});}})['then'](function(_0x4dedde){if(_0x4dedde){var _0x47aa00=['requester',_0xf422('0x5b'),_0xf422('0x5c'),_0xf422('0x5d'),_0xf422('0x19'),_0xf422('0x5e'),'group',_0xf422('0x5f'),_0xf422('0x60'),_0xf422('0x61'),'company'];_['remove'](_0x4dedde,function(_0x3bc35a){return _0x47aa00['includes'](_0x3bc35a[_0xf422('0x26')])||!_0x3bc35a['default']&&_0x3bc35a[_0xf422('0x38')]!==_0xf422('0x62')&&_0x3bc35a['type']!==_0xf422('0x63');});return{'count':_0x4dedde[_0xf422('0x41')],'rows':_['map'](_0x4dedde,function(_0x35d33c){return{'id':_0x35d33c[_0xf422('0x26')],'name':_0x35d33c[_0xf422('0x64')],'custom':!_0x35d33c[_0xf422('0x65')],'options':_0x35d33c['choices']?_[_0xf422('0x28')](_0x35d33c['choices'],function(_0x175b19){return{'name':_[_0xf422('0x66')](_0x175b19),'value':_0x175b19};}):[]};})};}})[_0xf422('0x22')](respondWithResult(_0x24adb6,null))['catch'](function(_0x4e032d){var _0x853ef4=_0x2435af[_0xf422('0x2b')]['test']?0x1f4:_0x4e032d[_0xf422('0x67')]||0x1f4;logger['error'](_0xf422('0x68'),'getFields',_0x853ef4,JSON['stringify'](_0x4e032d));delete _0x4e032d[_0xf422('0x26')];if(_0x853ef4===0x191){_0x853ef4=0x190;}_0x24adb6[_0xf422('0x19')](_0x853ef4)[_0xf422('0x69')](_0x2435af[_0xf422('0x2b')][_0xf422('0x6a')]?{'message':_0xf422('0x6b'),'statusCode':_0x4e032d[_0xf422('0x67')]}:_0x4e032d);});};