Built motion from commit (unavailable).|2.5.2
[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 _0x814b=['length','hasOwnProperty','order','sort','where','pick','filter','merge','options','includeAll','rows','show','keys','rawAttributes','include','create','body','find','params','findOne','getConfigurations','nolimit','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskConfiguration','getFields','apiKey','slice','lastIndexOf','GET','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','%s:X','toString','requester','agent','description','group','source','ticket_type','company','remove','includes','default','choices','capitalize','statusCode','getFields,\x20%s,\x20%s,\x20%s','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','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','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','result','catch','sendStatus','status','end','count','offset','limit','set','apply','reject','then','destroy','stack','name','send','FreshdeskAccount','type','model','map','filters','intersection','query','fields','attributes'];(function(_0x99a978,_0x2aba00){var _0x1e3349=function(_0x2b3a56){while(--_0x2b3a56){_0x99a978['push'](_0x99a978['shift']());}};_0x1e3349(++_0x2aba00);}(_0x814b,0x1a2));var _0xb814=function(_0x270dba,_0x1817d2){_0x270dba=_0x270dba-0x0;var _0x36b83b=_0x814b[_0x270dba];return _0x36b83b;};'use strict';var pdf=require(_0xb814('0x0'));var emlformat=require(_0xb814('0x1'));var rimraf=require(_0xb814('0x2'));var zipdir=require(_0xb814('0x3'));var jsonpatch=require(_0xb814('0x4'));var rp=require(_0xb814('0x5'));var moment=require('moment');var BPromise=require(_0xb814('0x6'));var Mustache=require(_0xb814('0x7'));var util=require(_0xb814('0x8'));var path=require(_0xb814('0x9'));var sox=require(_0xb814('0xa'));var csv=require(_0xb814('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xb814('0xc'));var squel=require(_0xb814('0xd'));var crypto=require('crypto');var jsforce=require(_0xb814('0xe'));var deskjs=require(_0xb814('0xf'));var toCsv=require(_0xb814('0xb'));var querystring=require(_0xb814('0x10'));var Papa=require(_0xb814('0x11'));var Redis=require(_0xb814('0x12'));var authService=require(_0xb814('0x13'));var qs=require(_0xb814('0x14'));var as=require(_0xb814('0x15'));var hardwareService=require(_0xb814('0x16'));var logger=require(_0xb814('0x17'))('api');var utils=require(_0xb814('0x18'));var config=require('../../config/environment');var db=require(_0xb814('0x19'))['db'];var integrations=require(_0xb814('0x1a'));var jayson=require(_0xb814('0x1b'));var client=jayson[_0xb814('0x1c')][_0xb814('0x1d')]({'port':0x232a});function checkPasswordPattern(_0x3bde14,_0x1438e7,_0x41ed7b){if(_0x41ed7b){var _0xa0a2e5=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0xa0a2e5[_0xb814('0x1e')](_0x1438e7)){return _0x3bde14;}else{throw new db[(_0xb814('0x1f'))][(_0xb814('0x20'))](_0xb814('0x21'));}}else{return _0x3bde14;}}function respondWithRpcPromise(_0x39bfcf,_0x303aca,_0x3a71d6,_0x45e0d0){return new BPromise(function(_0x265a83,_0x125ce2){var _0x21b73f=_0x45e0d0||client;return _0x21b73f[_0xb814('0x22')](_0x39bfcf,_0x3a71d6)['then'](function(_0x168a48){logger['info'](_0xb814('0x23'),_0x303aca,_0xb814('0x24'));logger['debug']('FreshdeskAccount,\x20%s,\x20%s,\x20%s',_0x303aca,'request\x20sent',JSON[_0xb814('0x25')](_0x168a48));if(_0x168a48['error']){if(_0x168a48['error'][_0xb814('0x26')]===0x1f4){logger[_0xb814('0x27')](_0xb814('0x23'),_0x303aca,_0x168a48['error'][_0xb814('0x28')]);return _0x125ce2(_0x168a48['error'][_0xb814('0x28')]);}logger[_0xb814('0x27')](_0xb814('0x23'),_0x303aca,_0x168a48[_0xb814('0x27')][_0xb814('0x28')]);return _0x265a83(_0x168a48[_0xb814('0x27')][_0xb814('0x28')]);}else{logger['info'](_0xb814('0x23'),_0x303aca,'request\x20sent');_0x265a83(_0x168a48[_0xb814('0x29')][_0xb814('0x28')]);}})[_0xb814('0x2a')](function(_0x208927){logger[_0xb814('0x27')](_0xb814('0x23'),_0x303aca,_0x208927);_0x125ce2(_0x208927);});});}function respondWithStatusCode(_0x3d836c,_0x5755ea){_0x5755ea=_0x5755ea||0xcc;return function(_0x392222){if(_0x392222){return _0x3d836c[_0xb814('0x2b')](_0x5755ea);}return _0x3d836c[_0xb814('0x2c')](_0x5755ea)[_0xb814('0x2d')]();};}function respondWithResult(_0x32ed56,_0x1d5965){_0x1d5965=_0x1d5965||0xc8;return function(_0x3f0150){if(_0x3f0150){return _0x32ed56[_0xb814('0x2c')](_0x1d5965)['json'](_0x3f0150);}};}function respondWithFilteredResult(_0x271aa8,_0x328a08){return function(_0x52ed64){if(_0x52ed64){var _0x9008b2=_0x52ed64[_0xb814('0x2e')],_0x37d24d=_0x328a08[_0xb814('0x2f')],_0x530744=_0x328a08['offset']+_0x328a08[_0xb814('0x30')],_0x499f22;if(_0x530744>=_0x9008b2){_0x530744=_0x9008b2;_0x499f22=0xc8;}else{_0x499f22=0xce;}_0x271aa8['status'](_0x499f22);return _0x271aa8[_0xb814('0x31')]('Content-Range',_0x37d24d+'-'+_0x530744+'/'+_0x9008b2)['json'](_0x52ed64);}return null;};}function patchUpdates(_0x419cd9){return function(_0x4a4f27){try{jsonpatch[_0xb814('0x32')](_0x4a4f27,_0x419cd9,!![]);}catch(_0x19469b){return BPromise[_0xb814('0x33')](_0x19469b);}return _0x4a4f27['save']();};}function saveUpdates(_0x51d5ae,_0x26d3a9){return function(_0x336e2b){if(_0x336e2b){return _0x336e2b['update'](_0x51d5ae)[_0xb814('0x34')](function(_0xe558d5){return _0xe558d5;});}return null;};}function removeEntity(_0x692c72,_0x217b7e){return function(_0x1b78de){if(_0x1b78de){return _0x1b78de[_0xb814('0x35')]()[_0xb814('0x34')](function(){_0x692c72['status'](0xcc)[_0xb814('0x2d')]();});}};}function handleEntityNotFound(_0x2263f6,_0x30de5a){return function(_0x424e2b){if(!_0x424e2b){_0x2263f6[_0xb814('0x2b')](0x194);}return _0x424e2b;};}function handleError(_0x4ff31a,_0x16ef82){_0x16ef82=_0x16ef82||0x1f4;return function(_0x57e6e6){logger[_0xb814('0x27')](_0x57e6e6[_0xb814('0x36')]);if(_0x57e6e6[_0xb814('0x37')]){delete _0x57e6e6['name'];}_0x4ff31a[_0xb814('0x2c')](_0x16ef82)[_0xb814('0x38')](_0x57e6e6);};}exports['index']=function(_0x2fcd92,_0x2d0e27){var _0x1a8bd0={},_0x1f7cd8={},_0xd77d96={'count':0x0,'rows':[]};var _0x467cf9=_['map'](db[_0xb814('0x39')]['rawAttributes'],function(_0x2aaf1c){return{'name':_0x2aaf1c['fieldName'],'type':_0x2aaf1c[_0xb814('0x3a')]['key']};});_0x1f7cd8[_0xb814('0x3b')]=_[_0xb814('0x3c')](_0x467cf9,'name');_0x1f7cd8['query']=_['keys'](_0x2fcd92['query']);_0x1f7cd8[_0xb814('0x3d')]=_[_0xb814('0x3e')](_0x1f7cd8[_0xb814('0x3b')],_0x1f7cd8[_0xb814('0x3f')]);_0x1a8bd0['attributes']=_['intersection'](_0x1f7cd8[_0xb814('0x3b')],qs['fields'](_0x2fcd92[_0xb814('0x3f')][_0xb814('0x40')]));_0x1a8bd0[_0xb814('0x41')]=_0x1a8bd0[_0xb814('0x41')][_0xb814('0x42')]?_0x1a8bd0[_0xb814('0x41')]:_0x1f7cd8[_0xb814('0x3b')];if(!_0x2fcd92[_0xb814('0x3f')][_0xb814('0x43')]('nolimit')){_0x1a8bd0['limit']=qs['limit'](_0x2fcd92[_0xb814('0x3f')]['limit']);_0x1a8bd0[_0xb814('0x2f')]=qs['offset'](_0x2fcd92[_0xb814('0x3f')][_0xb814('0x2f')]);}_0x1a8bd0[_0xb814('0x44')]=qs[_0xb814('0x45')](_0x2fcd92['query'][_0xb814('0x45')]);_0x1a8bd0[_0xb814('0x46')]=qs[_0xb814('0x3d')](_[_0xb814('0x47')](_0x2fcd92[_0xb814('0x3f')],_0x1f7cd8[_0xb814('0x3d')]),_0x467cf9);if(_0x2fcd92['query'][_0xb814('0x48')]){_0x1a8bd0[_0xb814('0x46')]=_[_0xb814('0x49')](_0x1a8bd0[_0xb814('0x46')],{'$or':_[_0xb814('0x3c')](_0x467cf9,function(_0x144d37){if(_0x144d37[_0xb814('0x3a')]!=='VIRTUAL'){var _0x4a5e84={};_0x4a5e84[_0x144d37[_0xb814('0x37')]]={'$like':'%'+_0x2fcd92[_0xb814('0x3f')][_0xb814('0x48')]+'%'};return _0x4a5e84;}})});}_0x1a8bd0=_[_0xb814('0x49')]({},_0x1a8bd0,_0x2fcd92[_0xb814('0x4a')]);var _0x40e627={'where':_0x1a8bd0[_0xb814('0x46')]};return db[_0xb814('0x39')][_0xb814('0x2e')](_0x40e627)[_0xb814('0x34')](function(_0xe73300){_0xd77d96['count']=_0xe73300;if(_0x2fcd92[_0xb814('0x3f')][_0xb814('0x4b')]){_0x1a8bd0['include']=[{'all':!![]}];}return db[_0xb814('0x39')]['findAll'](_0x1a8bd0);})[_0xb814('0x34')](function(_0x37866f){_0xd77d96[_0xb814('0x4c')]=_0x37866f;return _0xd77d96;})[_0xb814('0x34')](respondWithFilteredResult(_0x2d0e27,_0x1a8bd0))[_0xb814('0x2a')](handleError(_0x2d0e27,null));};exports[_0xb814('0x4d')]=function(_0x2cc806,_0x45480e){var _0x32a397={'raw':![],'where':{'id':_0x2cc806['params']['id']}},_0x2a422a={};_0x2a422a['model']=_[_0xb814('0x4e')](db[_0xb814('0x39')][_0xb814('0x4f')]);_0x2a422a[_0xb814('0x3f')]=_[_0xb814('0x4e')](_0x2cc806[_0xb814('0x3f')]);_0x2a422a[_0xb814('0x3d')]=_['intersection'](_0x2a422a[_0xb814('0x3b')],_0x2a422a[_0xb814('0x3f')]);_0x32a397[_0xb814('0x41')]=_['intersection'](_0x2a422a[_0xb814('0x3b')],qs['fields'](_0x2cc806[_0xb814('0x3f')]['fields']));_0x32a397[_0xb814('0x41')]=_0x32a397[_0xb814('0x41')]['length']?_0x32a397[_0xb814('0x41')]:_0x2a422a[_0xb814('0x3b')];if(_0x2cc806[_0xb814('0x3f')]['includeAll']){_0x32a397[_0xb814('0x50')]=[{'all':!![]}];}_0x32a397=_['merge']({},_0x32a397,_0x2cc806[_0xb814('0x4a')]);return db[_0xb814('0x39')]['find'](_0x32a397)[_0xb814('0x34')](handleEntityNotFound(_0x45480e,null))['then'](respondWithResult(_0x45480e,null))['catch'](handleError(_0x45480e,null));};exports[_0xb814('0x51')]=function(_0x35f59a,_0x34935b){return db['FreshdeskAccount'][_0xb814('0x51')](_0x35f59a['body'],{})[_0xb814('0x34')](respondWithResult(_0x34935b,0xc9))[_0xb814('0x2a')](handleError(_0x34935b,null));};exports['update']=function(_0x2db5a6,_0x5c32c2){if(_0x2db5a6[_0xb814('0x52')]['id']){delete _0x2db5a6[_0xb814('0x52')]['id'];}return db[_0xb814('0x39')][_0xb814('0x53')]({'where':{'id':_0x2db5a6[_0xb814('0x54')]['id']}})[_0xb814('0x34')](handleEntityNotFound(_0x5c32c2,null))[_0xb814('0x34')](saveUpdates(_0x2db5a6[_0xb814('0x52')],null))['then'](respondWithResult(_0x5c32c2,null))[_0xb814('0x2a')](handleError(_0x5c32c2,null));};exports[_0xb814('0x35')]=function(_0x5d71d5,_0x29a127){return db[_0xb814('0x39')]['find']({'where':{'id':_0x5d71d5[_0xb814('0x54')]['id']}})['then'](handleEntityNotFound(_0x29a127,null))['then'](removeEntity(_0x29a127,null))[_0xb814('0x2a')](handleError(_0x29a127,null));};exports['getConfigurations']=function(_0x3ff213,_0xd1cd8b,_0x2dec52){var _0x586957={};var _0x1a0ef4={};var _0x4df65c;var _0x2ef77d;return db[_0xb814('0x39')][_0xb814('0x55')]({'where':{'id':_0x3ff213[_0xb814('0x54')]['id']}})[_0xb814('0x34')](handleEntityNotFound(_0xd1cd8b,null))[_0xb814('0x34')](function(_0x2e5f99){if(_0x2e5f99){_0x4df65c=_0x2e5f99;_0x1a0ef4[_0xb814('0x3b')]=_[_0xb814('0x4e')](db['FreshdeskConfiguration'][_0xb814('0x4f')]);_0x1a0ef4[_0xb814('0x3f')]=_[_0xb814('0x4e')](_0x3ff213[_0xb814('0x3f')]);_0x1a0ef4[_0xb814('0x3d')]=_[_0xb814('0x3e')](_0x1a0ef4['model'],_0x1a0ef4[_0xb814('0x3f')]);_0x586957['attributes']=_[_0xb814('0x3e')](_0x1a0ef4[_0xb814('0x3b')],qs[_0xb814('0x40')](_0x3ff213['query'][_0xb814('0x40')]));_0x586957['attributes']=_0x586957[_0xb814('0x41')]['length']?_0x586957[_0xb814('0x41')]:_0x1a0ef4[_0xb814('0x3b')];_0x586957[_0xb814('0x44')]=qs[_0xb814('0x45')](_0x3ff213[_0xb814('0x3f')][_0xb814('0x45')]);_0x586957[_0xb814('0x46')]=qs['filters'](_[_0xb814('0x47')](_0x3ff213['query'],_0x1a0ef4[_0xb814('0x3d')]));if(_0x3ff213[_0xb814('0x3f')][_0xb814('0x48')]){_0x586957[_0xb814('0x46')]=_[_0xb814('0x49')](_0x586957[_0xb814('0x46')],{'$or':_['map'](_0x586957[_0xb814('0x41')],function(_0x1a2603){var _0x4a49ba={};_0x4a49ba[_0x1a2603]={'$like':'%'+_0x3ff213[_0xb814('0x3f')][_0xb814('0x48')]+'%'};return _0x4a49ba;})});}_0x586957=_[_0xb814('0x49')]({},_0x586957,_0x3ff213[_0xb814('0x4a')]);return _0x4df65c[_0xb814('0x56')](_0x586957);}})['then'](function(_0x3a4d4b){if(_0x3a4d4b){_0x2ef77d=_0x3a4d4b['length'];if(!_0x3ff213[_0xb814('0x3f')][_0xb814('0x43')](_0xb814('0x57'))){_0x586957[_0xb814('0x30')]=qs[_0xb814('0x30')](_0x3ff213[_0xb814('0x3f')]['limit']);_0x586957['offset']=qs['offset'](_0x3ff213[_0xb814('0x3f')]['offset']);}return _0x4df65c[_0xb814('0x56')](_0x586957);}})[_0xb814('0x34')](function(_0x25db89){if(_0x25db89){return _0x25db89?{'count':_0x2ef77d,'rows':_0x25db89}:null;}})['then'](respondWithResult(_0xd1cd8b,null))[_0xb814('0x2a')](handleError(_0xd1cd8b,null));};exports[_0xb814('0x58')]=function(_0xee204,_0x5aabbe,_0x30f717){if(_0xee204[_0xb814('0x52')]['id']){delete _0xee204[_0xb814('0x52')]['id'];}return db[_0xb814('0x39')]['findOne']({'where':{'id':_0xee204['params']['id']}})[_0xb814('0x34')](handleEntityNotFound(_0x5aabbe,null))[_0xb814('0x34')](function(_0x39863d){if(_0x39863d){_0xee204[_0xb814('0x52')][_0xb814('0x59')]=_0x39863d['id'];_0xee204[_0xb814('0x52')][_0xb814('0x5a')]=integrations[_0xb814('0x5b')](_0xee204[_0xb814('0x52')][_0xb814('0x5c')],_0xee204[_0xb814('0x52')][_0xb814('0x3a')]);_0xee204[_0xb814('0x52')][_0xb814('0x5d')]=integrations[_0xb814('0x5e')](_0xee204['body'][_0xb814('0x5c')],_0xee204[_0xb814('0x52')][_0xb814('0x3a')]);return db[_0xb814('0x5f')][_0xb814('0x51')](_0xee204[_0xb814('0x52')],{'include':[{'model':db['FreshdeskField'],'as':_0xb814('0x5a')},{'model':db['FreshdeskField'],'as':_0xb814('0x5d')}]});}return null;})[_0xb814('0x34')](respondWithResult(_0x5aabbe,null))[_0xb814('0x2a')](handleError(_0x5aabbe,null));};exports[_0xb814('0x60')]=function(_0x265a25,_0x5ce177,_0x4c44ee){var _0xea9cee='';return db[_0xb814('0x39')][_0xb814('0x55')]({'where':{'id':_0x265a25[_0xb814('0x54')]['id']},'attributes':['id','remoteUri',_0xb814('0x61')]})['then'](handleEntityNotFound(_0x5ce177,null))[_0xb814('0x34')](function(_0x227cbd){if(_0x227cbd){_0xea9cee=_0x227cbd['remoteUri'];var _0x58b016=_0xea9cee[_0xb814('0x62')](-0x1);if(_0x58b016==='/'){_0xea9cee=_0xea9cee['substring'](0x0,_0xea9cee[_0xb814('0x63')](_0x58b016));}return rp({'method':_0xb814('0x64'),'uri':util[_0xb814('0x65')](_0xb814('0x66'),_0xea9cee,_0xb814('0x67')),'headers':{'Authorization':util[_0xb814('0x65')](_0xb814('0x68'),new Buffer(util['format'](_0xb814('0x69'),_0x227cbd['apiKey']))[_0xb814('0x6a')]('base64'))},'json':!![]});}})[_0xb814('0x34')](function(_0x43ee60){if(_0x43ee60){var _0x58d56c=[_0xb814('0x6b'),'subject',_0xb814('0x6c'),_0xb814('0x6d'),'status','priority',_0xb814('0x6e'),_0xb814('0x6f'),_0xb814('0x70'),_0xb814('0x6e'),_0xb814('0x71')];_[_0xb814('0x72')](_0x43ee60,function(_0x2b12a9){return _0x58d56c[_0xb814('0x73')](_0x2b12a9[_0xb814('0x37')])||!_0x2b12a9[_0xb814('0x74')]&&_0x2b12a9['type']!=='custom_text'&&_0x2b12a9['type']!=='custom_dropdown';});return{'count':_0x43ee60['length'],'rows':_[_0xb814('0x3c')](_0x43ee60,function(_0x75a33){return{'id':_0x75a33[_0xb814('0x37')],'name':_0x75a33['label'],'custom':!_0x75a33[_0xb814('0x74')],'options':_0x75a33[_0xb814('0x75')]?_[_0xb814('0x3c')](_0x75a33[_0xb814('0x75')],function(_0x161658){return{'name':_[_0xb814('0x76')](_0x161658),'value':_0x161658};}):[]};})};}})[_0xb814('0x34')](respondWithResult(_0x5ce177,null))[_0xb814('0x2a')](function(_0x5cf5ad){var _0x20efc3=_0x265a25[_0xb814('0x3f')][_0xb814('0x1e')]?0x1f4:_0x5cf5ad[_0xb814('0x77')]||0x1f4;logger['error'](_0xb814('0x78'),_0xb814('0x60'),_0x20efc3,JSON[_0xb814('0x25')](_0x5cf5ad));delete _0x5cf5ad[_0xb814('0x37')];if(_0x20efc3===0x191){_0x20efc3=0x190;}_0x5ce177[_0xb814('0x2c')](_0x20efc3)['send'](_0x265a25['query'][_0xb814('0x1e')]?{'message':'Wrong\x20credentials','statusCode':_0x5cf5ad[_0xb814('0x77')]}:_0x5cf5ad);});};