b9934c445a14380a36d25dc0eefe074e929f6943
[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 _0x55ca=['filter','options','include','rows','show','includeAll','create','body','find','params','destroy','getConfigurations','findOne','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskConfiguration','getFields','remoteUri','apiKey','slice','GET','format','%s/%s','api/v2/ticket_fields','%s:X','toString','base64','requester','agent','priority','group','source','ticket_type','company','remove','default','custom_text','custom_dropdown','label','choices','capitalize','statusCode','Wrong\x20credentials','html-pdf','eml-format','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','http','test','Sequelize','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','then','info','request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','FreshdeskAccount,\x20%s,\x20%s','message','catch','sendStatus','status','end','json','count','offset','Content-Range','reject','save','update','stack','send','index','map','FreshdeskAccount','rawAttributes','fieldName','type','model','keys','filters','intersection','fields','query','attributes','length','hasOwnProperty','nolimit','limit','sort','where','pick','merge','VIRTUAL','name'];(function(_0xfe7cab,_0x303f19){var _0x221b12=function(_0x8b2696){while(--_0x8b2696){_0xfe7cab['push'](_0xfe7cab['shift']());}};_0x221b12(++_0x303f19);}(_0x55ca,0x126));var _0xa55c=function(_0x4a095e,_0x381cd5){_0x4a095e=_0x4a095e-0x0;var _0x10ef73=_0x55ca[_0x4a095e];return _0x10ef73;};'use strict';var pdf=require(_0xa55c('0x0'));var emlformat=require(_0xa55c('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xa55c('0x2'));var moment=require(_0xa55c('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xa55c('0x4'));var util=require(_0xa55c('0x5'));var path=require(_0xa55c('0x6'));var sox=require(_0xa55c('0x7'));var csv=require(_0xa55c('0x8'));var ejs=require(_0xa55c('0x9'));var fs=require('fs');var _=require(_0xa55c('0xa'));var squel=require('squel');var crypto=require(_0xa55c('0xb'));var jsforce=require(_0xa55c('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xa55c('0x8'));var querystring=require(_0xa55c('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xa55c('0xe'));var qs=require(_0xa55c('0xf'));var as=require(_0xa55c('0x10'));var hardwareService=require(_0xa55c('0x11'));var logger=require(_0xa55c('0x12'))(_0xa55c('0x13'));var utils=require(_0xa55c('0x14'));var config=require(_0xa55c('0x15'));var db=require(_0xa55c('0x16'))['db'];var integrations=require(_0xa55c('0x17'));var jayson=require('jayson/promise');var client=jayson['client'][_0xa55c('0x18')]({'port':0x232a});function checkPasswordPattern(_0x576044,_0x5a3672,_0x59ea8d){if(_0x59ea8d){var _0x18ee85=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x18ee85[_0xa55c('0x19')](_0x5a3672)){return _0x576044;}else{throw new db[(_0xa55c('0x1a'))][(_0xa55c('0x1b'))](_0xa55c('0x1c'));}}else{return _0x576044;}}function respondWithRpcPromise(_0x247e77,_0x4e0b2f,_0x3ccf65,_0x3dcf4f){return new BPromise(function(_0x25934f,_0x31e10d){var _0x1c4cfd=_0x3dcf4f||client;return _0x1c4cfd[_0xa55c('0x1d')](_0x247e77,_0x3ccf65)[_0xa55c('0x1e')](function(_0x2d09d8){logger[_0xa55c('0x1f')]('FreshdeskAccount,\x20%s,\x20%s',_0x4e0b2f,_0xa55c('0x20'));logger[_0xa55c('0x21')](_0xa55c('0x22'),_0x4e0b2f,_0xa55c('0x20'),JSON[_0xa55c('0x23')](_0x2d09d8));if(_0x2d09d8[_0xa55c('0x24')]){if(_0x2d09d8['error']['code']===0x1f4){logger[_0xa55c('0x24')](_0xa55c('0x25'),_0x4e0b2f,_0x2d09d8[_0xa55c('0x24')]['message']);return _0x31e10d(_0x2d09d8[_0xa55c('0x24')][_0xa55c('0x26')]);}logger['error'](_0xa55c('0x25'),_0x4e0b2f,_0x2d09d8[_0xa55c('0x24')][_0xa55c('0x26')]);return _0x25934f(_0x2d09d8[_0xa55c('0x24')][_0xa55c('0x26')]);}else{logger['info'](_0xa55c('0x25'),_0x4e0b2f,'request\x20sent');_0x25934f(_0x2d09d8['result']['message']);}})[_0xa55c('0x27')](function(_0x54b038){logger[_0xa55c('0x24')](_0xa55c('0x25'),_0x4e0b2f,_0x54b038);_0x31e10d(_0x54b038);});});}function respondWithStatusCode(_0x3f64de,_0xf0e574){_0xf0e574=_0xf0e574||0xcc;return function(_0x2313a9){if(_0x2313a9){return _0x3f64de[_0xa55c('0x28')](_0xf0e574);}return _0x3f64de[_0xa55c('0x29')](_0xf0e574)[_0xa55c('0x2a')]();};}function respondWithResult(_0x192df2,_0x3cd152){_0x3cd152=_0x3cd152||0xc8;return function(_0x1273d7){if(_0x1273d7){return _0x192df2['status'](_0x3cd152)[_0xa55c('0x2b')](_0x1273d7);}};}function respondWithFilteredResult(_0x28814f,_0x1c9f6b){return function(_0x906caa){if(_0x906caa){var _0x5d940d=_0x906caa[_0xa55c('0x2c')],_0x1377b0=_0x1c9f6b[_0xa55c('0x2d')],_0x22f6b6=_0x1c9f6b[_0xa55c('0x2d')]+_0x1c9f6b['limit'],_0x1b8388;if(_0x22f6b6>=_0x5d940d){_0x22f6b6=_0x5d940d;_0x1b8388=0xc8;}else{_0x1b8388=0xce;}_0x28814f[_0xa55c('0x29')](_0x1b8388);return _0x28814f['set'](_0xa55c('0x2e'),_0x1377b0+'-'+_0x22f6b6+'/'+_0x5d940d)[_0xa55c('0x2b')](_0x906caa);}return null;};}function patchUpdates(_0x1cc53e){return function(_0x223813){try{jsonpatch['apply'](_0x223813,_0x1cc53e,!![]);}catch(_0x3d28fb){return BPromise[_0xa55c('0x2f')](_0x3d28fb);}return _0x223813[_0xa55c('0x30')]();};}function saveUpdates(_0x20da31,_0x10f4b7){return function(_0x1225c3){if(_0x1225c3){return _0x1225c3[_0xa55c('0x31')](_0x20da31)[_0xa55c('0x1e')](function(_0x2808e9){return _0x2808e9;});}return null;};}function removeEntity(_0xcbaf2e,_0x197099){return function(_0x4eb7c4){if(_0x4eb7c4){return _0x4eb7c4['destroy']()[_0xa55c('0x1e')](function(){_0xcbaf2e[_0xa55c('0x29')](0xcc)['end']();});}};}function handleEntityNotFound(_0x30fadd,_0x2f0110){return function(_0x2e9623){if(!_0x2e9623){_0x30fadd[_0xa55c('0x28')](0x194);}return _0x2e9623;};}function handleError(_0x30d4f8,_0x38ff96){_0x38ff96=_0x38ff96||0x1f4;return function(_0x3ce1b3){logger[_0xa55c('0x24')](_0x3ce1b3[_0xa55c('0x32')]);if(_0x3ce1b3['name']){delete _0x3ce1b3['name'];}_0x30d4f8['status'](_0x38ff96)[_0xa55c('0x33')](_0x3ce1b3);};}exports[_0xa55c('0x34')]=function(_0x2bb4f0,_0x5802e4){var _0x768408={},_0x547930={},_0x119220={'count':0x0,'rows':[]};var _0x4ad813=_[_0xa55c('0x35')](db[_0xa55c('0x36')][_0xa55c('0x37')],function(_0x4d3eb5){return{'name':_0x4d3eb5[_0xa55c('0x38')],'type':_0x4d3eb5[_0xa55c('0x39')]['key']};});_0x547930[_0xa55c('0x3a')]=_[_0xa55c('0x35')](_0x4ad813,'name');_0x547930['query']=_[_0xa55c('0x3b')](_0x2bb4f0['query']);_0x547930[_0xa55c('0x3c')]=_[_0xa55c('0x3d')](_0x547930['model'],_0x547930['query']);_0x768408['attributes']=_['intersection'](_0x547930[_0xa55c('0x3a')],qs[_0xa55c('0x3e')](_0x2bb4f0[_0xa55c('0x3f')][_0xa55c('0x3e')]));_0x768408[_0xa55c('0x40')]=_0x768408['attributes'][_0xa55c('0x41')]?_0x768408[_0xa55c('0x40')]:_0x547930[_0xa55c('0x3a')];if(!_0x2bb4f0[_0xa55c('0x3f')][_0xa55c('0x42')](_0xa55c('0x43'))){_0x768408['limit']=qs[_0xa55c('0x44')](_0x2bb4f0['query']['limit']);_0x768408[_0xa55c('0x2d')]=qs[_0xa55c('0x2d')](_0x2bb4f0['query'][_0xa55c('0x2d')]);}_0x768408['order']=qs['sort'](_0x2bb4f0[_0xa55c('0x3f')][_0xa55c('0x45')]);_0x768408[_0xa55c('0x46')]=qs['filters'](_[_0xa55c('0x47')](_0x2bb4f0[_0xa55c('0x3f')],_0x547930['filters']),_0x4ad813);if(_0x2bb4f0[_0xa55c('0x3f')]['filter']){_0x768408[_0xa55c('0x46')]=_[_0xa55c('0x48')](_0x768408['where'],{'$or':_[_0xa55c('0x35')](_0x4ad813,function(_0x1dae70){if(_0x1dae70['type']!==_0xa55c('0x49')){var _0x187e09={};_0x187e09[_0x1dae70[_0xa55c('0x4a')]]={'$like':'%'+_0x2bb4f0['query'][_0xa55c('0x4b')]+'%'};return _0x187e09;}})});}_0x768408=_['merge']({},_0x768408,_0x2bb4f0[_0xa55c('0x4c')]);var _0x3a8af4={'where':_0x768408[_0xa55c('0x46')]};return db['FreshdeskAccount'][_0xa55c('0x2c')](_0x3a8af4)[_0xa55c('0x1e')](function(_0x592429){_0x119220[_0xa55c('0x2c')]=_0x592429;if(_0x2bb4f0[_0xa55c('0x3f')]['includeAll']){_0x768408[_0xa55c('0x4d')]=[{'all':!![]}];}return db[_0xa55c('0x36')]['findAll'](_0x768408);})[_0xa55c('0x1e')](function(_0x81cee8){_0x119220[_0xa55c('0x4e')]=_0x81cee8;return _0x119220;})[_0xa55c('0x1e')](respondWithFilteredResult(_0x5802e4,_0x768408))['catch'](handleError(_0x5802e4,null));};exports[_0xa55c('0x4f')]=function(_0x58a7ea,_0x2157d6){var _0x213100={'raw':![],'where':{'id':_0x58a7ea['params']['id']}},_0x194a79={};_0x194a79[_0xa55c('0x3a')]=_[_0xa55c('0x3b')](db['FreshdeskAccount'][_0xa55c('0x37')]);_0x194a79[_0xa55c('0x3f')]=_[_0xa55c('0x3b')](_0x58a7ea[_0xa55c('0x3f')]);_0x194a79[_0xa55c('0x3c')]=_[_0xa55c('0x3d')](_0x194a79[_0xa55c('0x3a')],_0x194a79[_0xa55c('0x3f')]);_0x213100[_0xa55c('0x40')]=_[_0xa55c('0x3d')](_0x194a79['model'],qs[_0xa55c('0x3e')](_0x58a7ea[_0xa55c('0x3f')][_0xa55c('0x3e')]));_0x213100['attributes']=_0x213100[_0xa55c('0x40')][_0xa55c('0x41')]?_0x213100['attributes']:_0x194a79[_0xa55c('0x3a')];if(_0x58a7ea['query'][_0xa55c('0x50')]){_0x213100[_0xa55c('0x4d')]=[{'all':!![]}];}_0x213100=_[_0xa55c('0x48')]({},_0x213100,_0x58a7ea[_0xa55c('0x4c')]);return db[_0xa55c('0x36')]['find'](_0x213100)[_0xa55c('0x1e')](handleEntityNotFound(_0x2157d6,null))[_0xa55c('0x1e')](respondWithResult(_0x2157d6,null))['catch'](handleError(_0x2157d6,null));};exports[_0xa55c('0x51')]=function(_0x2291e0,_0x17f4f8){return db[_0xa55c('0x36')]['create'](_0x2291e0['body'],{})[_0xa55c('0x1e')](respondWithResult(_0x17f4f8,0xc9))[_0xa55c('0x27')](handleError(_0x17f4f8,null));};exports[_0xa55c('0x31')]=function(_0x44ac57,_0x54cbde){if(_0x44ac57[_0xa55c('0x52')]['id']){delete _0x44ac57['body']['id'];}return db[_0xa55c('0x36')][_0xa55c('0x53')]({'where':{'id':_0x44ac57[_0xa55c('0x54')]['id']}})[_0xa55c('0x1e')](handleEntityNotFound(_0x54cbde,null))[_0xa55c('0x1e')](saveUpdates(_0x44ac57['body'],null))[_0xa55c('0x1e')](respondWithResult(_0x54cbde,null))['catch'](handleError(_0x54cbde,null));};exports[_0xa55c('0x55')]=function(_0x157afe,_0x2cfe08){return db[_0xa55c('0x36')][_0xa55c('0x53')]({'where':{'id':_0x157afe[_0xa55c('0x54')]['id']}})[_0xa55c('0x1e')](handleEntityNotFound(_0x2cfe08,null))['then'](removeEntity(_0x2cfe08,null))[_0xa55c('0x27')](handleError(_0x2cfe08,null));};exports[_0xa55c('0x56')]=function(_0x2f2d21,_0x23a30e,_0x3fa00f){var _0x5ba2b0={};var _0xa72718={};var _0x3cd40d;var _0x28bac4;return db[_0xa55c('0x36')][_0xa55c('0x57')]({'where':{'id':_0x2f2d21['params']['id']}})[_0xa55c('0x1e')](handleEntityNotFound(_0x23a30e,null))[_0xa55c('0x1e')](function(_0x43136b){if(_0x43136b){_0x3cd40d=_0x43136b;_0xa72718[_0xa55c('0x3a')]=_[_0xa55c('0x3b')](db['FreshdeskConfiguration'][_0xa55c('0x37')]);_0xa72718['query']=_[_0xa55c('0x3b')](_0x2f2d21['query']);_0xa72718[_0xa55c('0x3c')]=_['intersection'](_0xa72718[_0xa55c('0x3a')],_0xa72718[_0xa55c('0x3f')]);_0x5ba2b0[_0xa55c('0x40')]=_[_0xa55c('0x3d')](_0xa72718[_0xa55c('0x3a')],qs[_0xa55c('0x3e')](_0x2f2d21[_0xa55c('0x3f')][_0xa55c('0x3e')]));_0x5ba2b0[_0xa55c('0x40')]=_0x5ba2b0[_0xa55c('0x40')]['length']?_0x5ba2b0[_0xa55c('0x40')]:_0xa72718[_0xa55c('0x3a')];_0x5ba2b0['order']=qs[_0xa55c('0x45')](_0x2f2d21[_0xa55c('0x3f')][_0xa55c('0x45')]);_0x5ba2b0[_0xa55c('0x46')]=qs[_0xa55c('0x3c')](_[_0xa55c('0x47')](_0x2f2d21[_0xa55c('0x3f')],_0xa72718[_0xa55c('0x3c')]));if(_0x2f2d21['query'][_0xa55c('0x4b')]){_0x5ba2b0[_0xa55c('0x46')]=_[_0xa55c('0x48')](_0x5ba2b0[_0xa55c('0x46')],{'$or':_[_0xa55c('0x35')](_0x5ba2b0[_0xa55c('0x40')],function(_0x2f1237){var _0x4249c1={};_0x4249c1[_0x2f1237]={'$like':'%'+_0x2f2d21[_0xa55c('0x3f')]['filter']+'%'};return _0x4249c1;})});}_0x5ba2b0=_[_0xa55c('0x48')]({},_0x5ba2b0,_0x2f2d21[_0xa55c('0x4c')]);return _0x3cd40d[_0xa55c('0x56')](_0x5ba2b0);}})[_0xa55c('0x1e')](function(_0x3a269d){if(_0x3a269d){_0x28bac4=_0x3a269d[_0xa55c('0x41')];if(!_0x2f2d21[_0xa55c('0x3f')][_0xa55c('0x42')](_0xa55c('0x43'))){_0x5ba2b0[_0xa55c('0x44')]=qs[_0xa55c('0x44')](_0x2f2d21['query'][_0xa55c('0x44')]);_0x5ba2b0['offset']=qs[_0xa55c('0x2d')](_0x2f2d21[_0xa55c('0x3f')][_0xa55c('0x2d')]);}return _0x3cd40d['getConfigurations'](_0x5ba2b0);}})['then'](function(_0x2640a1){if(_0x2640a1){return _0x2640a1?{'count':_0x28bac4,'rows':_0x2640a1}:null;}})[_0xa55c('0x1e')](respondWithResult(_0x23a30e,null))[_0xa55c('0x27')](handleError(_0x23a30e,null));};exports[_0xa55c('0x58')]=function(_0x4c7ee1,_0x149cb9,_0xd02251){if(_0x4c7ee1[_0xa55c('0x52')]['id']){delete _0x4c7ee1[_0xa55c('0x52')]['id'];}return db[_0xa55c('0x36')]['findOne']({'where':{'id':_0x4c7ee1['params']['id']}})[_0xa55c('0x1e')](handleEntityNotFound(_0x149cb9,null))[_0xa55c('0x1e')](function(_0x3f9d0a){if(_0x3f9d0a){_0x4c7ee1[_0xa55c('0x52')][_0xa55c('0x59')]=_0x3f9d0a['id'];_0x4c7ee1['body'][_0xa55c('0x5a')]=integrations[_0xa55c('0x5b')](_0x4c7ee1['body'][_0xa55c('0x5c')],_0x4c7ee1[_0xa55c('0x52')][_0xa55c('0x39')]);_0x4c7ee1['body'][_0xa55c('0x5d')]=integrations[_0xa55c('0x5e')](_0x4c7ee1[_0xa55c('0x52')][_0xa55c('0x5c')],_0x4c7ee1[_0xa55c('0x52')]['type']);return db[_0xa55c('0x5f')][_0xa55c('0x51')](_0x4c7ee1['body'],{'include':[{'model':db['FreshdeskField'],'as':_0xa55c('0x5a')},{'model':db['FreshdeskField'],'as':_0xa55c('0x5d')}]});}return null;})[_0xa55c('0x1e')](respondWithResult(_0x149cb9,null))[_0xa55c('0x27')](handleError(_0x149cb9,null));};exports[_0xa55c('0x60')]=function(_0x30d1c1,_0x3f1132,_0x22b06f){var _0xff7b1c='';return db[_0xa55c('0x36')]['findOne']({'where':{'id':_0x30d1c1[_0xa55c('0x54')]['id']},'attributes':['id',_0xa55c('0x61'),_0xa55c('0x62')]})[_0xa55c('0x1e')](handleEntityNotFound(_0x3f1132,null))['then'](function(_0x4095f6){if(_0x4095f6){_0xff7b1c=_0x4095f6[_0xa55c('0x61')];var _0x1baa8b=_0xff7b1c[_0xa55c('0x63')](-0x1);if(_0x1baa8b==='/'){_0xff7b1c=_0xff7b1c['substring'](0x0,_0xff7b1c['lastIndexOf'](_0x1baa8b));}return rp({'method':_0xa55c('0x64'),'uri':util[_0xa55c('0x65')](_0xa55c('0x66'),_0xff7b1c,_0xa55c('0x67')),'headers':{'Authorization':util['format']('Basic\x20%s',new Buffer(util[_0xa55c('0x65')](_0xa55c('0x68'),_0x4095f6[_0xa55c('0x62')]))[_0xa55c('0x69')](_0xa55c('0x6a')))},'json':!![]});}})[_0xa55c('0x1e')](function(_0x239269){if(_0x239269){var _0x51b58e=[_0xa55c('0x6b'),'subject',_0xa55c('0x6c'),'description',_0xa55c('0x29'),_0xa55c('0x6d'),_0xa55c('0x6e'),_0xa55c('0x6f'),_0xa55c('0x70'),_0xa55c('0x6e'),_0xa55c('0x71')];_[_0xa55c('0x72')](_0x239269,function(_0x576a1b){return _0x51b58e['includes'](_0x576a1b[_0xa55c('0x4a')])||!_0x576a1b[_0xa55c('0x73')]&&_0x576a1b[_0xa55c('0x39')]!==_0xa55c('0x74')&&_0x576a1b[_0xa55c('0x39')]!==_0xa55c('0x75');});return{'count':_0x239269['length'],'rows':_[_0xa55c('0x35')](_0x239269,function(_0x124740){return{'id':_0x124740[_0xa55c('0x4a')],'name':_0x124740[_0xa55c('0x76')],'custom':!_0x124740[_0xa55c('0x73')],'options':_0x124740[_0xa55c('0x77')]?_[_0xa55c('0x35')](_0x124740[_0xa55c('0x77')],function(_0x58b670){return{'name':_[_0xa55c('0x78')](_0x58b670),'value':_0x58b670};}):[]};})};}})[_0xa55c('0x1e')](respondWithResult(_0x3f1132,null))[_0xa55c('0x27')](function(_0x25e246){var _0xa957ad=_0x30d1c1['query'][_0xa55c('0x19')]?0x1f4:_0x25e246[_0xa55c('0x79')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0xa55c('0x60'),_0xa957ad,JSON[_0xa55c('0x23')](_0x25e246));delete _0x25e246['name'];if(_0xa957ad===0x191){_0xa957ad=0x190;}_0x3f1132['status'](_0xa957ad)['send'](_0x30d1c1['query'][_0xa55c('0x19')]?{'message':_0xa55c('0x7a'),'statusCode':_0x25e246[_0xa55c('0x79')]}:_0x25e246);});};