048ba6e7085a805e7c7d313db34b447298cb607d
[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 _0x9c5e=['findOne','FreshdeskConfiguration','options','hasOwnProperty','addConfiguration','AccountId','Subjects','channel','Descriptions','getDescriptions','FreshdeskField','remoteUri','apiKey','slice','substring','lastIndexOf','GET','%s/%s','api/v2/ticket_fields','Basic\x20%s','format','%s:X','toString','base64','agent','description','priority','group','source','company','remove','includes','custom_text','custom_dropdown','label','default','choices','test','error','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','util','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','stack','name','send','index','FreshdeskAccount','type','key','model','map','keys','query','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','includeAll','include','rows','catch','params','rawAttributes','find','create','body'];(function(_0x2e04a1,_0x432648){var _0xf8c4a1=function(_0x5a28a9){while(--_0x5a28a9){_0x2e04a1['push'](_0x2e04a1['shift']());}};_0xf8c4a1(++_0x432648);}(_0x9c5e,0x9c));var _0xe9c5=function(_0x44122d,_0x33ed22){_0x44122d=_0x44122d-0x0;var _0xa43d5e=_0x9c5e[_0x44122d];return _0xa43d5e;};'use strict';var emlformat=require(_0xe9c5('0x0'));var rimraf=require(_0xe9c5('0x1'));var zipdir=require(_0xe9c5('0x2'));var jsonpatch=require(_0xe9c5('0x3'));var rp=require(_0xe9c5('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xe9c5('0x5'));var path=require(_0xe9c5('0x6'));var sox=require('sox');var csv=require(_0xe9c5('0x7'));var ejs=require(_0xe9c5('0x8'));var fs=require('fs');var fs_extra=require(_0xe9c5('0x9'));var _=require(_0xe9c5('0xa'));var squel=require('squel');var crypto=require(_0xe9c5('0xb'));var jsforce=require(_0xe9c5('0xc'));var deskjs=require(_0xe9c5('0xd'));var toCsv=require(_0xe9c5('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xe9c5('0xe'));var authService=require(_0xe9c5('0xf'));var qs=require(_0xe9c5('0x10'));var as=require(_0xe9c5('0x11'));var hardwareService=require(_0xe9c5('0x12'));var logger=require(_0xe9c5('0x13'))(_0xe9c5('0x14'));var utils=require(_0xe9c5('0x15'));var config=require(_0xe9c5('0x16'));var licenseUtil=require(_0xe9c5('0x17'));var db=require(_0xe9c5('0x18'))['db'];var integrations=require(_0xe9c5('0x19'));function respondWithStatusCode(_0x471401,_0x25ff11){_0x25ff11=_0x25ff11||0xcc;return function(_0x3962b8){if(_0x3962b8){return _0x471401[_0xe9c5('0x1a')](_0x25ff11);}return _0x471401['status'](_0x25ff11)[_0xe9c5('0x1b')]();};}function respondWithResult(_0xe98b11,_0x5eb474){_0x5eb474=_0x5eb474||0xc8;return function(_0x3bbd96){if(_0x3bbd96){return _0xe98b11[_0xe9c5('0x1c')](_0x5eb474)[_0xe9c5('0x1d')](_0x3bbd96);}};}function respondWithFilteredResult(_0x5d8236,_0x163253){return function(_0x14eb41){if(_0x14eb41){var _0x5d5fb4=typeof _0x163253[_0xe9c5('0x1e')]===_0xe9c5('0x1f')&&typeof _0x163253[_0xe9c5('0x20')]===_0xe9c5('0x1f');var _0x23156c=_0x14eb41['count'];var _0x3678fc=_0x5d5fb4?0x0:_0x163253[_0xe9c5('0x1e')];var _0x2f050b=_0x5d5fb4?_0x14eb41[_0xe9c5('0x21')]:_0x163253['offset']+_0x163253[_0xe9c5('0x20')];var _0x9d93d;if(_0x2f050b>=_0x23156c){_0x2f050b=_0x23156c;_0x9d93d=0xc8;}else{_0x9d93d=0xce;}_0x5d8236[_0xe9c5('0x1c')](_0x9d93d);return _0x5d8236[_0xe9c5('0x22')](_0xe9c5('0x23'),_0x3678fc+'-'+_0x2f050b+'/'+_0x23156c)['json'](_0x14eb41);}return null;};}function patchUpdates(_0x51e860){return function(_0xaa891){try{jsonpatch['apply'](_0xaa891,_0x51e860,!![]);}catch(_0x3c3d53){return BPromise[_0xe9c5('0x24')](_0x3c3d53);}return _0xaa891[_0xe9c5('0x25')]();};}function saveUpdates(_0x4d16bc,_0x5750ff){return function(_0x391582){if(_0x391582){return _0x391582[_0xe9c5('0x26')](_0x4d16bc)[_0xe9c5('0x27')](function(_0x189a13){return _0x189a13;});}return null;};}function removeEntity(_0x34a7c8,_0x245161){return function(_0x44ba59){if(_0x44ba59){return _0x44ba59[_0xe9c5('0x28')]()[_0xe9c5('0x27')](function(){_0x34a7c8[_0xe9c5('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5c8bb7,_0x250e1c){return function(_0x3dd39d){if(!_0x3dd39d){_0x5c8bb7[_0xe9c5('0x1a')](0x194);}return _0x3dd39d;};}function handleError(_0x3bf679,_0x33fe71){_0x33fe71=_0x33fe71||0x1f4;return function(_0x100eda){logger['error'](_0x100eda[_0xe9c5('0x29')]);if(_0x100eda['name']){delete _0x100eda[_0xe9c5('0x2a')];}_0x3bf679['status'](_0x33fe71)[_0xe9c5('0x2b')](_0x100eda);};}exports[_0xe9c5('0x2c')]=function(_0x52d008,_0x36d145){var _0x46d253={},_0x334f5a={},_0x37cfa5={'count':0x0,'rows':[]};var _0x1fa0f6=_['map'](db[_0xe9c5('0x2d')]['rawAttributes'],function(_0x46d3e6){return{'name':_0x46d3e6['fieldName'],'type':_0x46d3e6[_0xe9c5('0x2e')][_0xe9c5('0x2f')]};});_0x334f5a[_0xe9c5('0x30')]=_[_0xe9c5('0x31')](_0x1fa0f6,_0xe9c5('0x2a'));_0x334f5a['query']=_[_0xe9c5('0x32')](_0x52d008[_0xe9c5('0x33')]);_0x334f5a[_0xe9c5('0x34')]=_[_0xe9c5('0x35')](_0x334f5a[_0xe9c5('0x30')],_0x334f5a['query']);_0x46d253['attributes']=_[_0xe9c5('0x35')](_0x334f5a[_0xe9c5('0x30')],qs[_0xe9c5('0x36')](_0x52d008[_0xe9c5('0x33')][_0xe9c5('0x36')]));_0x46d253[_0xe9c5('0x37')]=_0x46d253[_0xe9c5('0x37')][_0xe9c5('0x38')]?_0x46d253['attributes']:_0x334f5a[_0xe9c5('0x30')];if(!_0x52d008[_0xe9c5('0x33')]['hasOwnProperty'](_0xe9c5('0x39'))){_0x46d253['limit']=qs[_0xe9c5('0x20')](_0x52d008[_0xe9c5('0x33')][_0xe9c5('0x20')]);_0x46d253[_0xe9c5('0x1e')]=qs[_0xe9c5('0x1e')](_0x52d008[_0xe9c5('0x33')][_0xe9c5('0x1e')]);}_0x46d253[_0xe9c5('0x3a')]=qs[_0xe9c5('0x3b')](_0x52d008[_0xe9c5('0x33')][_0xe9c5('0x3b')]);_0x46d253[_0xe9c5('0x3c')]=qs[_0xe9c5('0x34')](_[_0xe9c5('0x3d')](_0x52d008[_0xe9c5('0x33')],_0x334f5a[_0xe9c5('0x34')]),_0x1fa0f6);if(_0x52d008[_0xe9c5('0x33')][_0xe9c5('0x3e')]){_0x46d253[_0xe9c5('0x3c')]=_['merge'](_0x46d253[_0xe9c5('0x3c')],{'$or':_[_0xe9c5('0x31')](_0x1fa0f6,function(_0x19480d){if(_0x19480d[_0xe9c5('0x2e')]!==_0xe9c5('0x3f')){var _0x3b85bf={};_0x3b85bf[_0x19480d['name']]={'$like':'%'+_0x52d008[_0xe9c5('0x33')][_0xe9c5('0x3e')]+'%'};return _0x3b85bf;}})});}_0x46d253=_[_0xe9c5('0x40')]({},_0x46d253,_0x52d008['options']);var _0x34eb01={'where':_0x46d253[_0xe9c5('0x3c')]};return db[_0xe9c5('0x2d')][_0xe9c5('0x21')](_0x34eb01)[_0xe9c5('0x27')](function(_0x3ad23f){_0x37cfa5[_0xe9c5('0x21')]=_0x3ad23f;if(_0x52d008[_0xe9c5('0x33')][_0xe9c5('0x41')]){_0x46d253[_0xe9c5('0x42')]=[{'all':!![]}];}return db[_0xe9c5('0x2d')]['findAll'](_0x46d253);})['then'](function(_0x101421){_0x37cfa5[_0xe9c5('0x43')]=_0x101421;return _0x37cfa5;})[_0xe9c5('0x27')](respondWithFilteredResult(_0x36d145,_0x46d253))[_0xe9c5('0x44')](handleError(_0x36d145,null));};exports['show']=function(_0x4a3fc5,_0x382405){var _0x144e85={'raw':![],'where':{'id':_0x4a3fc5[_0xe9c5('0x45')]['id']}},_0x539bae={};_0x539bae['model']=_['keys'](db['FreshdeskAccount'][_0xe9c5('0x46')]);_0x539bae[_0xe9c5('0x33')]=_[_0xe9c5('0x32')](_0x4a3fc5[_0xe9c5('0x33')]);_0x539bae['filters']=_[_0xe9c5('0x35')](_0x539bae[_0xe9c5('0x30')],_0x539bae[_0xe9c5('0x33')]);_0x144e85[_0xe9c5('0x37')]=_[_0xe9c5('0x35')](_0x539bae[_0xe9c5('0x30')],qs[_0xe9c5('0x36')](_0x4a3fc5[_0xe9c5('0x33')]['fields']));_0x144e85[_0xe9c5('0x37')]=_0x144e85[_0xe9c5('0x37')][_0xe9c5('0x38')]?_0x144e85[_0xe9c5('0x37')]:_0x539bae[_0xe9c5('0x30')];if(_0x4a3fc5[_0xe9c5('0x33')]['includeAll']){_0x144e85['include']=[{'all':!![]}];}_0x144e85=_['merge']({},_0x144e85,_0x4a3fc5['options']);return db[_0xe9c5('0x2d')][_0xe9c5('0x47')](_0x144e85)[_0xe9c5('0x27')](handleEntityNotFound(_0x382405,null))['then'](respondWithResult(_0x382405,null))[_0xe9c5('0x44')](handleError(_0x382405,null));};exports[_0xe9c5('0x48')]=function(_0x1ed99e,_0x1712a1){return db[_0xe9c5('0x2d')][_0xe9c5('0x48')](_0x1ed99e['body'],{})[_0xe9c5('0x27')](respondWithResult(_0x1712a1,0xc9))[_0xe9c5('0x44')](handleError(_0x1712a1,null));};exports[_0xe9c5('0x26')]=function(_0x249940,_0x4f0caa){if(_0x249940[_0xe9c5('0x49')]['id']){delete _0x249940[_0xe9c5('0x49')]['id'];}return db[_0xe9c5('0x2d')][_0xe9c5('0x47')]({'where':{'id':_0x249940[_0xe9c5('0x45')]['id']}})[_0xe9c5('0x27')](handleEntityNotFound(_0x4f0caa,null))['then'](saveUpdates(_0x249940[_0xe9c5('0x49')],null))[_0xe9c5('0x27')](respondWithResult(_0x4f0caa,null))[_0xe9c5('0x44')](handleError(_0x4f0caa,null));};exports[_0xe9c5('0x28')]=function(_0x5e7c24,_0x375f60){return db[_0xe9c5('0x2d')][_0xe9c5('0x47')]({'where':{'id':_0x5e7c24[_0xe9c5('0x45')]['id']}})[_0xe9c5('0x27')](handleEntityNotFound(_0x375f60,null))[_0xe9c5('0x27')](removeEntity(_0x375f60,null))['catch'](handleError(_0x375f60,null));};exports['getConfigurations']=function(_0x1235c3,_0x15380c,_0xf4a735){var _0x677922={};var _0x30a79b={};var _0x143928;var _0x2a9260;return db[_0xe9c5('0x2d')][_0xe9c5('0x4a')]({'where':{'id':_0x1235c3[_0xe9c5('0x45')]['id']}})[_0xe9c5('0x27')](handleEntityNotFound(_0x15380c,null))[_0xe9c5('0x27')](function(_0x2086fd){if(_0x2086fd){_0x143928=_0x2086fd;_0x30a79b[_0xe9c5('0x30')]=_[_0xe9c5('0x32')](db[_0xe9c5('0x4b')]['rawAttributes']);_0x30a79b['query']=_['keys'](_0x1235c3[_0xe9c5('0x33')]);_0x30a79b[_0xe9c5('0x34')]=_[_0xe9c5('0x35')](_0x30a79b['model'],_0x30a79b[_0xe9c5('0x33')]);_0x677922['attributes']=_[_0xe9c5('0x35')](_0x30a79b[_0xe9c5('0x30')],qs[_0xe9c5('0x36')](_0x1235c3[_0xe9c5('0x33')][_0xe9c5('0x36')]));_0x677922['attributes']=_0x677922[_0xe9c5('0x37')][_0xe9c5('0x38')]?_0x677922['attributes']:_0x30a79b[_0xe9c5('0x30')];_0x677922[_0xe9c5('0x3a')]=qs[_0xe9c5('0x3b')](_0x1235c3[_0xe9c5('0x33')]['sort']);_0x677922[_0xe9c5('0x3c')]=qs['filters'](_[_0xe9c5('0x3d')](_0x1235c3[_0xe9c5('0x33')],_0x30a79b[_0xe9c5('0x34')]));if(_0x1235c3[_0xe9c5('0x33')]['filter']){_0x677922[_0xe9c5('0x3c')]=_[_0xe9c5('0x40')](_0x677922[_0xe9c5('0x3c')],{'$or':_[_0xe9c5('0x31')](_0x677922[_0xe9c5('0x37')],function(_0x31963c){var _0x54253f={};_0x54253f[_0x31963c]={'$like':'%'+_0x1235c3[_0xe9c5('0x33')][_0xe9c5('0x3e')]+'%'};return _0x54253f;})});}_0x677922=_['merge']({},_0x677922,_0x1235c3[_0xe9c5('0x4c')]);return _0x143928['getConfigurations'](_0x677922);}})[_0xe9c5('0x27')](function(_0x227311){if(_0x227311){_0x2a9260=_0x227311[_0xe9c5('0x38')];if(!_0x1235c3[_0xe9c5('0x33')][_0xe9c5('0x4d')](_0xe9c5('0x39'))){_0x677922[_0xe9c5('0x20')]=qs['limit'](_0x1235c3[_0xe9c5('0x33')][_0xe9c5('0x20')]);_0x677922[_0xe9c5('0x1e')]=qs['offset'](_0x1235c3[_0xe9c5('0x33')]['offset']);}return _0x143928['getConfigurations'](_0x677922);}})[_0xe9c5('0x27')](function(_0x1af7d9){if(_0x1af7d9){return _0x1af7d9?{'count':_0x2a9260,'rows':_0x1af7d9}:null;}})[_0xe9c5('0x27')](respondWithResult(_0x15380c,null))[_0xe9c5('0x44')](handleError(_0x15380c,null));};exports[_0xe9c5('0x4e')]=function(_0x1bd2f5,_0x3c4280,_0x18820f){if(_0x1bd2f5[_0xe9c5('0x49')]['id']){delete _0x1bd2f5[_0xe9c5('0x49')]['id'];}return db['FreshdeskAccount'][_0xe9c5('0x4a')]({'where':{'id':_0x1bd2f5[_0xe9c5('0x45')]['id']}})[_0xe9c5('0x27')](handleEntityNotFound(_0x3c4280,null))[_0xe9c5('0x27')](function(_0x3e2c1b){if(_0x3e2c1b){_0x1bd2f5[_0xe9c5('0x49')][_0xe9c5('0x4f')]=_0x3e2c1b['id'];_0x1bd2f5[_0xe9c5('0x49')][_0xe9c5('0x50')]=integrations['getSubjects'](_0x1bd2f5[_0xe9c5('0x49')][_0xe9c5('0x51')],_0x1bd2f5[_0xe9c5('0x49')][_0xe9c5('0x2e')]);_0x1bd2f5[_0xe9c5('0x49')][_0xe9c5('0x52')]=integrations[_0xe9c5('0x53')](_0x1bd2f5['body'][_0xe9c5('0x51')],_0x1bd2f5[_0xe9c5('0x49')][_0xe9c5('0x2e')]);return db[_0xe9c5('0x4b')][_0xe9c5('0x48')](_0x1bd2f5['body'],{'include':[{'model':db[_0xe9c5('0x54')],'as':'Subjects'},{'model':db['FreshdeskField'],'as':_0xe9c5('0x52')}]});}return null;})[_0xe9c5('0x27')](respondWithResult(_0x3c4280,null))['catch'](handleError(_0x3c4280,null));};exports['getFields']=function(_0x2a4821,_0x583369,_0x476fee){var _0x4155d4='';return db['FreshdeskAccount'][_0xe9c5('0x4a')]({'where':{'id':_0x2a4821[_0xe9c5('0x45')]['id']},'attributes':['id',_0xe9c5('0x55'),_0xe9c5('0x56')]})[_0xe9c5('0x27')](handleEntityNotFound(_0x583369,null))[_0xe9c5('0x27')](function(_0x58b9b2){if(_0x58b9b2){_0x4155d4=_0x58b9b2[_0xe9c5('0x55')];var _0x12bf41=_0x4155d4[_0xe9c5('0x57')](-0x1);if(_0x12bf41==='/'){_0x4155d4=_0x4155d4[_0xe9c5('0x58')](0x0,_0x4155d4[_0xe9c5('0x59')](_0x12bf41));}return rp({'method':_0xe9c5('0x5a'),'uri':util['format'](_0xe9c5('0x5b'),_0x4155d4,_0xe9c5('0x5c')),'headers':{'Authorization':util['format'](_0xe9c5('0x5d'),new Buffer(util[_0xe9c5('0x5e')](_0xe9c5('0x5f'),_0x58b9b2[_0xe9c5('0x56')]))[_0xe9c5('0x60')](_0xe9c5('0x61')))},'json':!![]});}})['then'](function(_0x399161){if(_0x399161){var _0x5b1fc4=['requester','subject',_0xe9c5('0x62'),_0xe9c5('0x63'),_0xe9c5('0x1c'),_0xe9c5('0x64'),_0xe9c5('0x65'),_0xe9c5('0x66'),'ticket_type',_0xe9c5('0x65'),_0xe9c5('0x67')];_[_0xe9c5('0x68')](_0x399161,function(_0x355b46){return _0x5b1fc4[_0xe9c5('0x69')](_0x355b46['name'])||!_0x355b46['default']&&_0x355b46[_0xe9c5('0x2e')]!==_0xe9c5('0x6a')&&_0x355b46[_0xe9c5('0x2e')]!==_0xe9c5('0x6b');});return{'count':_0x399161[_0xe9c5('0x38')],'rows':_['map'](_0x399161,function(_0x308f01){return{'id':_0x308f01['name'],'name':_0x308f01[_0xe9c5('0x6c')],'custom':!_0x308f01[_0xe9c5('0x6d')],'options':_0x308f01[_0xe9c5('0x6e')]?_['map'](_0x308f01['choices'],function(_0x505e1c){return{'name':_['capitalize'](_0x505e1c),'value':_0x505e1c};}):[]};})};}})['then'](respondWithResult(_0x583369,null))[_0xe9c5('0x44')](function(_0x29cb33){var _0x100a33=_0x2a4821[_0xe9c5('0x33')][_0xe9c5('0x6f')]?0x1f4:_0x29cb33['statusCode']||0x1f4;logger[_0xe9c5('0x70')]('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x100a33,JSON[_0xe9c5('0x71')](_0x29cb33));delete _0x29cb33['name'];if(_0x100a33===0x191){_0x100a33=0x190;}_0x583369['status'](_0x100a33)['send'](_0x2a4821[_0xe9c5('0x33')]['test']?{'message':_0xe9c5('0x72'),'statusCode':_0x29cb33['statusCode']}:_0x29cb33);});};