Built motion from commit (unavailable).|2.4.1
[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 _0x0490=['set','Content-Range','apply','reject','update','then','destroy','sendStatus','stack','name','index','FreshdeskAccount','rawAttributes','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','merge','map','type','key','VIRTUAL','field','rows','show','params','includeAll','options','find','create','body','findOne','FreshdeskConfiguration','pick','filter','getConfigurations','AccountId','Subjects','channel','Descriptions','getDescriptions','FreshdeskField','getFields','remoteUri','apiKey','slice','substring','GET','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','%s:X','base64','requester','subject','agent','description','priority','group','company','remove','default','custom_text','custom_dropdown','label','choices','capitalize','statusCode','getFields,\x20%s,\x20%s,\x20%s','send','Wrong\x20credentials','eml-format','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','../../components/integrations/configuration','jayson/promise','test','info','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','status','end','json','count','offset','limit'];(function(_0x674ce2,_0x2e1104){var _0xf2ef03=function(_0x927ab2){while(--_0x927ab2){_0x674ce2['push'](_0x674ce2['shift']());}};_0xf2ef03(++_0x2e1104);}(_0x0490,0x147));var _0x0049=function(_0x12086f,_0x29f2fd){_0x12086f=_0x12086f-0x0;var _0x7437e3=_0x0490[_0x12086f];return _0x7437e3;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x0049('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0049('0x1'));var BPromise=require(_0x0049('0x2'));var Mustache=require(_0x0049('0x3'));var util=require(_0x0049('0x4'));var path=require(_0x0049('0x5'));var sox=require(_0x0049('0x6'));var csv=require(_0x0049('0x7'));var ejs=require(_0x0049('0x8'));var fs=require('fs');var _=require(_0x0049('0x9'));var squel=require('squel');var crypto=require(_0x0049('0xa'));var jsforce=require(_0x0049('0xb'));var deskjs=require(_0x0049('0xc'));var toCsv=require('to-csv');var querystring=require(_0x0049('0xd'));var Papa=require(_0x0049('0xe'));var Redis=require(_0x0049('0xf'));var authService=require(_0x0049('0x10'));var qs=require(_0x0049('0x11'));var hardwareService=require(_0x0049('0x12'));var logger=require(_0x0049('0x13'))(_0x0049('0x14'));var utils=require(_0x0049('0x15'));var config=require('../../config/environment');var db=require(_0x0049('0x16'))['db'];var integrations=require(_0x0049('0x17'));var jayson=require(_0x0049('0x18'));var client=jayson['client']['http']({'port':0x232a});function checkPasswordPattern(_0x3cf392,_0x3fbc4e,_0xc2ce0b){if(_0xc2ce0b){var _0x3898be=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x3898be[_0x0049('0x19')](_0x3fbc4e)){return _0x3cf392;}else{throw new Error('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');}}else{return _0x3cf392;}}function respondWithRpcPromise(_0x3aabfb,_0x210df0,_0x573138,_0x1802f5){return new BPromise(function(_0x2aace1,_0x2d6b06){var _0x1a62aa=_0x1802f5||client;return _0x1a62aa['request'](_0x3aabfb,_0x573138)['then'](function(_0x4315b5){logger[_0x0049('0x1a')](_0x0049('0x1b'),_0x210df0,_0x0049('0x1c'));logger[_0x0049('0x1d')](_0x0049('0x1e'),_0x210df0,_0x0049('0x1c'),JSON[_0x0049('0x1f')](_0x4315b5));if(_0x4315b5[_0x0049('0x20')]){if(_0x4315b5[_0x0049('0x20')]['code']===0x1f4){logger[_0x0049('0x20')](_0x0049('0x1b'),_0x210df0,_0x4315b5['error'][_0x0049('0x21')]);return _0x2d6b06(_0x4315b5[_0x0049('0x20')][_0x0049('0x21')]);}logger[_0x0049('0x20')](_0x0049('0x1b'),_0x210df0,_0x4315b5['error'][_0x0049('0x21')]);return _0x2aace1(_0x4315b5[_0x0049('0x20')]['message']);}else{logger[_0x0049('0x1a')](_0x0049('0x1b'),_0x210df0,_0x0049('0x1c'));_0x2aace1(_0x4315b5[_0x0049('0x22')][_0x0049('0x21')]);}})[_0x0049('0x23')](function(_0x223c9c){logger[_0x0049('0x20')](_0x0049('0x1b'),_0x210df0,_0x223c9c);_0x2d6b06(_0x223c9c);});});}function respondWithStatusCode(_0x7a9715,_0x39eb94){_0x39eb94=_0x39eb94||0xcc;return function(_0x211e5b){if(_0x211e5b){return _0x7a9715['sendStatus'](_0x39eb94);}return _0x7a9715[_0x0049('0x24')](_0x39eb94)[_0x0049('0x25')]();};}function respondWithResult(_0x3ce97f,_0x118bc0){_0x118bc0=_0x118bc0||0xc8;return function(_0x435789){if(_0x435789){return _0x3ce97f['status'](_0x118bc0)[_0x0049('0x26')](_0x435789);}};}function respondWithFilteredResult(_0x525ecb,_0x8bb034){return function(_0x3679d0){if(_0x3679d0){var _0x450698=_0x3679d0[_0x0049('0x27')],_0x8d272b=_0x8bb034[_0x0049('0x28')],_0x4bc932=_0x8bb034[_0x0049('0x28')]+_0x8bb034[_0x0049('0x29')],_0x305623;if(_0x4bc932>=_0x450698){_0x4bc932=_0x450698;_0x305623=0xc8;}else{_0x305623=0xce;}_0x525ecb['status'](_0x305623);return _0x525ecb[_0x0049('0x2a')](_0x0049('0x2b'),_0x8d272b+'-'+_0x4bc932+'/'+_0x450698)[_0x0049('0x26')](_0x3679d0);}return null;};}function patchUpdates(_0x4bd71c){return function(_0x9cd191){try{jsonpatch[_0x0049('0x2c')](_0x9cd191,_0x4bd71c,!![]);}catch(_0x245599){return BPromise[_0x0049('0x2d')](_0x245599);}return _0x9cd191['save']();};}function saveUpdates(_0x30f400,_0x1e5116){return function(_0x5c2d27){if(_0x5c2d27){return _0x5c2d27[_0x0049('0x2e')](_0x30f400)[_0x0049('0x2f')](function(_0x51d837){return _0x51d837;});}return null;};}function removeEntity(_0x3d2300,_0x2f5592){return function(_0x3d47d8){if(_0x3d47d8){return _0x3d47d8[_0x0049('0x30')]()[_0x0049('0x2f')](function(){_0x3d2300['status'](0xcc)[_0x0049('0x25')]();});}};}function handleEntityNotFound(_0x1fc475,_0x81fbcd){return function(_0x236e7a){if(!_0x236e7a){_0x1fc475[_0x0049('0x31')](0x194);}return _0x236e7a;};}function handleError(_0x5bdc33,_0x3f02a1){_0x3f02a1=_0x3f02a1||0x1f4;return function(_0x55dfc2){logger[_0x0049('0x20')](_0x55dfc2[_0x0049('0x32')]);if(_0x55dfc2[_0x0049('0x33')]){delete _0x55dfc2['name'];}_0x5bdc33[_0x0049('0x24')](_0x3f02a1)['send'](_0x55dfc2);};}exports[_0x0049('0x34')]=function(_0x173242,_0x15a1c0){var _0x47b9cf={},_0x2bef55={},_0x425840={'count':0x0,'rows':[]};var _0x1fc3fc=db[_0x0049('0x35')][_0x0049('0x36')];_0x2bef55[_0x0049('0x37')]=_['keys'](_0x1fc3fc);_0x2bef55[_0x0049('0x38')]=_[_0x0049('0x39')](_0x173242['query']);_0x2bef55['filters']=_[_0x0049('0x3a')](_0x2bef55[_0x0049('0x37')],_0x2bef55[_0x0049('0x38')]);_0x47b9cf[_0x0049('0x3b')]=_[_0x0049('0x3a')](_0x2bef55[_0x0049('0x37')],qs[_0x0049('0x3c')](_0x173242[_0x0049('0x38')]['fields']));_0x47b9cf[_0x0049('0x3b')]=_0x47b9cf[_0x0049('0x3b')][_0x0049('0x3d')]?_0x47b9cf[_0x0049('0x3b')]:_0x2bef55[_0x0049('0x37')];if(!_0x173242[_0x0049('0x38')][_0x0049('0x3e')](_0x0049('0x3f'))){_0x47b9cf['limit']=qs[_0x0049('0x29')](_0x173242[_0x0049('0x38')][_0x0049('0x29')]);_0x47b9cf[_0x0049('0x28')]=qs[_0x0049('0x28')](_0x173242[_0x0049('0x38')][_0x0049('0x28')]);}_0x47b9cf[_0x0049('0x40')]=qs[_0x0049('0x41')](_0x173242[_0x0049('0x38')][_0x0049('0x41')]);_0x47b9cf[_0x0049('0x42')]=qs[_0x0049('0x43')](_['pick'](_0x173242[_0x0049('0x38')],_0x2bef55[_0x0049('0x43')]));if(_0x173242[_0x0049('0x38')]['filter']){_0x47b9cf['where']=_[_0x0049('0x44')](_0x47b9cf['where'],{'$or':_[_0x0049('0x45')](_0x1fc3fc,function(_0x3d7f52){if(_0x3d7f52[_0x0049('0x46')][_0x0049('0x47')]!==_0x0049('0x48')){var _0xf40b8f={};_0xf40b8f[_0x3d7f52[_0x0049('0x49')]]={'$like':'%'+_0x173242[_0x0049('0x38')]['filter']+'%'};return _0xf40b8f;}})});}_0x47b9cf=_['merge']({},_0x47b9cf,_0x173242['options']);var _0x24ab22={'where':_0x47b9cf[_0x0049('0x42')]};return db[_0x0049('0x35')]['count'](_0x24ab22)[_0x0049('0x2f')](function(_0x200684){_0x425840[_0x0049('0x27')]=_0x200684;if(_0x173242['query']['includeAll']){_0x47b9cf['include']=[{'all':!![]}];}return db[_0x0049('0x35')]['findAll'](_0x47b9cf);})['then'](function(_0x19e16c){_0x425840[_0x0049('0x4a')]=_0x19e16c;return _0x425840;})[_0x0049('0x2f')](respondWithFilteredResult(_0x15a1c0,_0x47b9cf))[_0x0049('0x23')](handleError(_0x15a1c0,null));};exports[_0x0049('0x4b')]=function(_0x4a9961,_0xa60a2b){var _0x2862bf={'raw':![],'where':{'id':_0x4a9961[_0x0049('0x4c')]['id']}},_0xd4254={};_0xd4254[_0x0049('0x37')]=_[_0x0049('0x39')](db['FreshdeskAccount'][_0x0049('0x36')]);_0xd4254['query']=_[_0x0049('0x39')](_0x4a9961['query']);_0xd4254[_0x0049('0x43')]=_[_0x0049('0x3a')](_0xd4254[_0x0049('0x37')],_0xd4254[_0x0049('0x38')]);_0x2862bf[_0x0049('0x3b')]=_['intersection'](_0xd4254[_0x0049('0x37')],qs[_0x0049('0x3c')](_0x4a9961[_0x0049('0x38')][_0x0049('0x3c')]));_0x2862bf[_0x0049('0x3b')]=_0x2862bf[_0x0049('0x3b')]['length']?_0x2862bf[_0x0049('0x3b')]:_0xd4254['model'];if(_0x4a9961[_0x0049('0x38')][_0x0049('0x4d')]){_0x2862bf['include']=[{'all':!![]}];}_0x2862bf=_[_0x0049('0x44')]({},_0x2862bf,_0x4a9961[_0x0049('0x4e')]);return db[_0x0049('0x35')][_0x0049('0x4f')](_0x2862bf)[_0x0049('0x2f')](handleEntityNotFound(_0xa60a2b,null))[_0x0049('0x2f')](respondWithResult(_0xa60a2b,null))[_0x0049('0x23')](handleError(_0xa60a2b,null));};exports['create']=function(_0x596aaf,_0x458b4a){return db[_0x0049('0x35')][_0x0049('0x50')](_0x596aaf[_0x0049('0x51')],{})['then'](respondWithResult(_0x458b4a,0xc9))[_0x0049('0x23')](handleError(_0x458b4a,null));};exports['update']=function(_0x5be63d,_0x5695ad){if(_0x5be63d['body']['id']){delete _0x5be63d[_0x0049('0x51')]['id'];}return db[_0x0049('0x35')][_0x0049('0x4f')]({'where':{'id':_0x5be63d[_0x0049('0x4c')]['id']}})[_0x0049('0x2f')](handleEntityNotFound(_0x5695ad,null))['then'](saveUpdates(_0x5be63d['body'],null))[_0x0049('0x2f')](respondWithResult(_0x5695ad,null))[_0x0049('0x23')](handleError(_0x5695ad,null));};exports[_0x0049('0x30')]=function(_0x2fb003,_0x539f1a){return db[_0x0049('0x35')][_0x0049('0x4f')]({'where':{'id':_0x2fb003[_0x0049('0x4c')]['id']}})[_0x0049('0x2f')](handleEntityNotFound(_0x539f1a,null))[_0x0049('0x2f')](removeEntity(_0x539f1a,null))[_0x0049('0x23')](handleError(_0x539f1a,null));};exports['getConfigurations']=function(_0xbe1b2f,_0x33b7f4,_0x4a028e){var _0x439e8f={};var _0x3becea={};var _0x58668d;var _0x4cb4fd;return db[_0x0049('0x35')][_0x0049('0x52')]({'where':{'id':_0xbe1b2f[_0x0049('0x4c')]['id']}})[_0x0049('0x2f')](handleEntityNotFound(_0x33b7f4,null))['then'](function(_0x4b0dd0){if(_0x4b0dd0){_0x58668d=_0x4b0dd0;_0x3becea[_0x0049('0x37')]=_[_0x0049('0x39')](db[_0x0049('0x53')][_0x0049('0x36')]);_0x3becea[_0x0049('0x38')]=_[_0x0049('0x39')](_0xbe1b2f[_0x0049('0x38')]);_0x3becea[_0x0049('0x43')]=_[_0x0049('0x3a')](_0x3becea['model'],_0x3becea[_0x0049('0x38')]);_0x439e8f['attributes']=_['intersection'](_0x3becea[_0x0049('0x37')],qs[_0x0049('0x3c')](_0xbe1b2f[_0x0049('0x38')][_0x0049('0x3c')]));_0x439e8f['attributes']=_0x439e8f[_0x0049('0x3b')][_0x0049('0x3d')]?_0x439e8f[_0x0049('0x3b')]:_0x3becea[_0x0049('0x37')];_0x439e8f['order']=qs[_0x0049('0x41')](_0xbe1b2f[_0x0049('0x38')]['sort']);_0x439e8f[_0x0049('0x42')]=qs[_0x0049('0x43')](_[_0x0049('0x54')](_0xbe1b2f[_0x0049('0x38')],_0x3becea['filters']));if(_0xbe1b2f[_0x0049('0x38')]['filter']){_0x439e8f[_0x0049('0x42')]=_['merge'](_0x439e8f['where'],{'$or':_['map'](_0x439e8f[_0x0049('0x3b')],function(_0x342e02){var _0x373937={};_0x373937[_0x342e02]={'$like':'%'+_0xbe1b2f[_0x0049('0x38')][_0x0049('0x55')]+'%'};return _0x373937;})});}_0x439e8f=_[_0x0049('0x44')]({},_0x439e8f,_0xbe1b2f[_0x0049('0x4e')]);return _0x58668d[_0x0049('0x56')](_0x439e8f);}})[_0x0049('0x2f')](function(_0x7d642a){if(_0x7d642a){_0x4cb4fd=_0x7d642a[_0x0049('0x3d')];if(!_0xbe1b2f[_0x0049('0x38')][_0x0049('0x3e')](_0x0049('0x3f'))){_0x439e8f[_0x0049('0x29')]=qs[_0x0049('0x29')](_0xbe1b2f[_0x0049('0x38')][_0x0049('0x29')]);_0x439e8f['offset']=qs[_0x0049('0x28')](_0xbe1b2f[_0x0049('0x38')]['offset']);}return _0x58668d[_0x0049('0x56')](_0x439e8f);}})[_0x0049('0x2f')](function(_0x4ece0c){if(_0x4ece0c){return _0x4ece0c?{'count':_0x4cb4fd,'rows':_0x4ece0c}:null;}})[_0x0049('0x2f')](respondWithResult(_0x33b7f4,null))[_0x0049('0x23')](handleError(_0x33b7f4,null));};exports['addConfiguration']=function(_0x523833,_0x500816,_0x14db4a){if(_0x523833['body']['id']){delete _0x523833[_0x0049('0x51')]['id'];}return db[_0x0049('0x35')][_0x0049('0x52')]({'where':{'id':_0x523833[_0x0049('0x4c')]['id']}})['then'](handleEntityNotFound(_0x500816,null))['then'](function(_0x3f7dbd){if(_0x3f7dbd){_0x523833[_0x0049('0x51')][_0x0049('0x57')]=_0x3f7dbd['id'];_0x523833['body'][_0x0049('0x58')]=integrations['getSubjects'](_0x523833[_0x0049('0x51')][_0x0049('0x59')],_0x523833['body']['type']);_0x523833[_0x0049('0x51')][_0x0049('0x5a')]=integrations[_0x0049('0x5b')](_0x523833[_0x0049('0x51')][_0x0049('0x59')],_0x523833['body']['type']);return db['FreshdeskConfiguration']['create'](_0x523833['body'],{'include':[{'model':db[_0x0049('0x5c')],'as':_0x0049('0x58')},{'model':db[_0x0049('0x5c')],'as':_0x0049('0x5a')}]});}return null;})[_0x0049('0x2f')](respondWithResult(_0x500816,null))[_0x0049('0x23')](handleError(_0x500816,null));};exports[_0x0049('0x5d')]=function(_0x207165,_0x3ca0c5,_0x17c754){var _0x1b018b='';return db[_0x0049('0x35')][_0x0049('0x52')]({'where':{'id':_0x207165['params']['id']},'attributes':['id',_0x0049('0x5e'),_0x0049('0x5f')]})['then'](handleEntityNotFound(_0x3ca0c5,null))['then'](function(_0x59f0d8){if(_0x59f0d8){_0x1b018b=_0x59f0d8[_0x0049('0x5e')];var _0x4d68fc=_0x1b018b[_0x0049('0x60')](-0x1);if(_0x4d68fc==='/'){_0x1b018b=_0x1b018b[_0x0049('0x61')](0x0,_0x1b018b['lastIndexOf'](_0x4d68fc));}return rp({'method':_0x0049('0x62'),'uri':util[_0x0049('0x63')](_0x0049('0x64'),_0x1b018b,_0x0049('0x65')),'headers':{'Authorization':util[_0x0049('0x63')](_0x0049('0x66'),new Buffer(util[_0x0049('0x63')](_0x0049('0x67'),_0x59f0d8['apiKey']))['toString'](_0x0049('0x68')))},'json':!![]});}})[_0x0049('0x2f')](function(_0xd7ab5b){if(_0xd7ab5b){var _0x45ea77=[_0x0049('0x69'),_0x0049('0x6a'),_0x0049('0x6b'),_0x0049('0x6c'),_0x0049('0x24'),_0x0049('0x6d'),'group','source','ticket_type',_0x0049('0x6e'),_0x0049('0x6f')];_[_0x0049('0x70')](_0xd7ab5b,function(_0x183dc9){return _0x45ea77['includes'](_0x183dc9[_0x0049('0x33')])||!_0x183dc9[_0x0049('0x71')]&&_0x183dc9[_0x0049('0x46')]!==_0x0049('0x72')&&_0x183dc9[_0x0049('0x46')]!==_0x0049('0x73');});return{'count':_0xd7ab5b[_0x0049('0x3d')],'rows':_[_0x0049('0x45')](_0xd7ab5b,function(_0x202993){return{'id':_0x202993[_0x0049('0x33')],'name':_0x202993[_0x0049('0x74')],'custom':!_0x202993['default'],'options':_0x202993['choices']?_[_0x0049('0x45')](_0x202993[_0x0049('0x75')],function(_0x580941){return{'name':_[_0x0049('0x76')](_0x580941),'value':_0x580941};}):[]};})};}})[_0x0049('0x2f')](respondWithResult(_0x3ca0c5,null))[_0x0049('0x23')](function(_0x2eca4d){var _0x2a4ca7=_0x207165['query']['test']?0x1f4:_0x2eca4d[_0x0049('0x77')]||0x1f4;logger[_0x0049('0x20')](_0x0049('0x78'),_0x0049('0x5d'),_0x2a4ca7,JSON['stringify'](_0x2eca4d));delete _0x2eca4d[_0x0049('0x33')];if(_0x2a4ca7===0x191){_0x2a4ca7=0x190;}_0x3ca0c5['status'](_0x2a4ca7)[_0x0049('0x79')](_0x207165[_0x0049('0x38')]['test']?{'message':_0x0049('0x7a'),'statusCode':_0x2eca4d[_0x0049('0x77')]}:_0x2eca4d);});};