Built motion from commit (unavailable).|2.4.18
[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 _0xd711=['reject','save','update','destroy','stack','name','send','index','map','FreshdeskAccount','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','offset','order','where','pick','merge','VIRTUAL','filter','options','includeAll','rows','params','rawAttributes','include','find','catch','create','body','getConfigurations','findOne','FreshdeskConfiguration','addConfiguration','AccountId','Subjects','getSubjects','channel','FreshdeskField','Descriptions','getFields','apiKey','remoteUri','slice','substring','GET','format','%s/%s','Basic\x20%s','%s:X','toString','base64','subject','agent','description','priority','group','source','ticket_type','remove','includes','default','custom_text','choices','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','zip-dir','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','test','Sequelize','ValidationError','request','then','info','FreshdeskAccount,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','sendStatus','status','end','json','count','limit','Content-Range'];(function(_0x31efdd,_0x2fbeb9){var _0x2d7451=function(_0x48e34e){while(--_0x48e34e){_0x31efdd['push'](_0x31efdd['shift']());}};_0x2d7451(++_0x2fbeb9);}(_0xd711,0x1c1));var _0x1d71=function(_0x5fe239,_0xdac45d){_0x5fe239=_0x5fe239-0x0;var _0x54bafc=_0xd711[_0x5fe239];return _0x54bafc;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x1d71('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1d71('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x1d71('0x2'));var BPromise=require(_0x1d71('0x3'));var Mustache=require(_0x1d71('0x4'));var util=require(_0x1d71('0x5'));var path=require(_0x1d71('0x6'));var sox=require(_0x1d71('0x7'));var csv=require('to-csv');var ejs=require(_0x1d71('0x8'));var fs=require('fs');var _=require(_0x1d71('0x9'));var squel=require(_0x1d71('0xa'));var crypto=require(_0x1d71('0xb'));var jsforce=require(_0x1d71('0xc'));var deskjs=require(_0x1d71('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x1d71('0xe'));var authService=require(_0x1d71('0xf'));var qs=require(_0x1d71('0x10'));var as=require(_0x1d71('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x1d71('0x12'))(_0x1d71('0x13'));var utils=require(_0x1d71('0x14'));var config=require('../../config/environment');var db=require(_0x1d71('0x15'))['db'];var integrations=require(_0x1d71('0x16'));var jayson=require(_0x1d71('0x17'));var client=jayson[_0x1d71('0x18')][_0x1d71('0x19')]({'port':0x232a});function checkPasswordPattern(_0x2dc5b4,_0x2456ba,_0x2355ee){if(_0x2355ee){var _0x2916bf=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x2916bf[_0x1d71('0x1a')](_0x2456ba)){return _0x2dc5b4;}else{throw new db[(_0x1d71('0x1b'))][(_0x1d71('0x1c'))]('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 _0x2dc5b4;}}function respondWithRpcPromise(_0x2506f6,_0x547e19,_0x3e8a33,_0x33d9e3){return new BPromise(function(_0x27a4c6,_0x21067f){var _0x2d5b69=_0x33d9e3||client;return _0x2d5b69[_0x1d71('0x1d')](_0x2506f6,_0x3e8a33)[_0x1d71('0x1e')](function(_0xd91a1c){logger[_0x1d71('0x1f')](_0x1d71('0x20'),_0x547e19,'request\x20sent');logger[_0x1d71('0x21')]('FreshdeskAccount,\x20%s,\x20%s,\x20%s',_0x547e19,_0x1d71('0x22'),JSON[_0x1d71('0x23')](_0xd91a1c));if(_0xd91a1c[_0x1d71('0x24')]){if(_0xd91a1c['error'][_0x1d71('0x25')]===0x1f4){logger[_0x1d71('0x24')](_0x1d71('0x20'),_0x547e19,_0xd91a1c[_0x1d71('0x24')][_0x1d71('0x26')]);return _0x21067f(_0xd91a1c['error'][_0x1d71('0x26')]);}logger[_0x1d71('0x24')](_0x1d71('0x20'),_0x547e19,_0xd91a1c[_0x1d71('0x24')][_0x1d71('0x26')]);return _0x27a4c6(_0xd91a1c[_0x1d71('0x24')][_0x1d71('0x26')]);}else{logger[_0x1d71('0x1f')](_0x1d71('0x20'),_0x547e19,_0x1d71('0x22'));_0x27a4c6(_0xd91a1c[_0x1d71('0x27')][_0x1d71('0x26')]);}})['catch'](function(_0x4c9053){logger[_0x1d71('0x24')]('FreshdeskAccount,\x20%s,\x20%s',_0x547e19,_0x4c9053);_0x21067f(_0x4c9053);});});}function respondWithStatusCode(_0x4632cf,_0x21f269){_0x21f269=_0x21f269||0xcc;return function(_0x320b6c){if(_0x320b6c){return _0x4632cf[_0x1d71('0x28')](_0x21f269);}return _0x4632cf[_0x1d71('0x29')](_0x21f269)[_0x1d71('0x2a')]();};}function respondWithResult(_0x40dcdd,_0x15aaeb){_0x15aaeb=_0x15aaeb||0xc8;return function(_0x26b27a){if(_0x26b27a){return _0x40dcdd['status'](_0x15aaeb)[_0x1d71('0x2b')](_0x26b27a);}};}function respondWithFilteredResult(_0x22f954,_0x5f54d9){return function(_0x462a0d){if(_0x462a0d){var _0x42414e=_0x462a0d[_0x1d71('0x2c')],_0x185192=_0x5f54d9['offset'],_0x373770=_0x5f54d9['offset']+_0x5f54d9[_0x1d71('0x2d')],_0xc7b815;if(_0x373770>=_0x42414e){_0x373770=_0x42414e;_0xc7b815=0xc8;}else{_0xc7b815=0xce;}_0x22f954[_0x1d71('0x29')](_0xc7b815);return _0x22f954['set'](_0x1d71('0x2e'),_0x185192+'-'+_0x373770+'/'+_0x42414e)['json'](_0x462a0d);}return null;};}function patchUpdates(_0x4c8221){return function(_0x25b187){try{jsonpatch['apply'](_0x25b187,_0x4c8221,!![]);}catch(_0xc3989){return BPromise[_0x1d71('0x2f')](_0xc3989);}return _0x25b187[_0x1d71('0x30')]();};}function saveUpdates(_0x401bba,_0x3c826e){return function(_0x36b57c){if(_0x36b57c){return _0x36b57c[_0x1d71('0x31')](_0x401bba)[_0x1d71('0x1e')](function(_0x1c6f26){return _0x1c6f26;});}return null;};}function removeEntity(_0x55b9b9,_0x78a31c){return function(_0x26d1d2){if(_0x26d1d2){return _0x26d1d2[_0x1d71('0x32')]()[_0x1d71('0x1e')](function(){_0x55b9b9[_0x1d71('0x29')](0xcc)[_0x1d71('0x2a')]();});}};}function handleEntityNotFound(_0x4b25e9,_0x2daf37){return function(_0x54f347){if(!_0x54f347){_0x4b25e9[_0x1d71('0x28')](0x194);}return _0x54f347;};}function handleError(_0x56bf92,_0x3ef5da){_0x3ef5da=_0x3ef5da||0x1f4;return function(_0x49ee78){logger[_0x1d71('0x24')](_0x49ee78[_0x1d71('0x33')]);if(_0x49ee78[_0x1d71('0x34')]){delete _0x49ee78[_0x1d71('0x34')];}_0x56bf92['status'](_0x3ef5da)[_0x1d71('0x35')](_0x49ee78);};}exports[_0x1d71('0x36')]=function(_0x50ddce,_0x145966){var _0x1c2b44={},_0x3950d1={},_0x1b1cd0={'count':0x0,'rows':[]};var _0x2d85a3=_[_0x1d71('0x37')](db[_0x1d71('0x38')]['rawAttributes'],function(_0x2e7b1a){return{'name':_0x2e7b1a[_0x1d71('0x39')],'type':_0x2e7b1a[_0x1d71('0x3a')][_0x1d71('0x3b')]};});_0x3950d1[_0x1d71('0x3c')]=_[_0x1d71('0x37')](_0x2d85a3,_0x1d71('0x34'));_0x3950d1[_0x1d71('0x3d')]=_[_0x1d71('0x3e')](_0x50ddce[_0x1d71('0x3d')]);_0x3950d1[_0x1d71('0x3f')]=_[_0x1d71('0x40')](_0x3950d1['model'],_0x3950d1[_0x1d71('0x3d')]);_0x1c2b44[_0x1d71('0x41')]=_[_0x1d71('0x40')](_0x3950d1[_0x1d71('0x3c')],qs[_0x1d71('0x42')](_0x50ddce[_0x1d71('0x3d')][_0x1d71('0x42')]));_0x1c2b44[_0x1d71('0x41')]=_0x1c2b44['attributes'][_0x1d71('0x43')]?_0x1c2b44[_0x1d71('0x41')]:_0x3950d1['model'];if(!_0x50ddce[_0x1d71('0x3d')][_0x1d71('0x44')](_0x1d71('0x45'))){_0x1c2b44[_0x1d71('0x2d')]=qs['limit'](_0x50ddce[_0x1d71('0x3d')][_0x1d71('0x2d')]);_0x1c2b44[_0x1d71('0x46')]=qs[_0x1d71('0x46')](_0x50ddce[_0x1d71('0x3d')][_0x1d71('0x46')]);}_0x1c2b44[_0x1d71('0x47')]=qs['sort'](_0x50ddce[_0x1d71('0x3d')]['sort']);_0x1c2b44[_0x1d71('0x48')]=qs[_0x1d71('0x3f')](_[_0x1d71('0x49')](_0x50ddce[_0x1d71('0x3d')],_0x3950d1[_0x1d71('0x3f')]));if(_0x50ddce[_0x1d71('0x3d')]['filter']){_0x1c2b44[_0x1d71('0x48')]=_[_0x1d71('0x4a')](_0x1c2b44['where'],{'$or':_[_0x1d71('0x37')](_0x2d85a3,function(_0x4cbb67){if(_0x4cbb67['type']!==_0x1d71('0x4b')){var _0x28a462={};_0x28a462[_0x4cbb67[_0x1d71('0x34')]]={'$like':'%'+_0x50ddce[_0x1d71('0x3d')][_0x1d71('0x4c')]+'%'};return _0x28a462;}})});}_0x1c2b44=_[_0x1d71('0x4a')]({},_0x1c2b44,_0x50ddce[_0x1d71('0x4d')]);var _0x37818f={'where':_0x1c2b44['where']};return db['FreshdeskAccount'][_0x1d71('0x2c')](_0x37818f)['then'](function(_0x124c5a){_0x1b1cd0[_0x1d71('0x2c')]=_0x124c5a;if(_0x50ddce[_0x1d71('0x3d')][_0x1d71('0x4e')]){_0x1c2b44['include']=[{'all':!![]}];}return db[_0x1d71('0x38')]['findAll'](_0x1c2b44);})['then'](function(_0xf1ab9b){_0x1b1cd0[_0x1d71('0x4f')]=_0xf1ab9b;return _0x1b1cd0;})[_0x1d71('0x1e')](respondWithFilteredResult(_0x145966,_0x1c2b44))['catch'](handleError(_0x145966,null));};exports['show']=function(_0x563d4a,_0x311d08){var _0x212e6c={'raw':![],'where':{'id':_0x563d4a[_0x1d71('0x50')]['id']}},_0x5a7b46={};_0x5a7b46[_0x1d71('0x3c')]=_['keys'](db[_0x1d71('0x38')][_0x1d71('0x51')]);_0x5a7b46[_0x1d71('0x3d')]=_['keys'](_0x563d4a['query']);_0x5a7b46['filters']=_[_0x1d71('0x40')](_0x5a7b46['model'],_0x5a7b46[_0x1d71('0x3d')]);_0x212e6c[_0x1d71('0x41')]=_[_0x1d71('0x40')](_0x5a7b46[_0x1d71('0x3c')],qs[_0x1d71('0x42')](_0x563d4a[_0x1d71('0x3d')][_0x1d71('0x42')]));_0x212e6c[_0x1d71('0x41')]=_0x212e6c[_0x1d71('0x41')][_0x1d71('0x43')]?_0x212e6c[_0x1d71('0x41')]:_0x5a7b46[_0x1d71('0x3c')];if(_0x563d4a[_0x1d71('0x3d')][_0x1d71('0x4e')]){_0x212e6c[_0x1d71('0x52')]=[{'all':!![]}];}_0x212e6c=_[_0x1d71('0x4a')]({},_0x212e6c,_0x563d4a[_0x1d71('0x4d')]);return db[_0x1d71('0x38')][_0x1d71('0x53')](_0x212e6c)['then'](handleEntityNotFound(_0x311d08,null))[_0x1d71('0x1e')](respondWithResult(_0x311d08,null))[_0x1d71('0x54')](handleError(_0x311d08,null));};exports[_0x1d71('0x55')]=function(_0x17868c,_0x122444){return db['FreshdeskAccount'][_0x1d71('0x55')](_0x17868c[_0x1d71('0x56')],{})[_0x1d71('0x1e')](respondWithResult(_0x122444,0xc9))[_0x1d71('0x54')](handleError(_0x122444,null));};exports[_0x1d71('0x31')]=function(_0x1f1963,_0x57e44a){if(_0x1f1963['body']['id']){delete _0x1f1963['body']['id'];}return db[_0x1d71('0x38')][_0x1d71('0x53')]({'where':{'id':_0x1f1963[_0x1d71('0x50')]['id']}})[_0x1d71('0x1e')](handleEntityNotFound(_0x57e44a,null))[_0x1d71('0x1e')](saveUpdates(_0x1f1963['body'],null))['then'](respondWithResult(_0x57e44a,null))[_0x1d71('0x54')](handleError(_0x57e44a,null));};exports['destroy']=function(_0x4f2a27,_0x1f2987){return db['FreshdeskAccount'][_0x1d71('0x53')]({'where':{'id':_0x4f2a27[_0x1d71('0x50')]['id']}})[_0x1d71('0x1e')](handleEntityNotFound(_0x1f2987,null))['then'](removeEntity(_0x1f2987,null))[_0x1d71('0x54')](handleError(_0x1f2987,null));};exports[_0x1d71('0x57')]=function(_0x475180,_0x25c1e9,_0x5eb612){var _0x5d2d12={};var _0x57f99d={};var _0xb03f51;var _0x50342c;return db[_0x1d71('0x38')][_0x1d71('0x58')]({'where':{'id':_0x475180['params']['id']}})[_0x1d71('0x1e')](handleEntityNotFound(_0x25c1e9,null))[_0x1d71('0x1e')](function(_0x5b0740){if(_0x5b0740){_0xb03f51=_0x5b0740;_0x57f99d[_0x1d71('0x3c')]=_[_0x1d71('0x3e')](db[_0x1d71('0x59')][_0x1d71('0x51')]);_0x57f99d[_0x1d71('0x3d')]=_['keys'](_0x475180[_0x1d71('0x3d')]);_0x57f99d[_0x1d71('0x3f')]=_[_0x1d71('0x40')](_0x57f99d[_0x1d71('0x3c')],_0x57f99d['query']);_0x5d2d12[_0x1d71('0x41')]=_['intersection'](_0x57f99d[_0x1d71('0x3c')],qs[_0x1d71('0x42')](_0x475180[_0x1d71('0x3d')]['fields']));_0x5d2d12['attributes']=_0x5d2d12[_0x1d71('0x41')]['length']?_0x5d2d12[_0x1d71('0x41')]:_0x57f99d[_0x1d71('0x3c')];_0x5d2d12[_0x1d71('0x47')]=qs['sort'](_0x475180[_0x1d71('0x3d')]['sort']);_0x5d2d12[_0x1d71('0x48')]=qs['filters'](_[_0x1d71('0x49')](_0x475180[_0x1d71('0x3d')],_0x57f99d[_0x1d71('0x3f')]));if(_0x475180[_0x1d71('0x3d')][_0x1d71('0x4c')]){_0x5d2d12['where']=_[_0x1d71('0x4a')](_0x5d2d12[_0x1d71('0x48')],{'$or':_[_0x1d71('0x37')](_0x5d2d12[_0x1d71('0x41')],function(_0x51e8d4){var _0x1d02fe={};_0x1d02fe[_0x51e8d4]={'$like':'%'+_0x475180[_0x1d71('0x3d')][_0x1d71('0x4c')]+'%'};return _0x1d02fe;})});}_0x5d2d12=_[_0x1d71('0x4a')]({},_0x5d2d12,_0x475180['options']);return _0xb03f51[_0x1d71('0x57')](_0x5d2d12);}})['then'](function(_0x4a254d){if(_0x4a254d){_0x50342c=_0x4a254d[_0x1d71('0x43')];if(!_0x475180[_0x1d71('0x3d')][_0x1d71('0x44')](_0x1d71('0x45'))){_0x5d2d12['limit']=qs[_0x1d71('0x2d')](_0x475180[_0x1d71('0x3d')][_0x1d71('0x2d')]);_0x5d2d12[_0x1d71('0x46')]=qs['offset'](_0x475180['query'][_0x1d71('0x46')]);}return _0xb03f51['getConfigurations'](_0x5d2d12);}})[_0x1d71('0x1e')](function(_0x3e6d4f){if(_0x3e6d4f){return _0x3e6d4f?{'count':_0x50342c,'rows':_0x3e6d4f}:null;}})['then'](respondWithResult(_0x25c1e9,null))[_0x1d71('0x54')](handleError(_0x25c1e9,null));};exports[_0x1d71('0x5a')]=function(_0x4e8ef9,_0x1f6ba0,_0x263e0d){if(_0x4e8ef9[_0x1d71('0x56')]['id']){delete _0x4e8ef9[_0x1d71('0x56')]['id'];}return db[_0x1d71('0x38')][_0x1d71('0x58')]({'where':{'id':_0x4e8ef9['params']['id']}})['then'](handleEntityNotFound(_0x1f6ba0,null))[_0x1d71('0x1e')](function(_0x277f65){if(_0x277f65){_0x4e8ef9['body'][_0x1d71('0x5b')]=_0x277f65['id'];_0x4e8ef9[_0x1d71('0x56')][_0x1d71('0x5c')]=integrations[_0x1d71('0x5d')](_0x4e8ef9['body'][_0x1d71('0x5e')],_0x4e8ef9['body']['type']);_0x4e8ef9['body']['Descriptions']=integrations['getDescriptions'](_0x4e8ef9['body'][_0x1d71('0x5e')],_0x4e8ef9[_0x1d71('0x56')][_0x1d71('0x3a')]);return db['FreshdeskConfiguration']['create'](_0x4e8ef9[_0x1d71('0x56')],{'include':[{'model':db[_0x1d71('0x5f')],'as':_0x1d71('0x5c')},{'model':db[_0x1d71('0x5f')],'as':_0x1d71('0x60')}]});}return null;})[_0x1d71('0x1e')](respondWithResult(_0x1f6ba0,null))[_0x1d71('0x54')](handleError(_0x1f6ba0,null));};exports[_0x1d71('0x61')]=function(_0x21e338,_0x193a9f,_0x1dde5c){var _0x10d91c='';return db[_0x1d71('0x38')][_0x1d71('0x58')]({'where':{'id':_0x21e338[_0x1d71('0x50')]['id']},'attributes':['id','remoteUri',_0x1d71('0x62')]})[_0x1d71('0x1e')](handleEntityNotFound(_0x193a9f,null))[_0x1d71('0x1e')](function(_0x46e212){if(_0x46e212){_0x10d91c=_0x46e212[_0x1d71('0x63')];var _0x30f61f=_0x10d91c[_0x1d71('0x64')](-0x1);if(_0x30f61f==='/'){_0x10d91c=_0x10d91c[_0x1d71('0x65')](0x0,_0x10d91c['lastIndexOf'](_0x30f61f));}return rp({'method':_0x1d71('0x66'),'uri':util[_0x1d71('0x67')](_0x1d71('0x68'),_0x10d91c,'api/v2/ticket_fields'),'headers':{'Authorization':util[_0x1d71('0x67')](_0x1d71('0x69'),new Buffer(util[_0x1d71('0x67')](_0x1d71('0x6a'),_0x46e212[_0x1d71('0x62')]))[_0x1d71('0x6b')](_0x1d71('0x6c')))},'json':!![]});}})['then'](function(_0x485758){if(_0x485758){var _0x3dee3d=['requester',_0x1d71('0x6d'),_0x1d71('0x6e'),_0x1d71('0x6f'),_0x1d71('0x29'),_0x1d71('0x70'),_0x1d71('0x71'),_0x1d71('0x72'),_0x1d71('0x73'),_0x1d71('0x71'),'company'];_[_0x1d71('0x74')](_0x485758,function(_0x536402){return _0x3dee3d[_0x1d71('0x75')](_0x536402[_0x1d71('0x34')])||!_0x536402[_0x1d71('0x76')]&&_0x536402['type']!==_0x1d71('0x77')&&_0x536402[_0x1d71('0x3a')]!=='custom_dropdown';});return{'count':_0x485758[_0x1d71('0x43')],'rows':_[_0x1d71('0x37')](_0x485758,function(_0x43e532){return{'id':_0x43e532[_0x1d71('0x34')],'name':_0x43e532['label'],'custom':!_0x43e532[_0x1d71('0x76')],'options':_0x43e532[_0x1d71('0x78')]?_[_0x1d71('0x37')](_0x43e532[_0x1d71('0x78')],function(_0x396dbc){return{'name':_['capitalize'](_0x396dbc),'value':_0x396dbc};}):[]};})};}})[_0x1d71('0x1e')](respondWithResult(_0x193a9f,null))['catch'](function(_0x5dfccb){var _0x57f014=_0x21e338[_0x1d71('0x3d')][_0x1d71('0x1a')]?0x1f4:_0x5dfccb[_0x1d71('0x79')]||0x1f4;logger[_0x1d71('0x24')](_0x1d71('0x7a'),_0x1d71('0x61'),_0x57f014,JSON[_0x1d71('0x23')](_0x5dfccb));delete _0x5dfccb[_0x1d71('0x34')];if(_0x57f014===0x191){_0x57f014=0x190;}_0x193a9f[_0x1d71('0x29')](_0x57f014)[_0x1d71('0x35')](_0x21e338[_0x1d71('0x3d')][_0x1d71('0x1a')]?{'message':_0x1d71('0x7b'),'statusCode':_0x5dfccb[_0x1d71('0x79')]}:_0x5dfccb);});};