Built motion from commit f0a64034.|2.6.11
[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 _0x93e6=['where','pick','filter','merge','map','VIRTUAL','options','includeAll','include','findAll','rows','show','rawAttributes','catch','create','body','update','find','getConfigurations','findOne','params','FreshdeskConfiguration','addConfiguration','AccountId','Subjects','getSubjects','type','Descriptions','getDescriptions','channel','FreshdeskField','getFields','remoteUri','slice','lastIndexOf','GET','%s/%s','api/v2/ticket_fields','format','Basic\x20%s','%s:X','toString','base64','requester','description','priority','group','source','remove','default','custom_text','custom_dropdown','choices','capitalize','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','send','Wrong\x20credentials','eml-format','fast-json-patch','moment','mustache','util','path','to-csv','ejs','fs-extra','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','index','FreshdeskAccount','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort'];(function(_0x51e496,_0xcd0e4b){var _0x19cb20=function(_0x1c0a7d){while(--_0x1c0a7d){_0x51e496['push'](_0x51e496['shift']());}};_0x19cb20(++_0xcd0e4b);}(_0x93e6,0x11e));var _0x693e=function(_0x46da7a,_0x534410){_0x46da7a=_0x46da7a-0x0;var _0xe8f722=_0x93e6[_0x46da7a];return _0xe8f722;};'use strict';var emlformat=require(_0x693e('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x693e('0x1'));var rp=require('request-promise');var moment=require(_0x693e('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x693e('0x3'));var util=require(_0x693e('0x4'));var path=require(_0x693e('0x5'));var sox=require('sox');var csv=require(_0x693e('0x6'));var ejs=require(_0x693e('0x7'));var fs=require('fs');var fs_extra=require(_0x693e('0x8'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x693e('0x9'));var deskjs=require('desk.js');var toCsv=require(_0x693e('0x6'));var querystring=require(_0x693e('0xa'));var Papa=require(_0x693e('0xb'));var Redis=require('ioredis');var authService=require(_0x693e('0xc'));var qs=require('../../components/parsers/qs');var as=require(_0x693e('0xd'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x693e('0xe'))('api');var utils=require('../../config/utils');var config=require(_0x693e('0xf'));var licenseUtil=require(_0x693e('0x10'));var db=require(_0x693e('0x11'))['db'];var integrations=require(_0x693e('0x12'));function respondWithStatusCode(_0x5bc8a3,_0x256143){_0x256143=_0x256143||0xcc;return function(_0x172b79){if(_0x172b79){return _0x5bc8a3[_0x693e('0x13')](_0x256143);}return _0x5bc8a3[_0x693e('0x14')](_0x256143)[_0x693e('0x15')]();};}function respondWithResult(_0x2d8e11,_0x3e44ba){_0x3e44ba=_0x3e44ba||0xc8;return function(_0x4a7626){if(_0x4a7626){return _0x2d8e11[_0x693e('0x14')](_0x3e44ba)[_0x693e('0x16')](_0x4a7626);}};}function respondWithFilteredResult(_0xb91404,_0x54d946){return function(_0x18b748){if(_0x18b748){var _0x7103b1=typeof _0x54d946[_0x693e('0x17')]===_0x693e('0x18')&&typeof _0x54d946[_0x693e('0x19')]===_0x693e('0x18');var _0x31a0bc=_0x18b748['count'];var _0x593916=_0x7103b1?0x0:_0x54d946['offset'];var _0x149325=_0x7103b1?_0x18b748[_0x693e('0x1a')]:_0x54d946['offset']+_0x54d946['limit'];var _0x809b63;if(_0x149325>=_0x31a0bc){_0x149325=_0x31a0bc;_0x809b63=0xc8;}else{_0x809b63=0xce;}_0xb91404[_0x693e('0x14')](_0x809b63);return _0xb91404[_0x693e('0x1b')](_0x693e('0x1c'),_0x593916+'-'+_0x149325+'/'+_0x31a0bc)['json'](_0x18b748);}return null;};}function patchUpdates(_0x21dbdc){return function(_0x40aee8){try{jsonpatch[_0x693e('0x1d')](_0x40aee8,_0x21dbdc,!![]);}catch(_0x48f7c2){return BPromise[_0x693e('0x1e')](_0x48f7c2);}return _0x40aee8[_0x693e('0x1f')]();};}function saveUpdates(_0x569646,_0x433d14){return function(_0x1e5c04){if(_0x1e5c04){return _0x1e5c04['update'](_0x569646)[_0x693e('0x20')](function(_0x2c9340){return _0x2c9340;});}return null;};}function removeEntity(_0x51f0f0,_0x3847be){return function(_0x25c39e){if(_0x25c39e){return _0x25c39e[_0x693e('0x21')]()[_0x693e('0x20')](function(){_0x51f0f0[_0x693e('0x14')](0xcc)[_0x693e('0x15')]();});}};}function handleEntityNotFound(_0x24b9bf,_0x13fcb9){return function(_0x2225f4){if(!_0x2225f4){_0x24b9bf[_0x693e('0x13')](0x194);}return _0x2225f4;};}function handleError(_0x761568,_0x17cbb6){_0x17cbb6=_0x17cbb6||0x1f4;return function(_0x232883){logger[_0x693e('0x22')](_0x232883[_0x693e('0x23')]);if(_0x232883[_0x693e('0x24')]){delete _0x232883[_0x693e('0x24')];}_0x761568[_0x693e('0x14')](_0x17cbb6)['send'](_0x232883);};}exports[_0x693e('0x25')]=function(_0x1c002d,_0x1ea8e1){var _0x3d350b={},_0x26b9c4={},_0x5f3b88={'count':0x0,'rows':[]};var _0x207fc4=_['map'](db[_0x693e('0x26')]['rawAttributes'],function(_0x279c2e){return{'name':_0x279c2e[_0x693e('0x27')],'type':_0x279c2e['type'][_0x693e('0x28')]};});_0x26b9c4[_0x693e('0x29')]=_['map'](_0x207fc4,_0x693e('0x24'));_0x26b9c4[_0x693e('0x2a')]=_[_0x693e('0x2b')](_0x1c002d[_0x693e('0x2a')]);_0x26b9c4[_0x693e('0x2c')]=_[_0x693e('0x2d')](_0x26b9c4[_0x693e('0x29')],_0x26b9c4[_0x693e('0x2a')]);_0x3d350b[_0x693e('0x2e')]=_[_0x693e('0x2d')](_0x26b9c4[_0x693e('0x29')],qs[_0x693e('0x2f')](_0x1c002d[_0x693e('0x2a')][_0x693e('0x2f')]));_0x3d350b[_0x693e('0x2e')]=_0x3d350b[_0x693e('0x2e')][_0x693e('0x30')]?_0x3d350b[_0x693e('0x2e')]:_0x26b9c4[_0x693e('0x29')];if(!_0x1c002d['query'][_0x693e('0x31')](_0x693e('0x32'))){_0x3d350b['limit']=qs[_0x693e('0x19')](_0x1c002d[_0x693e('0x2a')]['limit']);_0x3d350b['offset']=qs[_0x693e('0x17')](_0x1c002d[_0x693e('0x2a')][_0x693e('0x17')]);}_0x3d350b[_0x693e('0x33')]=qs[_0x693e('0x34')](_0x1c002d[_0x693e('0x2a')][_0x693e('0x34')]);_0x3d350b[_0x693e('0x35')]=qs['filters'](_[_0x693e('0x36')](_0x1c002d[_0x693e('0x2a')],_0x26b9c4['filters']),_0x207fc4);if(_0x1c002d[_0x693e('0x2a')][_0x693e('0x37')]){_0x3d350b[_0x693e('0x35')]=_[_0x693e('0x38')](_0x3d350b[_0x693e('0x35')],{'$or':_[_0x693e('0x39')](_0x207fc4,function(_0x3fa71f){if(_0x3fa71f['type']!==_0x693e('0x3a')){var _0x1c93c6={};_0x1c93c6[_0x3fa71f[_0x693e('0x24')]]={'$like':'%'+_0x1c002d['query'][_0x693e('0x37')]+'%'};return _0x1c93c6;}})});}_0x3d350b=_['merge']({},_0x3d350b,_0x1c002d[_0x693e('0x3b')]);var _0x8a2f3={'where':_0x3d350b['where']};return db['FreshdeskAccount'][_0x693e('0x1a')](_0x8a2f3)[_0x693e('0x20')](function(_0x1303e0){_0x5f3b88[_0x693e('0x1a')]=_0x1303e0;if(_0x1c002d[_0x693e('0x2a')][_0x693e('0x3c')]){_0x3d350b[_0x693e('0x3d')]=[{'all':!![]}];}return db[_0x693e('0x26')][_0x693e('0x3e')](_0x3d350b);})[_0x693e('0x20')](function(_0x45a329){_0x5f3b88[_0x693e('0x3f')]=_0x45a329;return _0x5f3b88;})['then'](respondWithFilteredResult(_0x1ea8e1,_0x3d350b))['catch'](handleError(_0x1ea8e1,null));};exports[_0x693e('0x40')]=function(_0x288d86,_0x2c26d0){var _0x461047={'raw':![],'where':{'id':_0x288d86['params']['id']}},_0x291244={};_0x291244[_0x693e('0x29')]=_[_0x693e('0x2b')](db[_0x693e('0x26')][_0x693e('0x41')]);_0x291244[_0x693e('0x2a')]=_[_0x693e('0x2b')](_0x288d86[_0x693e('0x2a')]);_0x291244[_0x693e('0x2c')]=_['intersection'](_0x291244[_0x693e('0x29')],_0x291244['query']);_0x461047[_0x693e('0x2e')]=_[_0x693e('0x2d')](_0x291244['model'],qs[_0x693e('0x2f')](_0x288d86[_0x693e('0x2a')][_0x693e('0x2f')]));_0x461047['attributes']=_0x461047[_0x693e('0x2e')][_0x693e('0x30')]?_0x461047[_0x693e('0x2e')]:_0x291244[_0x693e('0x29')];if(_0x288d86[_0x693e('0x2a')][_0x693e('0x3c')]){_0x461047[_0x693e('0x3d')]=[{'all':!![]}];}_0x461047=_[_0x693e('0x38')]({},_0x461047,_0x288d86[_0x693e('0x3b')]);return db[_0x693e('0x26')]['find'](_0x461047)['then'](handleEntityNotFound(_0x2c26d0,null))[_0x693e('0x20')](respondWithResult(_0x2c26d0,null))[_0x693e('0x42')](handleError(_0x2c26d0,null));};exports[_0x693e('0x43')]=function(_0x419be2,_0x83e206){return db['FreshdeskAccount'][_0x693e('0x43')](_0x419be2[_0x693e('0x44')],{})[_0x693e('0x20')](respondWithResult(_0x83e206,0xc9))[_0x693e('0x42')](handleError(_0x83e206,null));};exports[_0x693e('0x45')]=function(_0x1186f3,_0x511c69){if(_0x1186f3[_0x693e('0x44')]['id']){delete _0x1186f3[_0x693e('0x44')]['id'];}return db[_0x693e('0x26')][_0x693e('0x46')]({'where':{'id':_0x1186f3['params']['id']}})[_0x693e('0x20')](handleEntityNotFound(_0x511c69,null))['then'](saveUpdates(_0x1186f3[_0x693e('0x44')],null))[_0x693e('0x20')](respondWithResult(_0x511c69,null))[_0x693e('0x42')](handleError(_0x511c69,null));};exports[_0x693e('0x21')]=function(_0x245229,_0x2085a5){return db[_0x693e('0x26')][_0x693e('0x46')]({'where':{'id':_0x245229['params']['id']}})['then'](handleEntityNotFound(_0x2085a5,null))[_0x693e('0x20')](removeEntity(_0x2085a5,null))[_0x693e('0x42')](handleError(_0x2085a5,null));};exports[_0x693e('0x47')]=function(_0x1fc19f,_0x382781,_0x56b553){var _0x3a7b63={};var _0x2bb552={};var _0x573ce1;var _0x2c2406;return db[_0x693e('0x26')][_0x693e('0x48')]({'where':{'id':_0x1fc19f[_0x693e('0x49')]['id']}})[_0x693e('0x20')](handleEntityNotFound(_0x382781,null))[_0x693e('0x20')](function(_0x1b9a0f){if(_0x1b9a0f){_0x573ce1=_0x1b9a0f;_0x2bb552[_0x693e('0x29')]=_[_0x693e('0x2b')](db[_0x693e('0x4a')][_0x693e('0x41')]);_0x2bb552[_0x693e('0x2a')]=_[_0x693e('0x2b')](_0x1fc19f['query']);_0x2bb552['filters']=_['intersection'](_0x2bb552[_0x693e('0x29')],_0x2bb552[_0x693e('0x2a')]);_0x3a7b63[_0x693e('0x2e')]=_[_0x693e('0x2d')](_0x2bb552[_0x693e('0x29')],qs['fields'](_0x1fc19f['query'][_0x693e('0x2f')]));_0x3a7b63[_0x693e('0x2e')]=_0x3a7b63[_0x693e('0x2e')][_0x693e('0x30')]?_0x3a7b63[_0x693e('0x2e')]:_0x2bb552[_0x693e('0x29')];_0x3a7b63['order']=qs[_0x693e('0x34')](_0x1fc19f[_0x693e('0x2a')][_0x693e('0x34')]);_0x3a7b63[_0x693e('0x35')]=qs['filters'](_['pick'](_0x1fc19f[_0x693e('0x2a')],_0x2bb552[_0x693e('0x2c')]));if(_0x1fc19f['query'][_0x693e('0x37')]){_0x3a7b63[_0x693e('0x35')]=_[_0x693e('0x38')](_0x3a7b63[_0x693e('0x35')],{'$or':_[_0x693e('0x39')](_0x3a7b63[_0x693e('0x2e')],function(_0x4f0855){var _0x5de7ec={};_0x5de7ec[_0x4f0855]={'$like':'%'+_0x1fc19f[_0x693e('0x2a')][_0x693e('0x37')]+'%'};return _0x5de7ec;})});}_0x3a7b63=_['merge']({},_0x3a7b63,_0x1fc19f['options']);return _0x573ce1[_0x693e('0x47')](_0x3a7b63);}})[_0x693e('0x20')](function(_0x1d2882){if(_0x1d2882){_0x2c2406=_0x1d2882[_0x693e('0x30')];if(!_0x1fc19f[_0x693e('0x2a')][_0x693e('0x31')](_0x693e('0x32'))){_0x3a7b63['limit']=qs[_0x693e('0x19')](_0x1fc19f[_0x693e('0x2a')]['limit']);_0x3a7b63['offset']=qs[_0x693e('0x17')](_0x1fc19f[_0x693e('0x2a')]['offset']);}return _0x573ce1[_0x693e('0x47')](_0x3a7b63);}})[_0x693e('0x20')](function(_0x47bfa9){if(_0x47bfa9){return _0x47bfa9?{'count':_0x2c2406,'rows':_0x47bfa9}:null;}})[_0x693e('0x20')](respondWithResult(_0x382781,null))[_0x693e('0x42')](handleError(_0x382781,null));};exports[_0x693e('0x4b')]=function(_0x45ef00,_0x1c8f53,_0xcf3116){if(_0x45ef00[_0x693e('0x44')]['id']){delete _0x45ef00[_0x693e('0x44')]['id'];}return db[_0x693e('0x26')][_0x693e('0x48')]({'where':{'id':_0x45ef00[_0x693e('0x49')]['id']}})[_0x693e('0x20')](handleEntityNotFound(_0x1c8f53,null))[_0x693e('0x20')](function(_0x1f3f26){if(_0x1f3f26){_0x45ef00[_0x693e('0x44')][_0x693e('0x4c')]=_0x1f3f26['id'];_0x45ef00[_0x693e('0x44')][_0x693e('0x4d')]=integrations[_0x693e('0x4e')](_0x45ef00[_0x693e('0x44')]['channel'],_0x45ef00['body'][_0x693e('0x4f')]);_0x45ef00[_0x693e('0x44')][_0x693e('0x50')]=integrations[_0x693e('0x51')](_0x45ef00['body'][_0x693e('0x52')],_0x45ef00[_0x693e('0x44')][_0x693e('0x4f')]);return db[_0x693e('0x4a')][_0x693e('0x43')](_0x45ef00[_0x693e('0x44')],{'include':[{'model':db[_0x693e('0x53')],'as':_0x693e('0x4d')},{'model':db[_0x693e('0x53')],'as':'Descriptions'}]});}return null;})[_0x693e('0x20')](respondWithResult(_0x1c8f53,null))[_0x693e('0x42')](handleError(_0x1c8f53,null));};exports[_0x693e('0x54')]=function(_0x537668,_0x2a91b2,_0xdc879b){var _0x2efb85='';return db[_0x693e('0x26')]['findOne']({'where':{'id':_0x537668[_0x693e('0x49')]['id']},'attributes':['id',_0x693e('0x55'),'apiKey']})[_0x693e('0x20')](handleEntityNotFound(_0x2a91b2,null))[_0x693e('0x20')](function(_0x57bfe3){if(_0x57bfe3){_0x2efb85=_0x57bfe3['remoteUri'];var _0x513d06=_0x2efb85[_0x693e('0x56')](-0x1);if(_0x513d06==='/'){_0x2efb85=_0x2efb85['substring'](0x0,_0x2efb85[_0x693e('0x57')](_0x513d06));}return rp({'method':_0x693e('0x58'),'uri':util['format'](_0x693e('0x59'),_0x2efb85,_0x693e('0x5a')),'headers':{'Authorization':util[_0x693e('0x5b')](_0x693e('0x5c'),new Buffer(util[_0x693e('0x5b')](_0x693e('0x5d'),_0x57bfe3['apiKey']))[_0x693e('0x5e')](_0x693e('0x5f')))},'json':!![]});}})[_0x693e('0x20')](function(_0x433a83){if(_0x433a83){var _0x2e4bef=[_0x693e('0x60'),'subject','agent',_0x693e('0x61'),'status',_0x693e('0x62'),_0x693e('0x63'),_0x693e('0x64'),'ticket_type',_0x693e('0x63'),'company'];_[_0x693e('0x65')](_0x433a83,function(_0x1b80e2){return _0x2e4bef['includes'](_0x1b80e2[_0x693e('0x24')])||!_0x1b80e2[_0x693e('0x66')]&&_0x1b80e2[_0x693e('0x4f')]!==_0x693e('0x67')&&_0x1b80e2[_0x693e('0x4f')]!==_0x693e('0x68');});return{'count':_0x433a83[_0x693e('0x30')],'rows':_[_0x693e('0x39')](_0x433a83,function(_0x4823fa){return{'id':_0x4823fa[_0x693e('0x24')],'name':_0x4823fa['label'],'custom':!_0x4823fa[_0x693e('0x66')],'options':_0x4823fa[_0x693e('0x69')]?_['map'](_0x4823fa['choices'],function(_0x2320c9){return{'name':_[_0x693e('0x6a')](_0x2320c9),'value':_0x2320c9};}):[]};})};}})[_0x693e('0x20')](respondWithResult(_0x2a91b2,null))['catch'](function(_0x435aa3){var _0xb92505=_0x537668[_0x693e('0x2a')][_0x693e('0x6b')]?0x1f4:_0x435aa3[_0x693e('0x6c')]||0x1f4;logger[_0x693e('0x22')](_0x693e('0x6d'),_0x693e('0x54'),_0xb92505,JSON[_0x693e('0x6e')](_0x435aa3));delete _0x435aa3[_0x693e('0x24')];if(_0xb92505===0x191){_0xb92505=0x190;}_0x2a91b2[_0x693e('0x14')](_0xb92505)[_0x693e('0x6f')](_0x537668[_0x693e('0x2a')][_0x693e('0x6b')]?{'message':_0x693e('0x70'),'statusCode':_0x435aa3[_0x693e('0x6c')]}:_0x435aa3);});};