f5a59a763d47900d4056597ccacc6b5cead959f7
[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 _0x3c2c=['group','source','ticket_type','company','remove','includes','default','custom_dropdown','choices','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','then','error','stack','name','send','index','map','FreshdeskAccount','rawAttributes','fieldName','type','query','keys','attributes','model','length','hasOwnProperty','nolimit','order','sort','filters','pick','where','merge','VIRTUAL','filter','options','includeAll','findAll','catch','show','params','intersection','fields','include','find','create','body','update','destroy','FreshdeskConfiguration','getConfigurations','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','FreshdeskField','getFields','remoteUri','slice','substring','lastIndexOf','GET','format','%s/%s','%s:X','apiKey','toString','base64','requester','subject','agent','description'];(function(_0x1bfdea,_0x1afe11){var _0x5eb627=function(_0x142dce){while(--_0x142dce){_0x1bfdea['push'](_0x1bfdea['shift']());}};_0x5eb627(++_0x1afe11);}(_0x3c2c,0x160));var _0xc3c2=function(_0xfc3f8d,_0x6618c6){_0xfc3f8d=_0xfc3f8d-0x0;var _0x5cfc6f=_0x3c2c[_0xfc3f8d];return _0x5cfc6f;};'use strict';var emlformat=require(_0xc3c2('0x0'));var rimraf=require(_0xc3c2('0x1'));var zipdir=require(_0xc3c2('0x2'));var jsonpatch=require(_0xc3c2('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xc3c2('0x4'));var Mustache=require(_0xc3c2('0x5'));var util=require(_0xc3c2('0x6'));var path=require(_0xc3c2('0x7'));var sox=require('sox');var csv=require(_0xc3c2('0x8'));var ejs=require(_0xc3c2('0x9'));var fs=require('fs');var fs_extra=require(_0xc3c2('0xa'));var _=require(_0xc3c2('0xb'));var squel=require(_0xc3c2('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xc3c2('0x8'));var querystring=require(_0xc3c2('0xd'));var Papa=require('papaparse');var Redis=require(_0xc3c2('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xc3c2('0xf'));var hardwareService=require(_0xc3c2('0x10'));var logger=require(_0xc3c2('0x11'))('api');var utils=require(_0xc3c2('0x12'));var config=require(_0xc3c2('0x13'));var licenseUtil=require(_0xc3c2('0x14'));var db=require(_0xc3c2('0x15'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x3920e7,_0x1befad){_0x1befad=_0x1befad||0xcc;return function(_0x515bbc){if(_0x515bbc){return _0x3920e7[_0xc3c2('0x16')](_0x1befad);}return _0x3920e7['status'](_0x1befad)[_0xc3c2('0x17')]();};}function respondWithResult(_0x4d7d11,_0x154071){_0x154071=_0x154071||0xc8;return function(_0x4a5c39){if(_0x4a5c39){return _0x4d7d11[_0xc3c2('0x18')](_0x154071)[_0xc3c2('0x19')](_0x4a5c39);}};}function respondWithFilteredResult(_0x56bc61,_0x1c2987){return function(_0x36f10f){if(_0x36f10f){var _0x3eb9f5=typeof _0x1c2987[_0xc3c2('0x1a')]===_0xc3c2('0x1b')&&typeof _0x1c2987[_0xc3c2('0x1c')]==='undefined';var _0x57fe9d=_0x36f10f['count'];var _0x2770f7=_0x3eb9f5?0x0:_0x1c2987[_0xc3c2('0x1a')];var _0x2b8c31=_0x3eb9f5?_0x36f10f[_0xc3c2('0x1d')]:_0x1c2987[_0xc3c2('0x1a')]+_0x1c2987['limit'];var _0x533a3d;if(_0x2b8c31>=_0x57fe9d){_0x2b8c31=_0x57fe9d;_0x533a3d=0xc8;}else{_0x533a3d=0xce;}_0x56bc61[_0xc3c2('0x18')](_0x533a3d);return _0x56bc61[_0xc3c2('0x1e')](_0xc3c2('0x1f'),_0x2770f7+'-'+_0x2b8c31+'/'+_0x57fe9d)['json'](_0x36f10f);}return null;};}function patchUpdates(_0x42feba){return function(_0x48bb27){try{jsonpatch[_0xc3c2('0x20')](_0x48bb27,_0x42feba,!![]);}catch(_0x1d317a){return BPromise[_0xc3c2('0x21')](_0x1d317a);}return _0x48bb27['save']();};}function saveUpdates(_0x2ca609,_0x340c75){return function(_0x1b44c4){if(_0x1b44c4){return _0x1b44c4['update'](_0x2ca609)[_0xc3c2('0x22')](function(_0x3287a3){return _0x3287a3;});}return null;};}function removeEntity(_0x6ad7af,_0x5d7789){return function(_0x2133bc){if(_0x2133bc){return _0x2133bc['destroy']()[_0xc3c2('0x22')](function(){_0x6ad7af[_0xc3c2('0x18')](0xcc)[_0xc3c2('0x17')]();});}};}function handleEntityNotFound(_0x38d0b9,_0x15f5f9){return function(_0x2f7a0b){if(!_0x2f7a0b){_0x38d0b9[_0xc3c2('0x16')](0x194);}return _0x2f7a0b;};}function handleError(_0x4b6504,_0x48fa15){_0x48fa15=_0x48fa15||0x1f4;return function(_0x58fd7a){logger[_0xc3c2('0x23')](_0x58fd7a[_0xc3c2('0x24')]);if(_0x58fd7a[_0xc3c2('0x25')]){delete _0x58fd7a['name'];}_0x4b6504[_0xc3c2('0x18')](_0x48fa15)[_0xc3c2('0x26')](_0x58fd7a);};}exports[_0xc3c2('0x27')]=function(_0x2bc3b7,_0x7686ac){var _0x166f8e={},_0x1b9e5e={},_0x246ea8={'count':0x0,'rows':[]};var _0x5bd00d=_[_0xc3c2('0x28')](db[_0xc3c2('0x29')][_0xc3c2('0x2a')],function(_0x3aebab){return{'name':_0x3aebab[_0xc3c2('0x2b')],'type':_0x3aebab[_0xc3c2('0x2c')]['key']};});_0x1b9e5e['model']=_[_0xc3c2('0x28')](_0x5bd00d,'name');_0x1b9e5e[_0xc3c2('0x2d')]=_[_0xc3c2('0x2e')](_0x2bc3b7[_0xc3c2('0x2d')]);_0x1b9e5e['filters']=_['intersection'](_0x1b9e5e['model'],_0x1b9e5e['query']);_0x166f8e[_0xc3c2('0x2f')]=_['intersection'](_0x1b9e5e[_0xc3c2('0x30')],qs['fields'](_0x2bc3b7[_0xc3c2('0x2d')]['fields']));_0x166f8e['attributes']=_0x166f8e[_0xc3c2('0x2f')][_0xc3c2('0x31')]?_0x166f8e[_0xc3c2('0x2f')]:_0x1b9e5e[_0xc3c2('0x30')];if(!_0x2bc3b7[_0xc3c2('0x2d')][_0xc3c2('0x32')](_0xc3c2('0x33'))){_0x166f8e[_0xc3c2('0x1c')]=qs[_0xc3c2('0x1c')](_0x2bc3b7['query']['limit']);_0x166f8e[_0xc3c2('0x1a')]=qs[_0xc3c2('0x1a')](_0x2bc3b7[_0xc3c2('0x2d')][_0xc3c2('0x1a')]);}_0x166f8e[_0xc3c2('0x34')]=qs[_0xc3c2('0x35')](_0x2bc3b7['query'][_0xc3c2('0x35')]);_0x166f8e['where']=qs[_0xc3c2('0x36')](_[_0xc3c2('0x37')](_0x2bc3b7['query'],_0x1b9e5e[_0xc3c2('0x36')]),_0x5bd00d);if(_0x2bc3b7[_0xc3c2('0x2d')]['filter']){_0x166f8e[_0xc3c2('0x38')]=_[_0xc3c2('0x39')](_0x166f8e[_0xc3c2('0x38')],{'$or':_[_0xc3c2('0x28')](_0x5bd00d,function(_0x1a2f48){if(_0x1a2f48[_0xc3c2('0x2c')]!==_0xc3c2('0x3a')){var _0x3f4fd0={};_0x3f4fd0[_0x1a2f48['name']]={'$like':'%'+_0x2bc3b7[_0xc3c2('0x2d')][_0xc3c2('0x3b')]+'%'};return _0x3f4fd0;}})});}_0x166f8e=_[_0xc3c2('0x39')]({},_0x166f8e,_0x2bc3b7[_0xc3c2('0x3c')]);var _0x311c10={'where':_0x166f8e[_0xc3c2('0x38')]};return db[_0xc3c2('0x29')][_0xc3c2('0x1d')](_0x311c10)[_0xc3c2('0x22')](function(_0x3a1d74){_0x246ea8['count']=_0x3a1d74;if(_0x2bc3b7[_0xc3c2('0x2d')][_0xc3c2('0x3d')]){_0x166f8e['include']=[{'all':!![]}];}return db[_0xc3c2('0x29')][_0xc3c2('0x3e')](_0x166f8e);})['then'](function(_0x34354c){_0x246ea8['rows']=_0x34354c;return _0x246ea8;})[_0xc3c2('0x22')](respondWithFilteredResult(_0x7686ac,_0x166f8e))[_0xc3c2('0x3f')](handleError(_0x7686ac,null));};exports[_0xc3c2('0x40')]=function(_0x30217b,_0x15680d){var _0x2ef1db={'raw':![],'where':{'id':_0x30217b[_0xc3c2('0x41')]['id']}},_0x24d9fc={};_0x24d9fc['model']=_[_0xc3c2('0x2e')](db[_0xc3c2('0x29')][_0xc3c2('0x2a')]);_0x24d9fc[_0xc3c2('0x2d')]=_['keys'](_0x30217b['query']);_0x24d9fc['filters']=_[_0xc3c2('0x42')](_0x24d9fc[_0xc3c2('0x30')],_0x24d9fc['query']);_0x2ef1db[_0xc3c2('0x2f')]=_['intersection'](_0x24d9fc[_0xc3c2('0x30')],qs['fields'](_0x30217b[_0xc3c2('0x2d')][_0xc3c2('0x43')]));_0x2ef1db[_0xc3c2('0x2f')]=_0x2ef1db[_0xc3c2('0x2f')][_0xc3c2('0x31')]?_0x2ef1db['attributes']:_0x24d9fc['model'];if(_0x30217b[_0xc3c2('0x2d')][_0xc3c2('0x3d')]){_0x2ef1db[_0xc3c2('0x44')]=[{'all':!![]}];}_0x2ef1db=_[_0xc3c2('0x39')]({},_0x2ef1db,_0x30217b[_0xc3c2('0x3c')]);return db[_0xc3c2('0x29')][_0xc3c2('0x45')](_0x2ef1db)[_0xc3c2('0x22')](handleEntityNotFound(_0x15680d,null))[_0xc3c2('0x22')](respondWithResult(_0x15680d,null))[_0xc3c2('0x3f')](handleError(_0x15680d,null));};exports[_0xc3c2('0x46')]=function(_0x287fe6,_0x3592f0){return db[_0xc3c2('0x29')]['create'](_0x287fe6[_0xc3c2('0x47')],{})[_0xc3c2('0x22')](respondWithResult(_0x3592f0,0xc9))[_0xc3c2('0x3f')](handleError(_0x3592f0,null));};exports[_0xc3c2('0x48')]=function(_0x2321a3,_0x21f50f){if(_0x2321a3[_0xc3c2('0x47')]['id']){delete _0x2321a3[_0xc3c2('0x47')]['id'];}return db[_0xc3c2('0x29')][_0xc3c2('0x45')]({'where':{'id':_0x2321a3[_0xc3c2('0x41')]['id']}})[_0xc3c2('0x22')](handleEntityNotFound(_0x21f50f,null))['then'](saveUpdates(_0x2321a3[_0xc3c2('0x47')],null))['then'](respondWithResult(_0x21f50f,null))[_0xc3c2('0x3f')](handleError(_0x21f50f,null));};exports[_0xc3c2('0x49')]=function(_0x22f607,_0x1d0e9f){return db[_0xc3c2('0x29')]['find']({'where':{'id':_0x22f607[_0xc3c2('0x41')]['id']}})[_0xc3c2('0x22')](handleEntityNotFound(_0x1d0e9f,null))[_0xc3c2('0x22')](removeEntity(_0x1d0e9f,null))[_0xc3c2('0x3f')](handleError(_0x1d0e9f,null));};exports['getConfigurations']=function(_0x16b204,_0x53b8bc,_0x19714d){var _0x3c2bf2={};var _0x1dcfe9={};var _0x148c9e;var _0x27235b;return db[_0xc3c2('0x29')]['findOne']({'where':{'id':_0x16b204[_0xc3c2('0x41')]['id']}})[_0xc3c2('0x22')](handleEntityNotFound(_0x53b8bc,null))[_0xc3c2('0x22')](function(_0x2aa1e8){if(_0x2aa1e8){_0x148c9e=_0x2aa1e8;_0x1dcfe9[_0xc3c2('0x30')]=_[_0xc3c2('0x2e')](db[_0xc3c2('0x4a')][_0xc3c2('0x2a')]);_0x1dcfe9[_0xc3c2('0x2d')]=_[_0xc3c2('0x2e')](_0x16b204[_0xc3c2('0x2d')]);_0x1dcfe9[_0xc3c2('0x36')]=_[_0xc3c2('0x42')](_0x1dcfe9[_0xc3c2('0x30')],_0x1dcfe9['query']);_0x3c2bf2[_0xc3c2('0x2f')]=_['intersection'](_0x1dcfe9[_0xc3c2('0x30')],qs['fields'](_0x16b204[_0xc3c2('0x2d')][_0xc3c2('0x43')]));_0x3c2bf2[_0xc3c2('0x2f')]=_0x3c2bf2['attributes'][_0xc3c2('0x31')]?_0x3c2bf2[_0xc3c2('0x2f')]:_0x1dcfe9[_0xc3c2('0x30')];_0x3c2bf2[_0xc3c2('0x34')]=qs[_0xc3c2('0x35')](_0x16b204[_0xc3c2('0x2d')][_0xc3c2('0x35')]);_0x3c2bf2['where']=qs[_0xc3c2('0x36')](_[_0xc3c2('0x37')](_0x16b204[_0xc3c2('0x2d')],_0x1dcfe9[_0xc3c2('0x36')]));if(_0x16b204[_0xc3c2('0x2d')][_0xc3c2('0x3b')]){_0x3c2bf2[_0xc3c2('0x38')]=_[_0xc3c2('0x39')](_0x3c2bf2[_0xc3c2('0x38')],{'$or':_['map'](_0x3c2bf2[_0xc3c2('0x2f')],function(_0x16956e){var _0x470a28={};_0x470a28[_0x16956e]={'$like':'%'+_0x16b204[_0xc3c2('0x2d')][_0xc3c2('0x3b')]+'%'};return _0x470a28;})});}_0x3c2bf2=_[_0xc3c2('0x39')]({},_0x3c2bf2,_0x16b204[_0xc3c2('0x3c')]);return _0x148c9e[_0xc3c2('0x4b')](_0x3c2bf2);}})[_0xc3c2('0x22')](function(_0x5c3bf0){if(_0x5c3bf0){_0x27235b=_0x5c3bf0['length'];if(!_0x16b204[_0xc3c2('0x2d')][_0xc3c2('0x32')](_0xc3c2('0x33'))){_0x3c2bf2['limit']=qs[_0xc3c2('0x1c')](_0x16b204[_0xc3c2('0x2d')][_0xc3c2('0x1c')]);_0x3c2bf2[_0xc3c2('0x1a')]=qs[_0xc3c2('0x1a')](_0x16b204[_0xc3c2('0x2d')][_0xc3c2('0x1a')]);}return _0x148c9e[_0xc3c2('0x4b')](_0x3c2bf2);}})[_0xc3c2('0x22')](function(_0x17cb5d){if(_0x17cb5d){return _0x17cb5d?{'count':_0x27235b,'rows':_0x17cb5d}:null;}})[_0xc3c2('0x22')](respondWithResult(_0x53b8bc,null))[_0xc3c2('0x3f')](handleError(_0x53b8bc,null));};exports[_0xc3c2('0x4c')]=function(_0x320203,_0x2684db,_0x3aaa9d){if(_0x320203['body']['id']){delete _0x320203[_0xc3c2('0x47')]['id'];}return db[_0xc3c2('0x29')][_0xc3c2('0x4d')]({'where':{'id':_0x320203[_0xc3c2('0x41')]['id']}})[_0xc3c2('0x22')](handleEntityNotFound(_0x2684db,null))['then'](function(_0x2e7dee){if(_0x2e7dee){_0x320203[_0xc3c2('0x47')][_0xc3c2('0x4e')]=_0x2e7dee['id'];_0x320203[_0xc3c2('0x47')][_0xc3c2('0x4f')]=integrations[_0xc3c2('0x50')](_0x320203['body'][_0xc3c2('0x51')],_0x320203['body'][_0xc3c2('0x2c')]);_0x320203[_0xc3c2('0x47')][_0xc3c2('0x52')]=integrations['getDescriptions'](_0x320203[_0xc3c2('0x47')][_0xc3c2('0x51')],_0x320203['body'][_0xc3c2('0x2c')]);return db[_0xc3c2('0x4a')][_0xc3c2('0x46')](_0x320203[_0xc3c2('0x47')],{'include':[{'model':db[_0xc3c2('0x53')],'as':_0xc3c2('0x4f')},{'model':db[_0xc3c2('0x53')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x2684db,null))[_0xc3c2('0x3f')](handleError(_0x2684db,null));};exports[_0xc3c2('0x54')]=function(_0x36eef2,_0x2cc71c,_0x554baa){var _0x5371dc='';return db[_0xc3c2('0x29')][_0xc3c2('0x4d')]({'where':{'id':_0x36eef2[_0xc3c2('0x41')]['id']},'attributes':['id',_0xc3c2('0x55'),'apiKey']})[_0xc3c2('0x22')](handleEntityNotFound(_0x2cc71c,null))[_0xc3c2('0x22')](function(_0x24d1d8){if(_0x24d1d8){_0x5371dc=_0x24d1d8[_0xc3c2('0x55')];var _0x1324a6=_0x5371dc[_0xc3c2('0x56')](-0x1);if(_0x1324a6==='/'){_0x5371dc=_0x5371dc[_0xc3c2('0x57')](0x0,_0x5371dc[_0xc3c2('0x58')](_0x1324a6));}return rp({'method':_0xc3c2('0x59'),'uri':util[_0xc3c2('0x5a')](_0xc3c2('0x5b'),_0x5371dc,'api/v2/ticket_fields'),'headers':{'Authorization':util['format']('Basic\x20%s',new Buffer(util[_0xc3c2('0x5a')](_0xc3c2('0x5c'),_0x24d1d8[_0xc3c2('0x5d')]))[_0xc3c2('0x5e')](_0xc3c2('0x5f')))},'json':!![]});}})['then'](function(_0x10d3db){if(_0x10d3db){var _0x3f2bb7=[_0xc3c2('0x60'),_0xc3c2('0x61'),_0xc3c2('0x62'),_0xc3c2('0x63'),_0xc3c2('0x18'),'priority',_0xc3c2('0x64'),_0xc3c2('0x65'),_0xc3c2('0x66'),_0xc3c2('0x64'),_0xc3c2('0x67')];_[_0xc3c2('0x68')](_0x10d3db,function(_0x50e4e7){return _0x3f2bb7[_0xc3c2('0x69')](_0x50e4e7[_0xc3c2('0x25')])||!_0x50e4e7[_0xc3c2('0x6a')]&&_0x50e4e7[_0xc3c2('0x2c')]!=='custom_text'&&_0x50e4e7['type']!==_0xc3c2('0x6b');});return{'count':_0x10d3db['length'],'rows':_[_0xc3c2('0x28')](_0x10d3db,function(_0x366d15){return{'id':_0x366d15[_0xc3c2('0x25')],'name':_0x366d15['label'],'custom':!_0x366d15[_0xc3c2('0x6a')],'options':_0x366d15[_0xc3c2('0x6c')]?_[_0xc3c2('0x28')](_0x366d15[_0xc3c2('0x6c')],function(_0x44501f){return{'name':_['capitalize'](_0x44501f),'value':_0x44501f};}):[]};})};}})[_0xc3c2('0x22')](respondWithResult(_0x2cc71c,null))[_0xc3c2('0x3f')](function(_0x32650a){var _0x34d990=_0x36eef2[_0xc3c2('0x2d')][_0xc3c2('0x6d')]?0x1f4:_0x32650a[_0xc3c2('0x6e')]||0x1f4;logger[_0xc3c2('0x23')](_0xc3c2('0x6f'),_0xc3c2('0x54'),_0x34d990,JSON[_0xc3c2('0x70')](_0x32650a));delete _0x32650a['name'];if(_0x34d990===0x191){_0x34d990=0x190;}_0x2cc71c['status'](_0x34d990)[_0xc3c2('0x26')](_0x36eef2[_0xc3c2('0x2d')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x32650a['statusCode']}:_0x32650a);});};