Built motion from commit da617fac.|2.6.6
[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 _0xae7b=['Content-Range','apply','reject','save','update','then','destroy','error','send','index','map','FreshdeskAccount','rawAttributes','fieldName','key','model','name','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','type','VIRTUAL','merge','includeAll','include','findAll','catch','show','params','length','options','find','create','body','FreshdeskConfiguration','order','filter','getConfigurations','addConfiguration','findOne','getSubjects','channel','Descriptions','getDescriptions','Subjects','FreshdeskField','remoteUri','apiKey','slice','GET','format','%s/%s','api/v2/ticket_fields','toString','base64','subject','agent','group','company','remove','includes','default','custom_text','custom_dropdown','label','choices','capitalize','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','squel','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end','offset','undefined','count','limit','set'];(function(_0x28ee9c,_0x1ae563){var _0x36f796=function(_0x4b9d9a){while(--_0x4b9d9a){_0x28ee9c['push'](_0x28ee9c['shift']());}};_0x36f796(++_0x1ae563);}(_0xae7b,0xbe));var _0xbae7=function(_0x3a9690,_0x5e06e8){_0x3a9690=_0x3a9690-0x0;var _0x146bef=_0xae7b[_0x3a9690];return _0x146bef;};'use strict';var emlformat=require(_0xbae7('0x0'));var rimraf=require(_0xbae7('0x1'));var zipdir=require(_0xbae7('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xbae7('0x3'));var BPromise=require(_0xbae7('0x4'));var Mustache=require(_0xbae7('0x5'));var util=require(_0xbae7('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xbae7('0x7'));var ejs=require(_0xbae7('0x8'));var fs=require('fs');var fs_extra=require(_0xbae7('0x9'));var _=require('lodash');var squel=require(_0xbae7('0xa'));var crypto=require('crypto');var jsforce=require(_0xbae7('0xb'));var deskjs=require(_0xbae7('0xc'));var toCsv=require(_0xbae7('0x7'));var querystring=require('querystring');var Papa=require(_0xbae7('0xd'));var Redis=require('ioredis');var authService=require(_0xbae7('0xe'));var qs=require(_0xbae7('0xf'));var as=require(_0xbae7('0x10'));var hardwareService=require(_0xbae7('0x11'));var logger=require('../../config/logger')(_0xbae7('0x12'));var utils=require(_0xbae7('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0xbae7('0x14'));var db=require('../../mysqldb')['db'];var integrations=require(_0xbae7('0x15'));function respondWithStatusCode(_0x4090a1,_0x5b1abe){_0x5b1abe=_0x5b1abe||0xcc;return function(_0x4800d4){if(_0x4800d4){return _0x4090a1[_0xbae7('0x16')](_0x5b1abe);}return _0x4090a1[_0xbae7('0x17')](_0x5b1abe)[_0xbae7('0x18')]();};}function respondWithResult(_0x25d1a,_0x4cc0a9){_0x4cc0a9=_0x4cc0a9||0xc8;return function(_0x31f6e5){if(_0x31f6e5){return _0x25d1a['status'](_0x4cc0a9)['json'](_0x31f6e5);}};}function respondWithFilteredResult(_0x249669,_0xb272c4){return function(_0x1b9ee1){if(_0x1b9ee1){var _0x181512=typeof _0xb272c4[_0xbae7('0x19')]===_0xbae7('0x1a')&&typeof _0xb272c4['limit']===_0xbae7('0x1a');var _0x450c85=_0x1b9ee1[_0xbae7('0x1b')];var _0x2cb970=_0x181512?0x0:_0xb272c4[_0xbae7('0x19')];var _0x4fddf6=_0x181512?_0x1b9ee1['count']:_0xb272c4['offset']+_0xb272c4[_0xbae7('0x1c')];var _0x16d4f3;if(_0x4fddf6>=_0x450c85){_0x4fddf6=_0x450c85;_0x16d4f3=0xc8;}else{_0x16d4f3=0xce;}_0x249669[_0xbae7('0x17')](_0x16d4f3);return _0x249669[_0xbae7('0x1d')](_0xbae7('0x1e'),_0x2cb970+'-'+_0x4fddf6+'/'+_0x450c85)['json'](_0x1b9ee1);}return null;};}function patchUpdates(_0xd87dc2){return function(_0x100866){try{jsonpatch[_0xbae7('0x1f')](_0x100866,_0xd87dc2,!![]);}catch(_0x169bfb){return BPromise[_0xbae7('0x20')](_0x169bfb);}return _0x100866[_0xbae7('0x21')]();};}function saveUpdates(_0x32d772,_0x3e4569){return function(_0x361271){if(_0x361271){return _0x361271[_0xbae7('0x22')](_0x32d772)[_0xbae7('0x23')](function(_0x384ea6){return _0x384ea6;});}return null;};}function removeEntity(_0x32f8eb,_0x5c0245){return function(_0x4c09ae){if(_0x4c09ae){return _0x4c09ae[_0xbae7('0x24')]()[_0xbae7('0x23')](function(){_0x32f8eb[_0xbae7('0x17')](0xcc)[_0xbae7('0x18')]();});}};}function handleEntityNotFound(_0x61170a,_0x3e003d){return function(_0x410360){if(!_0x410360){_0x61170a[_0xbae7('0x16')](0x194);}return _0x410360;};}function handleError(_0x1399bc,_0x3e104e){_0x3e104e=_0x3e104e||0x1f4;return function(_0x3df1f1){logger[_0xbae7('0x25')](_0x3df1f1['stack']);if(_0x3df1f1['name']){delete _0x3df1f1['name'];}_0x1399bc[_0xbae7('0x17')](_0x3e104e)[_0xbae7('0x26')](_0x3df1f1);};}exports[_0xbae7('0x27')]=function(_0x12dd23,_0x12797a){var _0x2d8202={},_0x47e12b={},_0x5d702f={'count':0x0,'rows':[]};var _0x41d4fa=_[_0xbae7('0x28')](db[_0xbae7('0x29')][_0xbae7('0x2a')],function(_0xcee3dd){return{'name':_0xcee3dd[_0xbae7('0x2b')],'type':_0xcee3dd['type'][_0xbae7('0x2c')]};});_0x47e12b[_0xbae7('0x2d')]=_[_0xbae7('0x28')](_0x41d4fa,_0xbae7('0x2e'));_0x47e12b[_0xbae7('0x2f')]=_[_0xbae7('0x30')](_0x12dd23[_0xbae7('0x2f')]);_0x47e12b[_0xbae7('0x31')]=_[_0xbae7('0x32')](_0x47e12b[_0xbae7('0x2d')],_0x47e12b[_0xbae7('0x2f')]);_0x2d8202[_0xbae7('0x33')]=_['intersection'](_0x47e12b[_0xbae7('0x2d')],qs[_0xbae7('0x34')](_0x12dd23[_0xbae7('0x2f')]['fields']));_0x2d8202[_0xbae7('0x33')]=_0x2d8202[_0xbae7('0x33')]['length']?_0x2d8202[_0xbae7('0x33')]:_0x47e12b[_0xbae7('0x2d')];if(!_0x12dd23[_0xbae7('0x2f')][_0xbae7('0x35')](_0xbae7('0x36'))){_0x2d8202[_0xbae7('0x1c')]=qs[_0xbae7('0x1c')](_0x12dd23[_0xbae7('0x2f')][_0xbae7('0x1c')]);_0x2d8202['offset']=qs['offset'](_0x12dd23[_0xbae7('0x2f')][_0xbae7('0x19')]);}_0x2d8202['order']=qs[_0xbae7('0x37')](_0x12dd23[_0xbae7('0x2f')][_0xbae7('0x37')]);_0x2d8202[_0xbae7('0x38')]=qs[_0xbae7('0x31')](_[_0xbae7('0x39')](_0x12dd23[_0xbae7('0x2f')],_0x47e12b[_0xbae7('0x31')]),_0x41d4fa);if(_0x12dd23['query']['filter']){_0x2d8202[_0xbae7('0x38')]=_['merge'](_0x2d8202[_0xbae7('0x38')],{'$or':_['map'](_0x41d4fa,function(_0xaf175){if(_0xaf175[_0xbae7('0x3a')]!==_0xbae7('0x3b')){var _0x3fc2c4={};_0x3fc2c4[_0xaf175[_0xbae7('0x2e')]]={'$like':'%'+_0x12dd23[_0xbae7('0x2f')]['filter']+'%'};return _0x3fc2c4;}})});}_0x2d8202=_[_0xbae7('0x3c')]({},_0x2d8202,_0x12dd23['options']);var _0x525772={'where':_0x2d8202[_0xbae7('0x38')]};return db[_0xbae7('0x29')][_0xbae7('0x1b')](_0x525772)[_0xbae7('0x23')](function(_0x32592c){_0x5d702f['count']=_0x32592c;if(_0x12dd23[_0xbae7('0x2f')][_0xbae7('0x3d')]){_0x2d8202[_0xbae7('0x3e')]=[{'all':!![]}];}return db[_0xbae7('0x29')][_0xbae7('0x3f')](_0x2d8202);})['then'](function(_0x2f8193){_0x5d702f['rows']=_0x2f8193;return _0x5d702f;})[_0xbae7('0x23')](respondWithFilteredResult(_0x12797a,_0x2d8202))[_0xbae7('0x40')](handleError(_0x12797a,null));};exports[_0xbae7('0x41')]=function(_0x472686,_0x1895ef){var _0x57f345={'raw':![],'where':{'id':_0x472686[_0xbae7('0x42')]['id']}},_0x41b647={};_0x41b647[_0xbae7('0x2d')]=_[_0xbae7('0x30')](db[_0xbae7('0x29')][_0xbae7('0x2a')]);_0x41b647[_0xbae7('0x2f')]=_['keys'](_0x472686[_0xbae7('0x2f')]);_0x41b647[_0xbae7('0x31')]=_[_0xbae7('0x32')](_0x41b647[_0xbae7('0x2d')],_0x41b647[_0xbae7('0x2f')]);_0x57f345[_0xbae7('0x33')]=_['intersection'](_0x41b647['model'],qs[_0xbae7('0x34')](_0x472686[_0xbae7('0x2f')]['fields']));_0x57f345[_0xbae7('0x33')]=_0x57f345[_0xbae7('0x33')][_0xbae7('0x43')]?_0x57f345[_0xbae7('0x33')]:_0x41b647[_0xbae7('0x2d')];if(_0x472686['query'][_0xbae7('0x3d')]){_0x57f345[_0xbae7('0x3e')]=[{'all':!![]}];}_0x57f345=_[_0xbae7('0x3c')]({},_0x57f345,_0x472686[_0xbae7('0x44')]);return db['FreshdeskAccount'][_0xbae7('0x45')](_0x57f345)[_0xbae7('0x23')](handleEntityNotFound(_0x1895ef,null))[_0xbae7('0x23')](respondWithResult(_0x1895ef,null))[_0xbae7('0x40')](handleError(_0x1895ef,null));};exports['create']=function(_0x11722e,_0x325de4){return db[_0xbae7('0x29')][_0xbae7('0x46')](_0x11722e['body'],{})[_0xbae7('0x23')](respondWithResult(_0x325de4,0xc9))[_0xbae7('0x40')](handleError(_0x325de4,null));};exports[_0xbae7('0x22')]=function(_0x363b7b,_0x30b469){if(_0x363b7b['body']['id']){delete _0x363b7b['body']['id'];}return db['FreshdeskAccount'][_0xbae7('0x45')]({'where':{'id':_0x363b7b[_0xbae7('0x42')]['id']}})[_0xbae7('0x23')](handleEntityNotFound(_0x30b469,null))[_0xbae7('0x23')](saveUpdates(_0x363b7b[_0xbae7('0x47')],null))['then'](respondWithResult(_0x30b469,null))['catch'](handleError(_0x30b469,null));};exports[_0xbae7('0x24')]=function(_0x46f0a9,_0x45a4c7){return db['FreshdeskAccount'][_0xbae7('0x45')]({'where':{'id':_0x46f0a9[_0xbae7('0x42')]['id']}})[_0xbae7('0x23')](handleEntityNotFound(_0x45a4c7,null))[_0xbae7('0x23')](removeEntity(_0x45a4c7,null))[_0xbae7('0x40')](handleError(_0x45a4c7,null));};exports['getConfigurations']=function(_0x2ccd2c,_0x59ac8a,_0x26e0e6){var _0x35b301={};var _0x472a20={};var _0x891e31;var _0x384fbc;return db[_0xbae7('0x29')]['findOne']({'where':{'id':_0x2ccd2c[_0xbae7('0x42')]['id']}})[_0xbae7('0x23')](handleEntityNotFound(_0x59ac8a,null))['then'](function(_0x4cbcda){if(_0x4cbcda){_0x891e31=_0x4cbcda;_0x472a20['model']=_['keys'](db[_0xbae7('0x48')][_0xbae7('0x2a')]);_0x472a20[_0xbae7('0x2f')]=_[_0xbae7('0x30')](_0x2ccd2c[_0xbae7('0x2f')]);_0x472a20[_0xbae7('0x31')]=_['intersection'](_0x472a20[_0xbae7('0x2d')],_0x472a20[_0xbae7('0x2f')]);_0x35b301[_0xbae7('0x33')]=_[_0xbae7('0x32')](_0x472a20['model'],qs[_0xbae7('0x34')](_0x2ccd2c[_0xbae7('0x2f')]['fields']));_0x35b301[_0xbae7('0x33')]=_0x35b301[_0xbae7('0x33')]['length']?_0x35b301['attributes']:_0x472a20[_0xbae7('0x2d')];_0x35b301[_0xbae7('0x49')]=qs[_0xbae7('0x37')](_0x2ccd2c[_0xbae7('0x2f')][_0xbae7('0x37')]);_0x35b301[_0xbae7('0x38')]=qs[_0xbae7('0x31')](_[_0xbae7('0x39')](_0x2ccd2c[_0xbae7('0x2f')],_0x472a20[_0xbae7('0x31')]));if(_0x2ccd2c['query'][_0xbae7('0x4a')]){_0x35b301[_0xbae7('0x38')]=_[_0xbae7('0x3c')](_0x35b301[_0xbae7('0x38')],{'$or':_[_0xbae7('0x28')](_0x35b301[_0xbae7('0x33')],function(_0x52a2b4){var _0x315f2c={};_0x315f2c[_0x52a2b4]={'$like':'%'+_0x2ccd2c[_0xbae7('0x2f')][_0xbae7('0x4a')]+'%'};return _0x315f2c;})});}_0x35b301=_[_0xbae7('0x3c')]({},_0x35b301,_0x2ccd2c['options']);return _0x891e31[_0xbae7('0x4b')](_0x35b301);}})['then'](function(_0x35b02c){if(_0x35b02c){_0x384fbc=_0x35b02c[_0xbae7('0x43')];if(!_0x2ccd2c[_0xbae7('0x2f')][_0xbae7('0x35')](_0xbae7('0x36'))){_0x35b301['limit']=qs[_0xbae7('0x1c')](_0x2ccd2c[_0xbae7('0x2f')][_0xbae7('0x1c')]);_0x35b301['offset']=qs['offset'](_0x2ccd2c['query']['offset']);}return _0x891e31[_0xbae7('0x4b')](_0x35b301);}})['then'](function(_0x2ac856){if(_0x2ac856){return _0x2ac856?{'count':_0x384fbc,'rows':_0x2ac856}:null;}})[_0xbae7('0x23')](respondWithResult(_0x59ac8a,null))[_0xbae7('0x40')](handleError(_0x59ac8a,null));};exports[_0xbae7('0x4c')]=function(_0x54e404,_0x39e0af,_0x18a369){if(_0x54e404[_0xbae7('0x47')]['id']){delete _0x54e404[_0xbae7('0x47')]['id'];}return db[_0xbae7('0x29')][_0xbae7('0x4d')]({'where':{'id':_0x54e404['params']['id']}})[_0xbae7('0x23')](handleEntityNotFound(_0x39e0af,null))[_0xbae7('0x23')](function(_0x12d49c){if(_0x12d49c){_0x54e404[_0xbae7('0x47')]['AccountId']=_0x12d49c['id'];_0x54e404['body']['Subjects']=integrations[_0xbae7('0x4e')](_0x54e404[_0xbae7('0x47')][_0xbae7('0x4f')],_0x54e404[_0xbae7('0x47')][_0xbae7('0x3a')]);_0x54e404['body'][_0xbae7('0x50')]=integrations[_0xbae7('0x51')](_0x54e404['body'][_0xbae7('0x4f')],_0x54e404[_0xbae7('0x47')][_0xbae7('0x3a')]);return db[_0xbae7('0x48')]['create'](_0x54e404['body'],{'include':[{'model':db['FreshdeskField'],'as':_0xbae7('0x52')},{'model':db[_0xbae7('0x53')],'as':_0xbae7('0x50')}]});}return null;})[_0xbae7('0x23')](respondWithResult(_0x39e0af,null))[_0xbae7('0x40')](handleError(_0x39e0af,null));};exports['getFields']=function(_0x200676,_0x2b726c,_0x288e01){var _0x3e7a7b='';return db[_0xbae7('0x29')][_0xbae7('0x4d')]({'where':{'id':_0x200676['params']['id']},'attributes':['id',_0xbae7('0x54'),_0xbae7('0x55')]})['then'](handleEntityNotFound(_0x2b726c,null))['then'](function(_0x298276){if(_0x298276){_0x3e7a7b=_0x298276[_0xbae7('0x54')];var _0x12adbd=_0x3e7a7b[_0xbae7('0x56')](-0x1);if(_0x12adbd==='/'){_0x3e7a7b=_0x3e7a7b['substring'](0x0,_0x3e7a7b['lastIndexOf'](_0x12adbd));}return rp({'method':_0xbae7('0x57'),'uri':util[_0xbae7('0x58')](_0xbae7('0x59'),_0x3e7a7b,_0xbae7('0x5a')),'headers':{'Authorization':util[_0xbae7('0x58')]('Basic\x20%s',new Buffer(util[_0xbae7('0x58')]('%s:X',_0x298276[_0xbae7('0x55')]))[_0xbae7('0x5b')](_0xbae7('0x5c')))},'json':!![]});}})[_0xbae7('0x23')](function(_0x1103d1){if(_0x1103d1){var _0x12d35a=['requester',_0xbae7('0x5d'),_0xbae7('0x5e'),'description','status','priority',_0xbae7('0x5f'),'source','ticket_type',_0xbae7('0x5f'),_0xbae7('0x60')];_[_0xbae7('0x61')](_0x1103d1,function(_0xc6eefe){return _0x12d35a[_0xbae7('0x62')](_0xc6eefe[_0xbae7('0x2e')])||!_0xc6eefe[_0xbae7('0x63')]&&_0xc6eefe[_0xbae7('0x3a')]!==_0xbae7('0x64')&&_0xc6eefe[_0xbae7('0x3a')]!==_0xbae7('0x65');});return{'count':_0x1103d1['length'],'rows':_[_0xbae7('0x28')](_0x1103d1,function(_0x18dd24){return{'id':_0x18dd24[_0xbae7('0x2e')],'name':_0x18dd24[_0xbae7('0x66')],'custom':!_0x18dd24[_0xbae7('0x63')],'options':_0x18dd24['choices']?_[_0xbae7('0x28')](_0x18dd24[_0xbae7('0x67')],function(_0x2f5188){return{'name':_[_0xbae7('0x68')](_0x2f5188),'value':_0x2f5188};}):[]};})};}})[_0xbae7('0x23')](respondWithResult(_0x2b726c,null))['catch'](function(_0x20d4e6){var _0x2d46e5=_0x200676[_0xbae7('0x2f')]['test']?0x1f4:_0x20d4e6[_0xbae7('0x69')]||0x1f4;logger[_0xbae7('0x25')](_0xbae7('0x6a'),_0xbae7('0x6b'),_0x2d46e5,JSON['stringify'](_0x20d4e6));delete _0x20d4e6[_0xbae7('0x2e')];if(_0x2d46e5===0x191){_0x2d46e5=0x190;}_0x2b726c[_0xbae7('0x17')](_0x2d46e5)[_0xbae7('0x26')](_0x200676['query'][_0xbae7('0x6c')]?{'message':_0xbae7('0x6d'),'statusCode':_0x20d4e6[_0xbae7('0x69')]}:_0x20d4e6);});};