fe13662c6493225162d368ef386d1ed8c061bd61
[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 _0xb10b=['show','params','keys','length','includeAll','find','create','body','update','getConfigurations','findOne','FreshdeskConfiguration','pick','AccountId','channel','Descriptions','FreshdeskField','getFields','remoteUri','apiKey','slice','substring','lastIndexOf','GET','format','%s/%s','Basic\x20%s','base64','requester','subject','agent','description','priority','group','source','company','remove','default','custom_text','label','choices','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','send','Wrong\x20credentials','html-pdf','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','request','then','info','FreshdeskAccount,\x20%s,\x20%s','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','destroy','stack','name','index','FreshdeskAccount','rawAttributes','fieldName','type','key','map','filters','intersection','model','attributes','query','fields','hasOwnProperty','nolimit','order','sort','where','VIRTUAL','filter','merge','options','include','rows'];(function(_0x7231a7,_0x1d83c2){var _0x5cd958=function(_0x594cc5){while(--_0x594cc5){_0x7231a7['push'](_0x7231a7['shift']());}};_0x5cd958(++_0x1d83c2);}(_0xb10b,0x12a));var _0xbb10=function(_0x9979f9,_0x22dba0){_0x9979f9=_0x9979f9-0x0;var _0x53b7fe=_0xb10b[_0x9979f9];return _0x53b7fe;};'use strict';var pdf=require(_0xbb10('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xbb10('0x1'));var zipdir=require(_0xbb10('0x2'));var jsonpatch=require(_0xbb10('0x3'));var rp=require('request-promise');var moment=require(_0xbb10('0x4'));var BPromise=require(_0xbb10('0x5'));var Mustache=require(_0xbb10('0x6'));var util=require(_0xbb10('0x7'));var path=require(_0xbb10('0x8'));var sox=require(_0xbb10('0x9'));var csv=require('to-csv');var ejs=require(_0xbb10('0xa'));var fs=require('fs');var _=require(_0xbb10('0xb'));var squel=require('squel');var crypto=require(_0xbb10('0xc'));var jsforce=require(_0xbb10('0xd'));var deskjs=require(_0xbb10('0xe'));var toCsv=require(_0xbb10('0xf'));var querystring=require(_0xbb10('0x10'));var Papa=require(_0xbb10('0x11'));var Redis=require(_0xbb10('0x12'));var authService=require(_0xbb10('0x13'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xbb10('0x14'));var logger=require(_0xbb10('0x15'))(_0xbb10('0x16'));var utils=require('../../config/utils');var config=require(_0xbb10('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xbb10('0x18'))['db'];var integrations=require(_0xbb10('0x19'));var jayson=require(_0xbb10('0x1a'));var client=jayson[_0xbb10('0x1b')][_0xbb10('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x147230,_0x58a612,_0x26e021,_0x42d7e4){return new BPromise(function(_0x45b9d6,_0x17fd46){var _0x3df17b=_0x42d7e4||client;return _0x3df17b[_0xbb10('0x1d')](_0x147230,_0x26e021)[_0xbb10('0x1e')](function(_0x36b5e8){logger[_0xbb10('0x1f')](_0xbb10('0x20'),_0x58a612,'request\x20sent');logger[_0xbb10('0x21')](_0xbb10('0x22'),_0x58a612,_0xbb10('0x23'),JSON[_0xbb10('0x24')](_0x36b5e8));if(_0x36b5e8[_0xbb10('0x25')]){if(_0x36b5e8[_0xbb10('0x25')][_0xbb10('0x26')]===0x1f4){logger[_0xbb10('0x25')](_0xbb10('0x20'),_0x58a612,_0x36b5e8[_0xbb10('0x25')]['message']);return _0x17fd46(_0x36b5e8[_0xbb10('0x25')][_0xbb10('0x27')]);}logger[_0xbb10('0x25')](_0xbb10('0x20'),_0x58a612,_0x36b5e8[_0xbb10('0x25')][_0xbb10('0x27')]);return _0x45b9d6(_0x36b5e8['error'][_0xbb10('0x27')]);}else{logger[_0xbb10('0x1f')]('FreshdeskAccount,\x20%s,\x20%s',_0x58a612,'request\x20sent');_0x45b9d6(_0x36b5e8[_0xbb10('0x28')][_0xbb10('0x27')]);}})[_0xbb10('0x29')](function(_0x317da4){logger[_0xbb10('0x25')](_0xbb10('0x20'),_0x58a612,_0x317da4);_0x17fd46(_0x317da4);});});}function respondWithStatusCode(_0x407cb4,_0x436104){_0x436104=_0x436104||0xcc;return function(_0x7f2377){if(_0x7f2377){return _0x407cb4[_0xbb10('0x2a')](_0x436104);}return _0x407cb4[_0xbb10('0x2b')](_0x436104)[_0xbb10('0x2c')]();};}function respondWithResult(_0x537898,_0x4fedac){_0x4fedac=_0x4fedac||0xc8;return function(_0x4fb5e0){if(_0x4fb5e0){return _0x537898[_0xbb10('0x2b')](_0x4fedac)[_0xbb10('0x2d')](_0x4fb5e0);}};}function respondWithFilteredResult(_0x2c89b9,_0x4e25ff){return function(_0x2fdde9){if(_0x2fdde9){var _0x24d586=_0x2fdde9[_0xbb10('0x2e')],_0x6ed43b=_0x4e25ff[_0xbb10('0x2f')],_0x1d5e95=_0x4e25ff['offset']+_0x4e25ff[_0xbb10('0x30')],_0x1acce9;if(_0x1d5e95>=_0x24d586){_0x1d5e95=_0x24d586;_0x1acce9=0xc8;}else{_0x1acce9=0xce;}_0x2c89b9[_0xbb10('0x2b')](_0x1acce9);return _0x2c89b9[_0xbb10('0x31')](_0xbb10('0x32'),_0x6ed43b+'-'+_0x1d5e95+'/'+_0x24d586)[_0xbb10('0x2d')](_0x2fdde9);}return null;};}function patchUpdates(_0x2ff4c1){return function(_0x5d5c80){try{jsonpatch[_0xbb10('0x33')](_0x5d5c80,_0x2ff4c1,!![]);}catch(_0x4ee02e){return BPromise[_0xbb10('0x34')](_0x4ee02e);}return _0x5d5c80['save']();};}function saveUpdates(_0x16ad2a,_0x1dcc9c){return function(_0x1b59f9){if(_0x1b59f9){return _0x1b59f9['update'](_0x16ad2a)['then'](function(_0x4c3744){return _0x4c3744;});}return null;};}function removeEntity(_0x34f65e,_0x4f590d){return function(_0x359ad4){if(_0x359ad4){return _0x359ad4[_0xbb10('0x35')]()[_0xbb10('0x1e')](function(){_0x34f65e[_0xbb10('0x2b')](0xcc)[_0xbb10('0x2c')]();});}};}function handleEntityNotFound(_0x138bc6,_0xf85197){return function(_0x4975f5){if(!_0x4975f5){_0x138bc6[_0xbb10('0x2a')](0x194);}return _0x4975f5;};}function handleError(_0x1da9c9,_0x441d15){_0x441d15=_0x441d15||0x1f4;return function(_0x8c1ce6){logger[_0xbb10('0x25')](_0x8c1ce6[_0xbb10('0x36')]);if(_0x8c1ce6[_0xbb10('0x37')]){delete _0x8c1ce6[_0xbb10('0x37')];}_0x1da9c9[_0xbb10('0x2b')](_0x441d15)['send'](_0x8c1ce6);};}exports[_0xbb10('0x38')]=function(_0x150107,_0x1ddd9e){var _0x3c3c45={},_0x570f5a={},_0x111762={'count':0x0,'rows':[]};var _0x5de37b=_['map'](db[_0xbb10('0x39')][_0xbb10('0x3a')],function(_0x26e76a){return{'name':_0x26e76a[_0xbb10('0x3b')],'type':_0x26e76a[_0xbb10('0x3c')][_0xbb10('0x3d')]};});_0x570f5a['model']=_[_0xbb10('0x3e')](_0x5de37b,_0xbb10('0x37'));_0x570f5a['query']=_['keys'](_0x150107['query']);_0x570f5a[_0xbb10('0x3f')]=_[_0xbb10('0x40')](_0x570f5a[_0xbb10('0x41')],_0x570f5a['query']);_0x3c3c45[_0xbb10('0x42')]=_[_0xbb10('0x40')](_0x570f5a[_0xbb10('0x41')],qs['fields'](_0x150107[_0xbb10('0x43')][_0xbb10('0x44')]));_0x3c3c45[_0xbb10('0x42')]=_0x3c3c45[_0xbb10('0x42')]['length']?_0x3c3c45[_0xbb10('0x42')]:_0x570f5a[_0xbb10('0x41')];if(!_0x150107['query'][_0xbb10('0x45')](_0xbb10('0x46'))){_0x3c3c45[_0xbb10('0x30')]=qs[_0xbb10('0x30')](_0x150107[_0xbb10('0x43')][_0xbb10('0x30')]);_0x3c3c45['offset']=qs[_0xbb10('0x2f')](_0x150107[_0xbb10('0x43')][_0xbb10('0x2f')]);}_0x3c3c45[_0xbb10('0x47')]=qs['sort'](_0x150107[_0xbb10('0x43')][_0xbb10('0x48')]);_0x3c3c45[_0xbb10('0x49')]=qs[_0xbb10('0x3f')](_['pick'](_0x150107[_0xbb10('0x43')],_0x570f5a[_0xbb10('0x3f')]),_0x5de37b);if(_0x150107['query']['filter']){_0x3c3c45[_0xbb10('0x49')]=_['merge'](_0x3c3c45[_0xbb10('0x49')],{'$or':_[_0xbb10('0x3e')](_0x5de37b,function(_0x4c66d8){if(_0x4c66d8[_0xbb10('0x3c')]!==_0xbb10('0x4a')){var _0x474e99={};_0x474e99[_0x4c66d8['name']]={'$like':'%'+_0x150107[_0xbb10('0x43')][_0xbb10('0x4b')]+'%'};return _0x474e99;}})});}_0x3c3c45=_[_0xbb10('0x4c')]({},_0x3c3c45,_0x150107[_0xbb10('0x4d')]);var _0x36e1fa={'where':_0x3c3c45[_0xbb10('0x49')]};return db[_0xbb10('0x39')][_0xbb10('0x2e')](_0x36e1fa)[_0xbb10('0x1e')](function(_0x43b948){_0x111762[_0xbb10('0x2e')]=_0x43b948;if(_0x150107[_0xbb10('0x43')]['includeAll']){_0x3c3c45[_0xbb10('0x4e')]=[{'all':!![]}];}return db[_0xbb10('0x39')]['findAll'](_0x3c3c45);})[_0xbb10('0x1e')](function(_0x2f5027){_0x111762[_0xbb10('0x4f')]=_0x2f5027;return _0x111762;})[_0xbb10('0x1e')](respondWithFilteredResult(_0x1ddd9e,_0x3c3c45))[_0xbb10('0x29')](handleError(_0x1ddd9e,null));};exports[_0xbb10('0x50')]=function(_0x3e06b0,_0x5be85e){var _0x4a9793={'raw':![],'where':{'id':_0x3e06b0[_0xbb10('0x51')]['id']}},_0xcb3354={};_0xcb3354[_0xbb10('0x41')]=_['keys'](db['FreshdeskAccount'][_0xbb10('0x3a')]);_0xcb3354[_0xbb10('0x43')]=_[_0xbb10('0x52')](_0x3e06b0[_0xbb10('0x43')]);_0xcb3354[_0xbb10('0x3f')]=_[_0xbb10('0x40')](_0xcb3354[_0xbb10('0x41')],_0xcb3354[_0xbb10('0x43')]);_0x4a9793[_0xbb10('0x42')]=_[_0xbb10('0x40')](_0xcb3354['model'],qs['fields'](_0x3e06b0[_0xbb10('0x43')][_0xbb10('0x44')]));_0x4a9793[_0xbb10('0x42')]=_0x4a9793[_0xbb10('0x42')][_0xbb10('0x53')]?_0x4a9793[_0xbb10('0x42')]:_0xcb3354[_0xbb10('0x41')];if(_0x3e06b0[_0xbb10('0x43')][_0xbb10('0x54')]){_0x4a9793[_0xbb10('0x4e')]=[{'all':!![]}];}_0x4a9793=_[_0xbb10('0x4c')]({},_0x4a9793,_0x3e06b0[_0xbb10('0x4d')]);return db[_0xbb10('0x39')][_0xbb10('0x55')](_0x4a9793)[_0xbb10('0x1e')](handleEntityNotFound(_0x5be85e,null))['then'](respondWithResult(_0x5be85e,null))[_0xbb10('0x29')](handleError(_0x5be85e,null));};exports['create']=function(_0x33d60a,_0x2e21a0){return db[_0xbb10('0x39')][_0xbb10('0x56')](_0x33d60a[_0xbb10('0x57')],{})[_0xbb10('0x1e')](respondWithResult(_0x2e21a0,0xc9))[_0xbb10('0x29')](handleError(_0x2e21a0,null));};exports[_0xbb10('0x58')]=function(_0x180400,_0x3d71e){if(_0x180400[_0xbb10('0x57')]['id']){delete _0x180400[_0xbb10('0x57')]['id'];}return db[_0xbb10('0x39')][_0xbb10('0x55')]({'where':{'id':_0x180400[_0xbb10('0x51')]['id']}})['then'](handleEntityNotFound(_0x3d71e,null))[_0xbb10('0x1e')](saveUpdates(_0x180400[_0xbb10('0x57')],null))[_0xbb10('0x1e')](respondWithResult(_0x3d71e,null))[_0xbb10('0x29')](handleError(_0x3d71e,null));};exports[_0xbb10('0x35')]=function(_0x379d8c,_0x4bedd0){return db[_0xbb10('0x39')][_0xbb10('0x55')]({'where':{'id':_0x379d8c[_0xbb10('0x51')]['id']}})[_0xbb10('0x1e')](handleEntityNotFound(_0x4bedd0,null))[_0xbb10('0x1e')](removeEntity(_0x4bedd0,null))[_0xbb10('0x29')](handleError(_0x4bedd0,null));};exports[_0xbb10('0x59')]=function(_0x12ec18,_0x205e01,_0x40c4fb){var _0x2eb05a={};var _0x2a1ce1={};var _0x16932f;var _0x4e7fac;return db['FreshdeskAccount'][_0xbb10('0x5a')]({'where':{'id':_0x12ec18[_0xbb10('0x51')]['id']}})[_0xbb10('0x1e')](handleEntityNotFound(_0x205e01,null))[_0xbb10('0x1e')](function(_0x5573bb){if(_0x5573bb){_0x16932f=_0x5573bb;_0x2a1ce1['model']=_[_0xbb10('0x52')](db[_0xbb10('0x5b')][_0xbb10('0x3a')]);_0x2a1ce1[_0xbb10('0x43')]=_[_0xbb10('0x52')](_0x12ec18[_0xbb10('0x43')]);_0x2a1ce1[_0xbb10('0x3f')]=_['intersection'](_0x2a1ce1[_0xbb10('0x41')],_0x2a1ce1[_0xbb10('0x43')]);_0x2eb05a['attributes']=_['intersection'](_0x2a1ce1['model'],qs[_0xbb10('0x44')](_0x12ec18[_0xbb10('0x43')][_0xbb10('0x44')]));_0x2eb05a['attributes']=_0x2eb05a['attributes']['length']?_0x2eb05a[_0xbb10('0x42')]:_0x2a1ce1[_0xbb10('0x41')];_0x2eb05a[_0xbb10('0x47')]=qs['sort'](_0x12ec18[_0xbb10('0x43')][_0xbb10('0x48')]);_0x2eb05a['where']=qs['filters'](_[_0xbb10('0x5c')](_0x12ec18[_0xbb10('0x43')],_0x2a1ce1[_0xbb10('0x3f')]));if(_0x12ec18[_0xbb10('0x43')]['filter']){_0x2eb05a[_0xbb10('0x49')]=_[_0xbb10('0x4c')](_0x2eb05a[_0xbb10('0x49')],{'$or':_['map'](_0x2eb05a[_0xbb10('0x42')],function(_0x2f05bc){var _0x3e3617={};_0x3e3617[_0x2f05bc]={'$like':'%'+_0x12ec18['query'][_0xbb10('0x4b')]+'%'};return _0x3e3617;})});}_0x2eb05a=_[_0xbb10('0x4c')]({},_0x2eb05a,_0x12ec18[_0xbb10('0x4d')]);return _0x16932f[_0xbb10('0x59')](_0x2eb05a);}})['then'](function(_0x251417){if(_0x251417){_0x4e7fac=_0x251417[_0xbb10('0x53')];if(!_0x12ec18[_0xbb10('0x43')][_0xbb10('0x45')]('nolimit')){_0x2eb05a[_0xbb10('0x30')]=qs[_0xbb10('0x30')](_0x12ec18[_0xbb10('0x43')][_0xbb10('0x30')]);_0x2eb05a[_0xbb10('0x2f')]=qs[_0xbb10('0x2f')](_0x12ec18[_0xbb10('0x43')]['offset']);}return _0x16932f['getConfigurations'](_0x2eb05a);}})['then'](function(_0xdfbc0b){if(_0xdfbc0b){return _0xdfbc0b?{'count':_0x4e7fac,'rows':_0xdfbc0b}:null;}})[_0xbb10('0x1e')](respondWithResult(_0x205e01,null))[_0xbb10('0x29')](handleError(_0x205e01,null));};exports['addConfiguration']=function(_0x5cd089,_0x46f462,_0x1b11c0){if(_0x5cd089[_0xbb10('0x57')]['id']){delete _0x5cd089[_0xbb10('0x57')]['id'];}return db[_0xbb10('0x39')][_0xbb10('0x5a')]({'where':{'id':_0x5cd089['params']['id']}})[_0xbb10('0x1e')](handleEntityNotFound(_0x46f462,null))[_0xbb10('0x1e')](function(_0x270fdb){if(_0x270fdb){_0x5cd089[_0xbb10('0x57')][_0xbb10('0x5d')]=_0x270fdb['id'];_0x5cd089['body']['Subjects']=integrations['getSubjects'](_0x5cd089[_0xbb10('0x57')][_0xbb10('0x5e')],_0x5cd089[_0xbb10('0x57')][_0xbb10('0x3c')]);_0x5cd089[_0xbb10('0x57')][_0xbb10('0x5f')]=integrations['getDescriptions'](_0x5cd089[_0xbb10('0x57')]['channel'],_0x5cd089['body']['type']);return db[_0xbb10('0x5b')][_0xbb10('0x56')](_0x5cd089[_0xbb10('0x57')],{'include':[{'model':db[_0xbb10('0x60')],'as':'Subjects'},{'model':db[_0xbb10('0x60')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x46f462,null))[_0xbb10('0x29')](handleError(_0x46f462,null));};exports[_0xbb10('0x61')]=function(_0x29529c,_0x2bd2ab,_0xfa3c7c){var _0x4fccc5='';return db[_0xbb10('0x39')][_0xbb10('0x5a')]({'where':{'id':_0x29529c[_0xbb10('0x51')]['id']},'attributes':['id',_0xbb10('0x62'),_0xbb10('0x63')]})[_0xbb10('0x1e')](handleEntityNotFound(_0x2bd2ab,null))[_0xbb10('0x1e')](function(_0x53fa98){if(_0x53fa98){_0x4fccc5=_0x53fa98[_0xbb10('0x62')];var _0x1f648a=_0x4fccc5[_0xbb10('0x64')](-0x1);if(_0x1f648a==='/'){_0x4fccc5=_0x4fccc5[_0xbb10('0x65')](0x0,_0x4fccc5[_0xbb10('0x66')](_0x1f648a));}return rp({'method':_0xbb10('0x67'),'uri':util[_0xbb10('0x68')](_0xbb10('0x69'),_0x4fccc5,'api/v2/ticket_fields'),'headers':{'Authorization':util[_0xbb10('0x68')](_0xbb10('0x6a'),new Buffer(util[_0xbb10('0x68')]('%s:X',_0x53fa98['apiKey']))['toString'](_0xbb10('0x6b')))},'json':!![]});}})['then'](function(_0x4e3d6a){if(_0x4e3d6a){var _0x1701c5=[_0xbb10('0x6c'),_0xbb10('0x6d'),_0xbb10('0x6e'),_0xbb10('0x6f'),_0xbb10('0x2b'),_0xbb10('0x70'),_0xbb10('0x71'),_0xbb10('0x72'),'ticket_type',_0xbb10('0x71'),_0xbb10('0x73')];_[_0xbb10('0x74')](_0x4e3d6a,function(_0x35b811){return _0x1701c5['includes'](_0x35b811['name'])||!_0x35b811[_0xbb10('0x75')]&&_0x35b811[_0xbb10('0x3c')]!==_0xbb10('0x76')&&_0x35b811[_0xbb10('0x3c')]!=='custom_dropdown';});return{'count':_0x4e3d6a[_0xbb10('0x53')],'rows':_[_0xbb10('0x3e')](_0x4e3d6a,function(_0x3f0d74){return{'id':_0x3f0d74[_0xbb10('0x37')],'name':_0x3f0d74[_0xbb10('0x77')],'custom':!_0x3f0d74['default'],'options':_0x3f0d74['choices']?_[_0xbb10('0x3e')](_0x3f0d74[_0xbb10('0x78')],function(_0x22c030){return{'name':_['capitalize'](_0x22c030),'value':_0x22c030};}):[]};})};}})[_0xbb10('0x1e')](respondWithResult(_0x2bd2ab,null))[_0xbb10('0x29')](function(_0x50bcc9){var _0x5caa06=_0x29529c[_0xbb10('0x43')][_0xbb10('0x79')]?0x1f4:_0x50bcc9[_0xbb10('0x7a')]||0x1f4;logger['error'](_0xbb10('0x7b'),_0xbb10('0x61'),_0x5caa06,JSON[_0xbb10('0x24')](_0x50bcc9));delete _0x50bcc9[_0xbb10('0x37')];if(_0x5caa06===0x191){_0x5caa06=0x190;}_0x2bd2ab[_0xbb10('0x2b')](_0x5caa06)[_0xbb10('0x7c')](_0x29529c[_0xbb10('0x43')][_0xbb10('0x79')]?{'message':_0xbb10('0x7d'),'statusCode':_0x50bcc9['statusCode']}:_0x50bcc9);});};