5561f62e6fa6a1d67d6dd29f3d2b38b52721d41e
[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 _0xfc3b=['reject','save','update','destroy','stack','name','send','index','map','FreshdeskAccount','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','params','keys','rawAttributes','find','create','body','getConfigurations','findOne','FreshdeskConfiguration','pick','Subjects','getSubjects','Descriptions','channel','FreshdeskField','getFields','remoteUri','apiKey','lastIndexOf','format','%s/%s','api/v2/ticket_fields','%s:X','toString','base64','requester','subject','agent','priority','group','source','ticket_type','company','remove','includes','label','choices','capitalize','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../components/integrations/configuration','client','http','request','then','info','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','set','Content-Range','apply'];(function(_0x4719f,_0x361cae){var _0x4ce942=function(_0x768a6b){while(--_0x768a6b){_0x4719f['push'](_0x4719f['shift']());}};_0x4ce942(++_0x361cae);}(_0xfc3b,0xc5));var _0xbfc3=function(_0x38e804,_0x55745b){_0x38e804=_0x38e804-0x0;var _0x4999af=_0xfc3b[_0x38e804];return _0x4999af;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xbfc3('0x0'));var zipdir=require(_0xbfc3('0x1'));var jsonpatch=require(_0xbfc3('0x2'));var rp=require(_0xbfc3('0x3'));var moment=require(_0xbfc3('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xbfc3('0x5'));var path=require(_0xbfc3('0x6'));var sox=require(_0xbfc3('0x7'));var csv=require('to-csv');var ejs=require(_0xbfc3('0x8'));var fs=require('fs');var _=require(_0xbfc3('0x9'));var squel=require(_0xbfc3('0xa'));var crypto=require(_0xbfc3('0xb'));var jsforce=require(_0xbfc3('0xc'));var deskjs=require(_0xbfc3('0xd'));var toCsv=require('to-csv');var querystring=require(_0xbfc3('0xe'));var Papa=require(_0xbfc3('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xbfc3('0x10'));var as=require(_0xbfc3('0x11'));var hardwareService=require(_0xbfc3('0x12'));var logger=require('../../config/logger')(_0xbfc3('0x13'));var utils=require(_0xbfc3('0x14'));var config=require(_0xbfc3('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0xbfc3('0x16'));var jayson=require('jayson/promise');var client=jayson[_0xbfc3('0x17')][_0xbfc3('0x18')]({'port':0x232a});function respondWithRpcPromise(_0xa9281e,_0x168c95,_0x314a2a,_0x132700){return new BPromise(function(_0x45928a,_0x559571){var _0x5c0692=_0x132700||client;return _0x5c0692[_0xbfc3('0x19')](_0xa9281e,_0x314a2a)[_0xbfc3('0x1a')](function(_0x1543f6){logger[_0xbfc3('0x1b')](_0xbfc3('0x1c'),_0x168c95,_0xbfc3('0x1d'));logger[_0xbfc3('0x1e')](_0xbfc3('0x1f'),_0x168c95,'request\x20sent',JSON[_0xbfc3('0x20')](_0x1543f6));if(_0x1543f6['error']){if(_0x1543f6[_0xbfc3('0x21')][_0xbfc3('0x22')]===0x1f4){logger[_0xbfc3('0x21')](_0xbfc3('0x1c'),_0x168c95,_0x1543f6['error'][_0xbfc3('0x23')]);return _0x559571(_0x1543f6[_0xbfc3('0x21')][_0xbfc3('0x23')]);}logger[_0xbfc3('0x21')]('FreshdeskAccount,\x20%s,\x20%s',_0x168c95,_0x1543f6[_0xbfc3('0x21')][_0xbfc3('0x23')]);return _0x45928a(_0x1543f6[_0xbfc3('0x21')][_0xbfc3('0x23')]);}else{logger[_0xbfc3('0x1b')](_0xbfc3('0x1c'),_0x168c95,_0xbfc3('0x1d'));_0x45928a(_0x1543f6[_0xbfc3('0x24')][_0xbfc3('0x23')]);}})[_0xbfc3('0x25')](function(_0x3e5c78){logger[_0xbfc3('0x21')](_0xbfc3('0x1c'),_0x168c95,_0x3e5c78);_0x559571(_0x3e5c78);});});}function respondWithStatusCode(_0x440842,_0x3691df){_0x3691df=_0x3691df||0xcc;return function(_0x429c01){if(_0x429c01){return _0x440842[_0xbfc3('0x26')](_0x3691df);}return _0x440842[_0xbfc3('0x27')](_0x3691df)[_0xbfc3('0x28')]();};}function respondWithResult(_0x4e5121,_0x46a0d5){_0x46a0d5=_0x46a0d5||0xc8;return function(_0x2c8be6){if(_0x2c8be6){return _0x4e5121[_0xbfc3('0x27')](_0x46a0d5)[_0xbfc3('0x29')](_0x2c8be6);}};}function respondWithFilteredResult(_0x32262f,_0x2171dd){return function(_0xecaf6f){if(_0xecaf6f){var _0x3abd98=_0xecaf6f[_0xbfc3('0x2a')],_0x55c8e0=_0x2171dd['offset'],_0x428201=_0x2171dd[_0xbfc3('0x2b')]+_0x2171dd['limit'],_0x3cc412;if(_0x428201>=_0x3abd98){_0x428201=_0x3abd98;_0x3cc412=0xc8;}else{_0x3cc412=0xce;}_0x32262f[_0xbfc3('0x27')](_0x3cc412);return _0x32262f[_0xbfc3('0x2c')](_0xbfc3('0x2d'),_0x55c8e0+'-'+_0x428201+'/'+_0x3abd98)[_0xbfc3('0x29')](_0xecaf6f);}return null;};}function patchUpdates(_0xbff23b){return function(_0x15d012){try{jsonpatch[_0xbfc3('0x2e')](_0x15d012,_0xbff23b,!![]);}catch(_0xe564db){return BPromise[_0xbfc3('0x2f')](_0xe564db);}return _0x15d012[_0xbfc3('0x30')]();};}function saveUpdates(_0x1be09e,_0x2dea45){return function(_0x13547c){if(_0x13547c){return _0x13547c[_0xbfc3('0x31')](_0x1be09e)[_0xbfc3('0x1a')](function(_0x426d8b){return _0x426d8b;});}return null;};}function removeEntity(_0x2b74cd,_0x20e2ec){return function(_0x3cdf64){if(_0x3cdf64){return _0x3cdf64[_0xbfc3('0x32')]()[_0xbfc3('0x1a')](function(){_0x2b74cd[_0xbfc3('0x27')](0xcc)[_0xbfc3('0x28')]();});}};}function handleEntityNotFound(_0xe5007,_0x21db2d){return function(_0xc2665c){if(!_0xc2665c){_0xe5007[_0xbfc3('0x26')](0x194);}return _0xc2665c;};}function handleError(_0x5bd293,_0x422331){_0x422331=_0x422331||0x1f4;return function(_0x1760a3){logger[_0xbfc3('0x21')](_0x1760a3[_0xbfc3('0x33')]);if(_0x1760a3[_0xbfc3('0x34')]){delete _0x1760a3[_0xbfc3('0x34')];}_0x5bd293['status'](_0x422331)[_0xbfc3('0x35')](_0x1760a3);};}exports[_0xbfc3('0x36')]=function(_0x38dd1b,_0x1b5b88){var _0x58ec39={},_0x260bba={},_0x3380a1={'count':0x0,'rows':[]};var _0x5250ed=_[_0xbfc3('0x37')](db[_0xbfc3('0x38')]['rawAttributes'],function(_0x285ef9){return{'name':_0x285ef9[_0xbfc3('0x39')],'type':_0x285ef9[_0xbfc3('0x3a')][_0xbfc3('0x3b')]};});_0x260bba[_0xbfc3('0x3c')]=_['map'](_0x5250ed,'name');_0x260bba[_0xbfc3('0x3d')]=_['keys'](_0x38dd1b[_0xbfc3('0x3d')]);_0x260bba[_0xbfc3('0x3e')]=_[_0xbfc3('0x3f')](_0x260bba[_0xbfc3('0x3c')],_0x260bba['query']);_0x58ec39[_0xbfc3('0x40')]=_['intersection'](_0x260bba['model'],qs['fields'](_0x38dd1b[_0xbfc3('0x3d')][_0xbfc3('0x41')]));_0x58ec39[_0xbfc3('0x40')]=_0x58ec39['attributes'][_0xbfc3('0x42')]?_0x58ec39[_0xbfc3('0x40')]:_0x260bba[_0xbfc3('0x3c')];if(!_0x38dd1b[_0xbfc3('0x3d')][_0xbfc3('0x43')](_0xbfc3('0x44'))){_0x58ec39[_0xbfc3('0x45')]=qs['limit'](_0x38dd1b[_0xbfc3('0x3d')][_0xbfc3('0x45')]);_0x58ec39[_0xbfc3('0x2b')]=qs[_0xbfc3('0x2b')](_0x38dd1b[_0xbfc3('0x3d')]['offset']);}_0x58ec39[_0xbfc3('0x46')]=qs[_0xbfc3('0x47')](_0x38dd1b[_0xbfc3('0x3d')][_0xbfc3('0x47')]);_0x58ec39[_0xbfc3('0x48')]=qs['filters'](_['pick'](_0x38dd1b[_0xbfc3('0x3d')],_0x260bba[_0xbfc3('0x3e')]),_0x5250ed);if(_0x38dd1b[_0xbfc3('0x3d')][_0xbfc3('0x49')]){_0x58ec39[_0xbfc3('0x48')]=_[_0xbfc3('0x4a')](_0x58ec39['where'],{'$or':_[_0xbfc3('0x37')](_0x5250ed,function(_0x45db04){if(_0x45db04[_0xbfc3('0x3a')]!==_0xbfc3('0x4b')){var _0x214015={};_0x214015[_0x45db04[_0xbfc3('0x34')]]={'$like':'%'+_0x38dd1b[_0xbfc3('0x3d')]['filter']+'%'};return _0x214015;}})});}_0x58ec39=_['merge']({},_0x58ec39,_0x38dd1b[_0xbfc3('0x4c')]);var _0x3c0485={'where':_0x58ec39[_0xbfc3('0x48')]};return db['FreshdeskAccount']['count'](_0x3c0485)[_0xbfc3('0x1a')](function(_0x2386fb){_0x3380a1[_0xbfc3('0x2a')]=_0x2386fb;if(_0x38dd1b[_0xbfc3('0x3d')][_0xbfc3('0x4d')]){_0x58ec39[_0xbfc3('0x4e')]=[{'all':!![]}];}return db[_0xbfc3('0x38')][_0xbfc3('0x4f')](_0x58ec39);})[_0xbfc3('0x1a')](function(_0x13c5d6){_0x3380a1[_0xbfc3('0x50')]=_0x13c5d6;return _0x3380a1;})[_0xbfc3('0x1a')](respondWithFilteredResult(_0x1b5b88,_0x58ec39))['catch'](handleError(_0x1b5b88,null));};exports['show']=function(_0xc2cb86,_0xcfb294){var _0x2807f9={'raw':![],'where':{'id':_0xc2cb86[_0xbfc3('0x51')]['id']}},_0x4d2002={};_0x4d2002[_0xbfc3('0x3c')]=_[_0xbfc3('0x52')](db[_0xbfc3('0x38')][_0xbfc3('0x53')]);_0x4d2002[_0xbfc3('0x3d')]=_[_0xbfc3('0x52')](_0xc2cb86['query']);_0x4d2002[_0xbfc3('0x3e')]=_[_0xbfc3('0x3f')](_0x4d2002[_0xbfc3('0x3c')],_0x4d2002[_0xbfc3('0x3d')]);_0x2807f9[_0xbfc3('0x40')]=_['intersection'](_0x4d2002[_0xbfc3('0x3c')],qs['fields'](_0xc2cb86[_0xbfc3('0x3d')][_0xbfc3('0x41')]));_0x2807f9[_0xbfc3('0x40')]=_0x2807f9[_0xbfc3('0x40')][_0xbfc3('0x42')]?_0x2807f9[_0xbfc3('0x40')]:_0x4d2002[_0xbfc3('0x3c')];if(_0xc2cb86[_0xbfc3('0x3d')][_0xbfc3('0x4d')]){_0x2807f9['include']=[{'all':!![]}];}_0x2807f9=_[_0xbfc3('0x4a')]({},_0x2807f9,_0xc2cb86[_0xbfc3('0x4c')]);return db[_0xbfc3('0x38')][_0xbfc3('0x54')](_0x2807f9)[_0xbfc3('0x1a')](handleEntityNotFound(_0xcfb294,null))[_0xbfc3('0x1a')](respondWithResult(_0xcfb294,null))[_0xbfc3('0x25')](handleError(_0xcfb294,null));};exports[_0xbfc3('0x55')]=function(_0x4360f7,_0x1d5edf){return db[_0xbfc3('0x38')][_0xbfc3('0x55')](_0x4360f7[_0xbfc3('0x56')],{})['then'](respondWithResult(_0x1d5edf,0xc9))[_0xbfc3('0x25')](handleError(_0x1d5edf,null));};exports[_0xbfc3('0x31')]=function(_0x5f1e44,_0x487611){if(_0x5f1e44[_0xbfc3('0x56')]['id']){delete _0x5f1e44['body']['id'];}return db['FreshdeskAccount'][_0xbfc3('0x54')]({'where':{'id':_0x5f1e44[_0xbfc3('0x51')]['id']}})[_0xbfc3('0x1a')](handleEntityNotFound(_0x487611,null))[_0xbfc3('0x1a')](saveUpdates(_0x5f1e44[_0xbfc3('0x56')],null))['then'](respondWithResult(_0x487611,null))['catch'](handleError(_0x487611,null));};exports[_0xbfc3('0x32')]=function(_0x5ee9aa,_0x13d05e){return db[_0xbfc3('0x38')][_0xbfc3('0x54')]({'where':{'id':_0x5ee9aa['params']['id']}})[_0xbfc3('0x1a')](handleEntityNotFound(_0x13d05e,null))['then'](removeEntity(_0x13d05e,null))[_0xbfc3('0x25')](handleError(_0x13d05e,null));};exports[_0xbfc3('0x57')]=function(_0x166f0f,_0x2f2e89,_0x2e17d7){var _0x4f17e8={};var _0x230f97={};var _0x2d05b4;var _0x2d8683;return db['FreshdeskAccount'][_0xbfc3('0x58')]({'where':{'id':_0x166f0f[_0xbfc3('0x51')]['id']}})['then'](handleEntityNotFound(_0x2f2e89,null))[_0xbfc3('0x1a')](function(_0x59ecbe){if(_0x59ecbe){_0x2d05b4=_0x59ecbe;_0x230f97[_0xbfc3('0x3c')]=_[_0xbfc3('0x52')](db[_0xbfc3('0x59')][_0xbfc3('0x53')]);_0x230f97[_0xbfc3('0x3d')]=_[_0xbfc3('0x52')](_0x166f0f[_0xbfc3('0x3d')]);_0x230f97[_0xbfc3('0x3e')]=_['intersection'](_0x230f97[_0xbfc3('0x3c')],_0x230f97[_0xbfc3('0x3d')]);_0x4f17e8['attributes']=_[_0xbfc3('0x3f')](_0x230f97[_0xbfc3('0x3c')],qs[_0xbfc3('0x41')](_0x166f0f[_0xbfc3('0x3d')]['fields']));_0x4f17e8[_0xbfc3('0x40')]=_0x4f17e8[_0xbfc3('0x40')][_0xbfc3('0x42')]?_0x4f17e8['attributes']:_0x230f97[_0xbfc3('0x3c')];_0x4f17e8[_0xbfc3('0x46')]=qs[_0xbfc3('0x47')](_0x166f0f['query'][_0xbfc3('0x47')]);_0x4f17e8[_0xbfc3('0x48')]=qs[_0xbfc3('0x3e')](_[_0xbfc3('0x5a')](_0x166f0f['query'],_0x230f97[_0xbfc3('0x3e')]));if(_0x166f0f['query'][_0xbfc3('0x49')]){_0x4f17e8['where']=_['merge'](_0x4f17e8['where'],{'$or':_['map'](_0x4f17e8[_0xbfc3('0x40')],function(_0xbd5128){var _0x58917f={};_0x58917f[_0xbd5128]={'$like':'%'+_0x166f0f[_0xbfc3('0x3d')]['filter']+'%'};return _0x58917f;})});}_0x4f17e8=_[_0xbfc3('0x4a')]({},_0x4f17e8,_0x166f0f[_0xbfc3('0x4c')]);return _0x2d05b4['getConfigurations'](_0x4f17e8);}})['then'](function(_0x3e7d57){if(_0x3e7d57){_0x2d8683=_0x3e7d57['length'];if(!_0x166f0f[_0xbfc3('0x3d')][_0xbfc3('0x43')]('nolimit')){_0x4f17e8[_0xbfc3('0x45')]=qs[_0xbfc3('0x45')](_0x166f0f['query'][_0xbfc3('0x45')]);_0x4f17e8['offset']=qs['offset'](_0x166f0f[_0xbfc3('0x3d')][_0xbfc3('0x2b')]);}return _0x2d05b4['getConfigurations'](_0x4f17e8);}})['then'](function(_0xfb057f){if(_0xfb057f){return _0xfb057f?{'count':_0x2d8683,'rows':_0xfb057f}:null;}})[_0xbfc3('0x1a')](respondWithResult(_0x2f2e89,null))[_0xbfc3('0x25')](handleError(_0x2f2e89,null));};exports['addConfiguration']=function(_0x374c9b,_0x286054,_0x426ec5){if(_0x374c9b['body']['id']){delete _0x374c9b['body']['id'];}return db[_0xbfc3('0x38')][_0xbfc3('0x58')]({'where':{'id':_0x374c9b[_0xbfc3('0x51')]['id']}})[_0xbfc3('0x1a')](handleEntityNotFound(_0x286054,null))[_0xbfc3('0x1a')](function(_0x4dbe98){if(_0x4dbe98){_0x374c9b[_0xbfc3('0x56')]['AccountId']=_0x4dbe98['id'];_0x374c9b[_0xbfc3('0x56')][_0xbfc3('0x5b')]=integrations[_0xbfc3('0x5c')](_0x374c9b[_0xbfc3('0x56')]['channel'],_0x374c9b[_0xbfc3('0x56')][_0xbfc3('0x3a')]);_0x374c9b[_0xbfc3('0x56')][_0xbfc3('0x5d')]=integrations['getDescriptions'](_0x374c9b[_0xbfc3('0x56')][_0xbfc3('0x5e')],_0x374c9b[_0xbfc3('0x56')]['type']);return db[_0xbfc3('0x59')][_0xbfc3('0x55')](_0x374c9b[_0xbfc3('0x56')],{'include':[{'model':db[_0xbfc3('0x5f')],'as':'Subjects'},{'model':db[_0xbfc3('0x5f')],'as':'Descriptions'}]});}return null;})[_0xbfc3('0x1a')](respondWithResult(_0x286054,null))[_0xbfc3('0x25')](handleError(_0x286054,null));};exports[_0xbfc3('0x60')]=function(_0x132f12,_0x33cb9f,_0x4445f6){var _0xcc8e61='';return db[_0xbfc3('0x38')][_0xbfc3('0x58')]({'where':{'id':_0x132f12[_0xbfc3('0x51')]['id']},'attributes':['id',_0xbfc3('0x61'),_0xbfc3('0x62')]})[_0xbfc3('0x1a')](handleEntityNotFound(_0x33cb9f,null))[_0xbfc3('0x1a')](function(_0x5371aa){if(_0x5371aa){_0xcc8e61=_0x5371aa[_0xbfc3('0x61')];var _0x56582e=_0xcc8e61['slice'](-0x1);if(_0x56582e==='/'){_0xcc8e61=_0xcc8e61['substring'](0x0,_0xcc8e61[_0xbfc3('0x63')](_0x56582e));}return rp({'method':'GET','uri':util[_0xbfc3('0x64')](_0xbfc3('0x65'),_0xcc8e61,_0xbfc3('0x66')),'headers':{'Authorization':util['format']('Basic\x20%s',new Buffer(util[_0xbfc3('0x64')](_0xbfc3('0x67'),_0x5371aa['apiKey']))[_0xbfc3('0x68')](_0xbfc3('0x69')))},'json':!![]});}})[_0xbfc3('0x1a')](function(_0x4214db){if(_0x4214db){var _0x2061d8=[_0xbfc3('0x6a'),_0xbfc3('0x6b'),_0xbfc3('0x6c'),'description','status',_0xbfc3('0x6d'),_0xbfc3('0x6e'),_0xbfc3('0x6f'),_0xbfc3('0x70'),_0xbfc3('0x6e'),_0xbfc3('0x71')];_[_0xbfc3('0x72')](_0x4214db,function(_0x6c5415){return _0x2061d8[_0xbfc3('0x73')](_0x6c5415[_0xbfc3('0x34')])||!_0x6c5415['default']&&_0x6c5415[_0xbfc3('0x3a')]!=='custom_text'&&_0x6c5415[_0xbfc3('0x3a')]!=='custom_dropdown';});return{'count':_0x4214db[_0xbfc3('0x42')],'rows':_[_0xbfc3('0x37')](_0x4214db,function(_0x475836){return{'id':_0x475836['name'],'name':_0x475836[_0xbfc3('0x74')],'custom':!_0x475836['default'],'options':_0x475836['choices']?_[_0xbfc3('0x37')](_0x475836[_0xbfc3('0x75')],function(_0x5d4d32){return{'name':_[_0xbfc3('0x76')](_0x5d4d32),'value':_0x5d4d32};}):[]};})};}})[_0xbfc3('0x1a')](respondWithResult(_0x33cb9f,null))[_0xbfc3('0x25')](function(_0x20632b){var _0x12ab8e=_0x132f12[_0xbfc3('0x3d')][_0xbfc3('0x77')]?0x1f4:_0x20632b[_0xbfc3('0x78')]||0x1f4;logger[_0xbfc3('0x21')](_0xbfc3('0x79'),_0xbfc3('0x60'),_0x12ab8e,JSON[_0xbfc3('0x20')](_0x20632b));delete _0x20632b[_0xbfc3('0x34')];if(_0x12ab8e===0x191){_0x12ab8e=0x190;}_0x33cb9f['status'](_0x12ab8e)[_0xbfc3('0x35')](_0x132f12[_0xbfc3('0x3d')][_0xbfc3('0x77')]?{'message':'Wrong\x20credentials','statusCode':_0x20632b[_0xbfc3('0x78')]}:_0x20632b);});};