Built motion from commit (unavailable).|2.2.5
[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 _0x6c37=['moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/utils','../../config/environment','../../mysqldb','client','http','then','info','FreshdeskAccount,\x20%s,\x20%s','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','sendStatus','end','status','json','count','offset','limit','Content-Range','apply','reject','destroy','stack','name','send','FreshdeskAccount','rawAttributes','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','where','filters','pick','filter','merge','map','type','key','field','includeAll','findAll','rows','catch','show','include','find','create','body','update','params','getConfigurations','findOne','FreshdeskConfiguration','sort','options','addConfiguration','Subjects','channel','getDescriptions','FreshdeskField','Descriptions','getFields','remoteUri','apiKey','GET','format','%s%s','api/v2/ticket_fields','Basic\x20%s','%s:X','toString','base64','requester','description','priority','source','group','company','remove','includes','default','custom_text','label','choices','capitalize','test','statusCode','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise'];(function(_0x2f378e,_0x48d6c5){var _0x488ec7=function(_0x261caf){while(--_0x261caf){_0x2f378e['push'](_0x2f378e['shift']());}};_0x488ec7(++_0x48d6c5);}(_0x6c37,0x74));var _0x76c3=function(_0x405d00,_0x395604){_0x405d00=_0x405d00-0x0;var _0xfa3103=_0x6c37[_0x405d00];return _0xfa3103;};'use strict';var pdf=require(_0x76c3('0x0'));var emlformat=require(_0x76c3('0x1'));var rimraf=require(_0x76c3('0x2'));var zipdir=require(_0x76c3('0x3'));var jsonpatch=require(_0x76c3('0x4'));var rp=require(_0x76c3('0x5'));var moment=require(_0x76c3('0x6'));var BPromise=require(_0x76c3('0x7'));var Mustache=require(_0x76c3('0x8'));var util=require(_0x76c3('0x9'));var path=require(_0x76c3('0xa'));var sox=require(_0x76c3('0xb'));var csv=require(_0x76c3('0xc'));var ejs=require(_0x76c3('0xd'));var fs=require('fs');var _=require(_0x76c3('0xe'));var squel=require(_0x76c3('0xf'));var crypto=require(_0x76c3('0x10'));var jsforce=require(_0x76c3('0x11'));var deskjs=require(_0x76c3('0x12'));var toCsv=require(_0x76c3('0xc'));var querystring=require(_0x76c3('0x13'));var Papa=require(_0x76c3('0x14'));var Redis=require(_0x76c3('0x15'));var qs=require(_0x76c3('0x16'));var logger=require('../../config/logger')('api');var utils=require(_0x76c3('0x17'));var config=require(_0x76c3('0x18'));var db=require(_0x76c3('0x19'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require('jayson/promise');var client=jayson[_0x76c3('0x1a')][_0x76c3('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x7f939d,_0x59fcc4,_0x286b63,_0x378545){return new BPromise(function(_0x12de6b,_0x35f395){var _0x46f94f=_0x378545||client;return _0x46f94f['request'](_0x7f939d,_0x286b63)[_0x76c3('0x1c')](function(_0x35d6f4){logger[_0x76c3('0x1d')](_0x76c3('0x1e'),_0x59fcc4,'request\x20sent');logger[_0x76c3('0x1f')](_0x76c3('0x20'),_0x59fcc4,_0x76c3('0x21'),JSON[_0x76c3('0x22')](_0x35d6f4));if(_0x35d6f4[_0x76c3('0x23')]){if(_0x35d6f4[_0x76c3('0x23')][_0x76c3('0x24')]===0x1f4){logger[_0x76c3('0x23')](_0x76c3('0x1e'),_0x59fcc4,_0x35d6f4[_0x76c3('0x23')][_0x76c3('0x25')]);return _0x35f395(_0x35d6f4[_0x76c3('0x23')][_0x76c3('0x25')]);}logger[_0x76c3('0x23')](_0x76c3('0x1e'),_0x59fcc4,_0x35d6f4['error'][_0x76c3('0x25')]);return _0x12de6b(_0x35d6f4[_0x76c3('0x23')][_0x76c3('0x25')]);}else{logger[_0x76c3('0x1d')](_0x76c3('0x1e'),_0x59fcc4,_0x76c3('0x21'));_0x12de6b(_0x35d6f4[_0x76c3('0x26')][_0x76c3('0x25')]);}})['catch'](function(_0x57d29d){logger[_0x76c3('0x23')](_0x76c3('0x1e'),_0x59fcc4,_0x57d29d);_0x35f395(_0x57d29d);});});}function respondWithStatusCode(_0x24a831,_0xff062e){_0xff062e=_0xff062e||0xcc;return function(_0x1e48bd){if(_0x1e48bd){return _0x24a831[_0x76c3('0x27')](_0xff062e);}return _0x24a831['status'](_0xff062e)[_0x76c3('0x28')]();};}function respondWithResult(_0x1c0078,_0x531643){_0x531643=_0x531643||0xc8;return function(_0x833e3){if(_0x833e3){return _0x1c0078[_0x76c3('0x29')](_0x531643)[_0x76c3('0x2a')](_0x833e3);}};}function respondWithFilteredResult(_0x36818e,_0x2d6ae2){return function(_0x3004d0){if(_0x3004d0){var _0x422fed=_0x3004d0[_0x76c3('0x2b')],_0xa842cf=_0x2d6ae2['offset'],_0x214265=_0x2d6ae2[_0x76c3('0x2c')]+_0x2d6ae2[_0x76c3('0x2d')],_0x6c06cd;if(_0x214265>=_0x422fed){_0x214265=_0x422fed;_0x6c06cd=0xc8;}else{_0x6c06cd=0xce;}_0x36818e[_0x76c3('0x29')](_0x6c06cd);return _0x36818e['set'](_0x76c3('0x2e'),_0xa842cf+'-'+_0x214265+'/'+_0x422fed)[_0x76c3('0x2a')](_0x3004d0);}return null;};}function patchUpdates(_0x357903){return function(_0x3555ba){try{jsonpatch[_0x76c3('0x2f')](_0x3555ba,_0x357903,!![]);}catch(_0x4e24a7){return BPromise[_0x76c3('0x30')](_0x4e24a7);}return _0x3555ba['save']();};}function saveUpdates(_0x43df70,_0x38192e){return function(_0x153f85){if(_0x153f85){return _0x153f85['update'](_0x43df70)[_0x76c3('0x1c')](function(_0x25980a){return _0x25980a;});}return null;};}function removeEntity(_0x27336b,_0x3d6838){return function(_0x268d06){if(_0x268d06){return _0x268d06[_0x76c3('0x31')]()[_0x76c3('0x1c')](function(){_0x27336b[_0x76c3('0x29')](0xcc)[_0x76c3('0x28')]();});}};}function handleEntityNotFound(_0x4b86b3,_0x210d0d){return function(_0x2669fd){if(!_0x2669fd){_0x4b86b3['sendStatus'](0x194);}return _0x2669fd;};}function handleError(_0x36cdbd,_0x1aeb2b){_0x1aeb2b=_0x1aeb2b||0x1f4;return function(_0x3e1946){logger[_0x76c3('0x23')](_0x3e1946[_0x76c3('0x32')]);if(_0x3e1946[_0x76c3('0x33')]){delete _0x3e1946['name'];}_0x36cdbd[_0x76c3('0x29')](_0x1aeb2b)[_0x76c3('0x34')](_0x3e1946);};}exports['index']=function(_0x533c85,_0x30ed2b){var _0x2b9f11={},_0x4645d6={},_0x5b9591={'count':0x0,'rows':[]};var _0x19e78b=db[_0x76c3('0x35')][_0x76c3('0x36')];_0x4645d6[_0x76c3('0x37')]=_[_0x76c3('0x38')](_0x19e78b);_0x4645d6[_0x76c3('0x39')]=_['keys'](_0x533c85[_0x76c3('0x39')]);_0x4645d6['filters']=_[_0x76c3('0x3a')](_0x4645d6[_0x76c3('0x37')],_0x4645d6[_0x76c3('0x39')]);_0x2b9f11[_0x76c3('0x3b')]=_[_0x76c3('0x3a')](_0x4645d6['model'],qs[_0x76c3('0x3c')](_0x533c85[_0x76c3('0x39')][_0x76c3('0x3c')]));_0x2b9f11[_0x76c3('0x3b')]=_0x2b9f11[_0x76c3('0x3b')][_0x76c3('0x3d')]?_0x2b9f11[_0x76c3('0x3b')]:_0x4645d6['model'];if(!_0x533c85[_0x76c3('0x39')][_0x76c3('0x3e')](_0x76c3('0x3f'))){_0x2b9f11[_0x76c3('0x2d')]=qs[_0x76c3('0x2d')](_0x533c85[_0x76c3('0x39')][_0x76c3('0x2d')]);_0x2b9f11[_0x76c3('0x2c')]=qs[_0x76c3('0x2c')](_0x533c85[_0x76c3('0x39')]['offset']);}_0x2b9f11[_0x76c3('0x40')]=qs['sort'](_0x533c85[_0x76c3('0x39')]['sort']);_0x2b9f11[_0x76c3('0x41')]=qs[_0x76c3('0x42')](_[_0x76c3('0x43')](_0x533c85[_0x76c3('0x39')],_0x4645d6['filters']));if(_0x533c85[_0x76c3('0x39')][_0x76c3('0x44')]){_0x2b9f11[_0x76c3('0x41')]=_[_0x76c3('0x45')](_0x2b9f11[_0x76c3('0x41')],{'$or':_[_0x76c3('0x46')](_0x19e78b,function(_0xfac6fd){if(_0xfac6fd[_0x76c3('0x47')][_0x76c3('0x48')]!=='VIRTUAL'){var _0x55a9e3={};_0x55a9e3[_0xfac6fd[_0x76c3('0x49')]]={'$like':'%'+_0x533c85[_0x76c3('0x39')][_0x76c3('0x44')]+'%'};return _0x55a9e3;}})});}_0x2b9f11=_[_0x76c3('0x45')]({},_0x2b9f11,_0x533c85['options']);var _0xeace31={'where':_0x2b9f11['where']};return db[_0x76c3('0x35')][_0x76c3('0x2b')](_0xeace31)['then'](function(_0x48fba0){_0x5b9591[_0x76c3('0x2b')]=_0x48fba0;if(_0x533c85[_0x76c3('0x39')][_0x76c3('0x4a')]){_0x2b9f11['include']=[{'all':!![]}];}return db[_0x76c3('0x35')][_0x76c3('0x4b')](_0x2b9f11);})[_0x76c3('0x1c')](function(_0x40524d){_0x5b9591[_0x76c3('0x4c')]=_0x40524d;return _0x5b9591;})[_0x76c3('0x1c')](respondWithFilteredResult(_0x30ed2b,_0x2b9f11))[_0x76c3('0x4d')](handleError(_0x30ed2b,null));};exports[_0x76c3('0x4e')]=function(_0x54d41f,_0x1eeaf3){var _0x34ad8d={'raw':![],'where':{'id':_0x54d41f['params']['id']}},_0x28d2a1={};_0x28d2a1['model']=_[_0x76c3('0x38')](db['FreshdeskAccount']['rawAttributes']);_0x28d2a1[_0x76c3('0x39')]=_['keys'](_0x54d41f['query']);_0x28d2a1['filters']=_['intersection'](_0x28d2a1[_0x76c3('0x37')],_0x28d2a1['query']);_0x34ad8d['attributes']=_[_0x76c3('0x3a')](_0x28d2a1['model'],qs[_0x76c3('0x3c')](_0x54d41f[_0x76c3('0x39')][_0x76c3('0x3c')]));_0x34ad8d['attributes']=_0x34ad8d[_0x76c3('0x3b')][_0x76c3('0x3d')]?_0x34ad8d['attributes']:_0x28d2a1[_0x76c3('0x37')];if(_0x54d41f[_0x76c3('0x39')][_0x76c3('0x4a')]){_0x34ad8d[_0x76c3('0x4f')]=[{'all':!![]}];}_0x34ad8d=_[_0x76c3('0x45')]({},_0x34ad8d,_0x54d41f['options']);return db[_0x76c3('0x35')][_0x76c3('0x50')](_0x34ad8d)[_0x76c3('0x1c')](handleEntityNotFound(_0x1eeaf3,null))['then'](respondWithResult(_0x1eeaf3,null))['catch'](handleError(_0x1eeaf3,null));};exports[_0x76c3('0x51')]=function(_0x64007e,_0x3013ff){return db['FreshdeskAccount']['create'](_0x64007e[_0x76c3('0x52')],{})[_0x76c3('0x1c')](respondWithResult(_0x3013ff,0xc9))['catch'](handleError(_0x3013ff,null));};exports[_0x76c3('0x53')]=function(_0x4d99db,_0x71c0ae){if(_0x4d99db[_0x76c3('0x52')]['id']){delete _0x4d99db['body']['id'];}return db['FreshdeskAccount']['find']({'where':{'id':_0x4d99db['params']['id']}})[_0x76c3('0x1c')](handleEntityNotFound(_0x71c0ae,null))[_0x76c3('0x1c')](saveUpdates(_0x4d99db[_0x76c3('0x52')],null))['then'](respondWithResult(_0x71c0ae,null))[_0x76c3('0x4d')](handleError(_0x71c0ae,null));};exports['destroy']=function(_0x574d22,_0x433dbc){return db['FreshdeskAccount'][_0x76c3('0x50')]({'where':{'id':_0x574d22[_0x76c3('0x54')]['id']}})[_0x76c3('0x1c')](handleEntityNotFound(_0x433dbc,null))['then'](removeEntity(_0x433dbc,null))[_0x76c3('0x4d')](handleError(_0x433dbc,null));};exports[_0x76c3('0x55')]=function(_0x1c26f6,_0x19e118,_0x3c8115){var _0x17bf3d={};var _0x205493={};var _0x2870c5;var _0x3bcfd1;return db[_0x76c3('0x35')][_0x76c3('0x56')]({'where':{'id':_0x1c26f6[_0x76c3('0x54')]['id']}})[_0x76c3('0x1c')](handleEntityNotFound(_0x19e118,null))[_0x76c3('0x1c')](function(_0x1fa7b5){if(_0x1fa7b5){_0x2870c5=_0x1fa7b5;_0x205493['model']=_[_0x76c3('0x38')](db[_0x76c3('0x57')][_0x76c3('0x36')]);_0x205493[_0x76c3('0x39')]=_[_0x76c3('0x38')](_0x1c26f6[_0x76c3('0x39')]);_0x205493[_0x76c3('0x42')]=_[_0x76c3('0x3a')](_0x205493['model'],_0x205493[_0x76c3('0x39')]);_0x17bf3d['attributes']=_[_0x76c3('0x3a')](_0x205493['model'],qs[_0x76c3('0x3c')](_0x1c26f6[_0x76c3('0x39')][_0x76c3('0x3c')]));_0x17bf3d[_0x76c3('0x3b')]=_0x17bf3d[_0x76c3('0x3b')][_0x76c3('0x3d')]?_0x17bf3d[_0x76c3('0x3b')]:_0x205493[_0x76c3('0x37')];_0x17bf3d['order']=qs[_0x76c3('0x58')](_0x1c26f6[_0x76c3('0x39')]['sort']);_0x17bf3d[_0x76c3('0x41')]=qs[_0x76c3('0x42')](_[_0x76c3('0x43')](_0x1c26f6[_0x76c3('0x39')],_0x205493[_0x76c3('0x42')]));if(_0x1c26f6[_0x76c3('0x39')][_0x76c3('0x44')]){_0x17bf3d[_0x76c3('0x41')]=_[_0x76c3('0x45')](_0x17bf3d[_0x76c3('0x41')],{'$or':_[_0x76c3('0x46')](_0x17bf3d[_0x76c3('0x3b')],function(_0xb8b884){var _0x4212d1={};_0x4212d1[_0xb8b884]={'$like':'%'+_0x1c26f6[_0x76c3('0x39')][_0x76c3('0x44')]+'%'};return _0x4212d1;})});}_0x17bf3d=_[_0x76c3('0x45')]({},_0x17bf3d,_0x1c26f6[_0x76c3('0x59')]);return _0x2870c5[_0x76c3('0x55')](_0x17bf3d);}})[_0x76c3('0x1c')](function(_0x1fd96a){if(_0x1fd96a){_0x3bcfd1=_0x1fd96a[_0x76c3('0x3d')];if(!_0x1c26f6[_0x76c3('0x39')][_0x76c3('0x3e')](_0x76c3('0x3f'))){_0x17bf3d['limit']=qs[_0x76c3('0x2d')](_0x1c26f6[_0x76c3('0x39')][_0x76c3('0x2d')]);_0x17bf3d[_0x76c3('0x2c')]=qs['offset'](_0x1c26f6[_0x76c3('0x39')][_0x76c3('0x2c')]);}return _0x2870c5[_0x76c3('0x55')](_0x17bf3d);}})[_0x76c3('0x1c')](function(_0x41dfd7){if(_0x41dfd7){return _0x41dfd7?{'count':_0x3bcfd1,'rows':_0x41dfd7}:null;}})[_0x76c3('0x1c')](respondWithResult(_0x19e118,null))[_0x76c3('0x4d')](handleError(_0x19e118,null));};exports[_0x76c3('0x5a')]=function(_0x2c3ec0,_0x45a688,_0x2ad56c){if(_0x2c3ec0[_0x76c3('0x52')]['id']){delete _0x2c3ec0[_0x76c3('0x52')]['id'];}return db['FreshdeskAccount'][_0x76c3('0x56')]({'where':{'id':_0x2c3ec0[_0x76c3('0x54')]['id']}})[_0x76c3('0x1c')](handleEntityNotFound(_0x45a688,null))[_0x76c3('0x1c')](function(_0xc44a87){if(_0xc44a87){_0x2c3ec0[_0x76c3('0x52')]['AccountId']=_0xc44a87['id'];_0x2c3ec0[_0x76c3('0x52')][_0x76c3('0x5b')]=integrations['getSubjects'](_0x2c3ec0[_0x76c3('0x52')][_0x76c3('0x5c')],_0x2c3ec0[_0x76c3('0x52')]['type']);_0x2c3ec0['body']['Descriptions']=integrations[_0x76c3('0x5d')](_0x2c3ec0[_0x76c3('0x52')][_0x76c3('0x5c')],_0x2c3ec0[_0x76c3('0x52')][_0x76c3('0x47')]);return db[_0x76c3('0x57')][_0x76c3('0x51')](_0x2c3ec0['body'],{'include':[{'model':db[_0x76c3('0x5e')],'as':_0x76c3('0x5b')},{'model':db[_0x76c3('0x5e')],'as':_0x76c3('0x5f')}]});}return null;})[_0x76c3('0x1c')](respondWithResult(_0x45a688,null))[_0x76c3('0x4d')](handleError(_0x45a688,null));};exports[_0x76c3('0x60')]=function(_0x379d5a,_0xe66c9f,_0x188a0a){return db[_0x76c3('0x35')][_0x76c3('0x56')]({'where':{'id':_0x379d5a['params']['id']},'attributes':['id',_0x76c3('0x61'),_0x76c3('0x62')]})[_0x76c3('0x1c')](handleEntityNotFound(_0xe66c9f,null))['then'](function(_0x17e8a0){if(_0x17e8a0){return rp({'method':_0x76c3('0x63'),'uri':util[_0x76c3('0x64')](_0x76c3('0x65'),_0x17e8a0[_0x76c3('0x61')],_0x76c3('0x66')),'headers':{'Authorization':util[_0x76c3('0x64')](_0x76c3('0x67'),new Buffer(util['format'](_0x76c3('0x68'),_0x17e8a0[_0x76c3('0x62')]))[_0x76c3('0x69')](_0x76c3('0x6a')))},'json':!![]});}})[_0x76c3('0x1c')](function(_0x17b4b0){if(_0x17b4b0){var _0x5f58ac=[_0x76c3('0x6b'),'subject','agent',_0x76c3('0x6c'),'status',_0x76c3('0x6d'),'group',_0x76c3('0x6e'),'ticket_type',_0x76c3('0x6f'),_0x76c3('0x70')];_[_0x76c3('0x71')](_0x17b4b0,function(_0x143b33){return _0x5f58ac[_0x76c3('0x72')](_0x143b33[_0x76c3('0x33')])||!_0x143b33[_0x76c3('0x73')]&&_0x143b33[_0x76c3('0x47')]!==_0x76c3('0x74');});return{'count':_0x17b4b0['length'],'rows':_[_0x76c3('0x46')](_0x17b4b0,function(_0xe51978){return{'id':_0xe51978[_0x76c3('0x33')],'name':_0xe51978[_0x76c3('0x75')],'custom':!_0xe51978[_0x76c3('0x73')],'options':_0xe51978[_0x76c3('0x76')]?_[_0x76c3('0x46')](_0xe51978[_0x76c3('0x76')],function(_0x49e2a4){return{'name':_[_0x76c3('0x77')](_0x49e2a4),'value':_0x49e2a4};}):[]};})};}})[_0x76c3('0x1c')](respondWithResult(_0xe66c9f,null))[_0x76c3('0x4d')](function(_0x52175b){var _0x44ad71=_0x379d5a[_0x76c3('0x39')][_0x76c3('0x78')]?0x1f4:_0x52175b['statusCode']||0x1f4;logger[_0x76c3('0x23')]('getFields,\x20%s,\x20%s,\x20%s',_0x76c3('0x60'),_0x44ad71,JSON[_0x76c3('0x22')](_0x52175b));delete _0x52175b[_0x76c3('0x33')];if(_0x44ad71===0x191){_0x44ad71=0x190;}_0xe66c9f[_0x76c3('0x29')](_0x44ad71)[_0x76c3('0x34')](_0x379d5a[_0x76c3('0x39')][_0x76c3('0x78')]?{'message':'Wrong\x20credentials','statusCode':_0x52175b[_0x76c3('0x79')]}:_0x52175b);});};