Built motion from commit (unavailable).|2.5.0
[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 _0x7414=['save','stack','name','index','map','FreshdeskAccount','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','nolimit','order','sort','where','merge','VIRTUAL','options','includeAll','catch','show','params','length','include','find','create','body','update','destroy','getConfigurations','pick','filter','hasOwnProperty','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskConfiguration','FreshdeskField','getFields','findOne','remoteUri','apiKey','slice','substring','lastIndexOf','GET','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','%s:X','toString','base64','requester','subject','description','priority','group','source','company','remove','default','custom_text','choices','statusCode','getFields,\x20%s,\x20%s,\x20%s','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','test','Sequelize','ValidationError','request','then','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','sendStatus','end','status','json','count','offset','limit','set','Content-Range','apply'];(function(_0x465a0c,_0x19d4d5){var _0x1e202e=function(_0x27bd8a){while(--_0x27bd8a){_0x465a0c['push'](_0x465a0c['shift']());}};_0x1e202e(++_0x19d4d5);}(_0x7414,0x152));var _0x4741=function(_0x36fb33,_0x661d30){_0x36fb33=_0x36fb33-0x0;var _0x37bd88=_0x7414[_0x36fb33];return _0x37bd88;};'use strict';var pdf=require(_0x4741('0x0'));var emlformat=require(_0x4741('0x1'));var rimraf=require(_0x4741('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4741('0x3'));var rp=require(_0x4741('0x4'));var moment=require(_0x4741('0x5'));var BPromise=require(_0x4741('0x6'));var Mustache=require(_0x4741('0x7'));var util=require(_0x4741('0x8'));var path=require(_0x4741('0x9'));var sox=require(_0x4741('0xa'));var csv=require(_0x4741('0xb'));var ejs=require(_0x4741('0xc'));var fs=require('fs');var _=require(_0x4741('0xd'));var squel=require(_0x4741('0xe'));var crypto=require(_0x4741('0xf'));var jsforce=require(_0x4741('0x10'));var deskjs=require(_0x4741('0x11'));var toCsv=require(_0x4741('0xb'));var querystring=require(_0x4741('0x12'));var Papa=require(_0x4741('0x13'));var Redis=require(_0x4741('0x14'));var authService=require(_0x4741('0x15'));var qs=require(_0x4741('0x16'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4741('0x17'));var logger=require('../../config/logger')(_0x4741('0x18'));var utils=require(_0x4741('0x19'));var config=require('../../config/environment');var db=require(_0x4741('0x1a'))['db'];var integrations=require(_0x4741('0x1b'));var jayson=require(_0x4741('0x1c'));var client=jayson[_0x4741('0x1d')][_0x4741('0x1e')]({'port':0x232a});function checkPasswordPattern(_0x26bf5e,_0x303e05,_0x22cece){if(_0x22cece){var _0x4b09e9=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x4b09e9[_0x4741('0x1f')](_0x303e05)){return _0x26bf5e;}else{throw new db[(_0x4741('0x20'))][(_0x4741('0x21'))]('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 _0x26bf5e;}}function respondWithRpcPromise(_0x4fc318,_0x21d932,_0x56250a,_0x59033e){return new BPromise(function(_0x1c044a,_0x235092){var _0x5dfd6f=_0x59033e||client;return _0x5dfd6f[_0x4741('0x22')](_0x4fc318,_0x56250a)[_0x4741('0x23')](function(_0x2cd9ee){logger['info'](_0x4741('0x24'),_0x21d932,_0x4741('0x25'));logger[_0x4741('0x26')](_0x4741('0x27'),_0x21d932,_0x4741('0x25'),JSON[_0x4741('0x28')](_0x2cd9ee));if(_0x2cd9ee[_0x4741('0x29')]){if(_0x2cd9ee['error'][_0x4741('0x2a')]===0x1f4){logger[_0x4741('0x29')](_0x4741('0x24'),_0x21d932,_0x2cd9ee[_0x4741('0x29')][_0x4741('0x2b')]);return _0x235092(_0x2cd9ee['error']['message']);}logger[_0x4741('0x29')](_0x4741('0x24'),_0x21d932,_0x2cd9ee[_0x4741('0x29')][_0x4741('0x2b')]);return _0x1c044a(_0x2cd9ee[_0x4741('0x29')][_0x4741('0x2b')]);}else{logger['info']('FreshdeskAccount,\x20%s,\x20%s',_0x21d932,_0x4741('0x25'));_0x1c044a(_0x2cd9ee[_0x4741('0x2c')][_0x4741('0x2b')]);}})['catch'](function(_0xf95508){logger[_0x4741('0x29')](_0x4741('0x24'),_0x21d932,_0xf95508);_0x235092(_0xf95508);});});}function respondWithStatusCode(_0x1f1b59,_0x21593e){_0x21593e=_0x21593e||0xcc;return function(_0x484612){if(_0x484612){return _0x1f1b59[_0x4741('0x2d')](_0x21593e);}return _0x1f1b59['status'](_0x21593e)[_0x4741('0x2e')]();};}function respondWithResult(_0x30d5c9,_0x5d995c){_0x5d995c=_0x5d995c||0xc8;return function(_0x4ae076){if(_0x4ae076){return _0x30d5c9[_0x4741('0x2f')](_0x5d995c)[_0x4741('0x30')](_0x4ae076);}};}function respondWithFilteredResult(_0x4c0b0f,_0x3ffedd){return function(_0x3e5a85){if(_0x3e5a85){var _0x2b8757=_0x3e5a85[_0x4741('0x31')],_0x304086=_0x3ffedd[_0x4741('0x32')],_0xa2b4fa=_0x3ffedd['offset']+_0x3ffedd[_0x4741('0x33')],_0x37d024;if(_0xa2b4fa>=_0x2b8757){_0xa2b4fa=_0x2b8757;_0x37d024=0xc8;}else{_0x37d024=0xce;}_0x4c0b0f[_0x4741('0x2f')](_0x37d024);return _0x4c0b0f[_0x4741('0x34')](_0x4741('0x35'),_0x304086+'-'+_0xa2b4fa+'/'+_0x2b8757)[_0x4741('0x30')](_0x3e5a85);}return null;};}function patchUpdates(_0x463e5c){return function(_0x328403){try{jsonpatch[_0x4741('0x36')](_0x328403,_0x463e5c,!![]);}catch(_0x19fd09){return BPromise['reject'](_0x19fd09);}return _0x328403[_0x4741('0x37')]();};}function saveUpdates(_0x144128,_0x14a8c9){return function(_0x2aefd3){if(_0x2aefd3){return _0x2aefd3['update'](_0x144128)[_0x4741('0x23')](function(_0x752f77){return _0x752f77;});}return null;};}function removeEntity(_0x21a2ef,_0x367193){return function(_0x4ce46a){if(_0x4ce46a){return _0x4ce46a['destroy']()['then'](function(){_0x21a2ef[_0x4741('0x2f')](0xcc)[_0x4741('0x2e')]();});}};}function handleEntityNotFound(_0x263d0a,_0x23d893){return function(_0x4577c7){if(!_0x4577c7){_0x263d0a[_0x4741('0x2d')](0x194);}return _0x4577c7;};}function handleError(_0xc88518,_0x40418e){_0x40418e=_0x40418e||0x1f4;return function(_0x28a5f9){logger[_0x4741('0x29')](_0x28a5f9[_0x4741('0x38')]);if(_0x28a5f9[_0x4741('0x39')]){delete _0x28a5f9[_0x4741('0x39')];}_0xc88518[_0x4741('0x2f')](_0x40418e)['send'](_0x28a5f9);};}exports[_0x4741('0x3a')]=function(_0x21c90e,_0x4bf693){var _0x520b4d={},_0x3e44a8={},_0x759f19={'count':0x0,'rows':[]};var _0xad6c3d=_[_0x4741('0x3b')](db[_0x4741('0x3c')][_0x4741('0x3d')],function(_0xd17795){return{'name':_0xd17795[_0x4741('0x3e')],'type':_0xd17795[_0x4741('0x3f')][_0x4741('0x40')]};});_0x3e44a8[_0x4741('0x41')]=_[_0x4741('0x3b')](_0xad6c3d,_0x4741('0x39'));_0x3e44a8['query']=_[_0x4741('0x42')](_0x21c90e[_0x4741('0x43')]);_0x3e44a8[_0x4741('0x44')]=_[_0x4741('0x45')](_0x3e44a8[_0x4741('0x41')],_0x3e44a8['query']);_0x520b4d[_0x4741('0x46')]=_[_0x4741('0x45')](_0x3e44a8[_0x4741('0x41')],qs[_0x4741('0x47')](_0x21c90e[_0x4741('0x43')][_0x4741('0x47')]));_0x520b4d['attributes']=_0x520b4d['attributes']['length']?_0x520b4d[_0x4741('0x46')]:_0x3e44a8[_0x4741('0x41')];if(!_0x21c90e[_0x4741('0x43')]['hasOwnProperty'](_0x4741('0x48'))){_0x520b4d[_0x4741('0x33')]=qs[_0x4741('0x33')](_0x21c90e[_0x4741('0x43')][_0x4741('0x33')]);_0x520b4d[_0x4741('0x32')]=qs[_0x4741('0x32')](_0x21c90e[_0x4741('0x43')][_0x4741('0x32')]);}_0x520b4d[_0x4741('0x49')]=qs[_0x4741('0x4a')](_0x21c90e[_0x4741('0x43')]['sort']);_0x520b4d[_0x4741('0x4b')]=qs[_0x4741('0x44')](_['pick'](_0x21c90e[_0x4741('0x43')],_0x3e44a8[_0x4741('0x44')]));if(_0x21c90e[_0x4741('0x43')]['filter']){_0x520b4d[_0x4741('0x4b')]=_[_0x4741('0x4c')](_0x520b4d[_0x4741('0x4b')],{'$or':_[_0x4741('0x3b')](_0xad6c3d,function(_0x378a14){if(_0x378a14[_0x4741('0x3f')]!==_0x4741('0x4d')){var _0x107d68={};_0x107d68[_0x378a14[_0x4741('0x39')]]={'$like':'%'+_0x21c90e[_0x4741('0x43')]['filter']+'%'};return _0x107d68;}})});}_0x520b4d=_['merge']({},_0x520b4d,_0x21c90e[_0x4741('0x4e')]);var _0x364841={'where':_0x520b4d['where']};return db[_0x4741('0x3c')][_0x4741('0x31')](_0x364841)[_0x4741('0x23')](function(_0x50e061){_0x759f19['count']=_0x50e061;if(_0x21c90e[_0x4741('0x43')][_0x4741('0x4f')]){_0x520b4d['include']=[{'all':!![]}];}return db[_0x4741('0x3c')]['findAll'](_0x520b4d);})[_0x4741('0x23')](function(_0x18cdef){_0x759f19['rows']=_0x18cdef;return _0x759f19;})[_0x4741('0x23')](respondWithFilteredResult(_0x4bf693,_0x520b4d))[_0x4741('0x50')](handleError(_0x4bf693,null));};exports[_0x4741('0x51')]=function(_0x462b04,_0x4bd07c){var _0x55c5f3={'raw':![],'where':{'id':_0x462b04[_0x4741('0x52')]['id']}},_0x253cf9={};_0x253cf9[_0x4741('0x41')]=_[_0x4741('0x42')](db[_0x4741('0x3c')][_0x4741('0x3d')]);_0x253cf9[_0x4741('0x43')]=_[_0x4741('0x42')](_0x462b04[_0x4741('0x43')]);_0x253cf9[_0x4741('0x44')]=_[_0x4741('0x45')](_0x253cf9[_0x4741('0x41')],_0x253cf9['query']);_0x55c5f3['attributes']=_['intersection'](_0x253cf9['model'],qs[_0x4741('0x47')](_0x462b04['query'][_0x4741('0x47')]));_0x55c5f3[_0x4741('0x46')]=_0x55c5f3['attributes'][_0x4741('0x53')]?_0x55c5f3[_0x4741('0x46')]:_0x253cf9[_0x4741('0x41')];if(_0x462b04[_0x4741('0x43')][_0x4741('0x4f')]){_0x55c5f3[_0x4741('0x54')]=[{'all':!![]}];}_0x55c5f3=_[_0x4741('0x4c')]({},_0x55c5f3,_0x462b04[_0x4741('0x4e')]);return db[_0x4741('0x3c')][_0x4741('0x55')](_0x55c5f3)[_0x4741('0x23')](handleEntityNotFound(_0x4bd07c,null))['then'](respondWithResult(_0x4bd07c,null))[_0x4741('0x50')](handleError(_0x4bd07c,null));};exports[_0x4741('0x56')]=function(_0x1b679f,_0x5daa02){return db[_0x4741('0x3c')]['create'](_0x1b679f[_0x4741('0x57')],{})['then'](respondWithResult(_0x5daa02,0xc9))[_0x4741('0x50')](handleError(_0x5daa02,null));};exports[_0x4741('0x58')]=function(_0x44ffe4,_0x168095){if(_0x44ffe4[_0x4741('0x57')]['id']){delete _0x44ffe4[_0x4741('0x57')]['id'];}return db[_0x4741('0x3c')][_0x4741('0x55')]({'where':{'id':_0x44ffe4[_0x4741('0x52')]['id']}})[_0x4741('0x23')](handleEntityNotFound(_0x168095,null))[_0x4741('0x23')](saveUpdates(_0x44ffe4[_0x4741('0x57')],null))[_0x4741('0x23')](respondWithResult(_0x168095,null))[_0x4741('0x50')](handleError(_0x168095,null));};exports[_0x4741('0x59')]=function(_0x538d4b,_0x10bbca){return db[_0x4741('0x3c')]['find']({'where':{'id':_0x538d4b[_0x4741('0x52')]['id']}})['then'](handleEntityNotFound(_0x10bbca,null))['then'](removeEntity(_0x10bbca,null))[_0x4741('0x50')](handleError(_0x10bbca,null));};exports[_0x4741('0x5a')]=function(_0x34d039,_0x23f25b,_0x24c2ea){var _0x487320={};var _0x2f7890={};var _0x55824e;var _0x27a190;return db[_0x4741('0x3c')]['findOne']({'where':{'id':_0x34d039[_0x4741('0x52')]['id']}})[_0x4741('0x23')](handleEntityNotFound(_0x23f25b,null))[_0x4741('0x23')](function(_0x3810c7){if(_0x3810c7){_0x55824e=_0x3810c7;_0x2f7890[_0x4741('0x41')]=_['keys'](db['FreshdeskConfiguration'][_0x4741('0x3d')]);_0x2f7890[_0x4741('0x43')]=_[_0x4741('0x42')](_0x34d039[_0x4741('0x43')]);_0x2f7890[_0x4741('0x44')]=_[_0x4741('0x45')](_0x2f7890[_0x4741('0x41')],_0x2f7890[_0x4741('0x43')]);_0x487320[_0x4741('0x46')]=_[_0x4741('0x45')](_0x2f7890[_0x4741('0x41')],qs[_0x4741('0x47')](_0x34d039['query'][_0x4741('0x47')]));_0x487320[_0x4741('0x46')]=_0x487320['attributes'][_0x4741('0x53')]?_0x487320[_0x4741('0x46')]:_0x2f7890[_0x4741('0x41')];_0x487320[_0x4741('0x49')]=qs[_0x4741('0x4a')](_0x34d039['query']['sort']);_0x487320[_0x4741('0x4b')]=qs[_0x4741('0x44')](_[_0x4741('0x5b')](_0x34d039[_0x4741('0x43')],_0x2f7890[_0x4741('0x44')]));if(_0x34d039[_0x4741('0x43')]['filter']){_0x487320['where']=_[_0x4741('0x4c')](_0x487320[_0x4741('0x4b')],{'$or':_[_0x4741('0x3b')](_0x487320['attributes'],function(_0x4acc10){var _0x41dec7={};_0x41dec7[_0x4acc10]={'$like':'%'+_0x34d039[_0x4741('0x43')][_0x4741('0x5c')]+'%'};return _0x41dec7;})});}_0x487320=_['merge']({},_0x487320,_0x34d039[_0x4741('0x4e')]);return _0x55824e[_0x4741('0x5a')](_0x487320);}})[_0x4741('0x23')](function(_0x2acdce){if(_0x2acdce){_0x27a190=_0x2acdce[_0x4741('0x53')];if(!_0x34d039['query'][_0x4741('0x5d')]('nolimit')){_0x487320['limit']=qs[_0x4741('0x33')](_0x34d039[_0x4741('0x43')][_0x4741('0x33')]);_0x487320['offset']=qs[_0x4741('0x32')](_0x34d039['query'][_0x4741('0x32')]);}return _0x55824e['getConfigurations'](_0x487320);}})[_0x4741('0x23')](function(_0x6690e3){if(_0x6690e3){return _0x6690e3?{'count':_0x27a190,'rows':_0x6690e3}:null;}})[_0x4741('0x23')](respondWithResult(_0x23f25b,null))[_0x4741('0x50')](handleError(_0x23f25b,null));};exports[_0x4741('0x5e')]=function(_0x2a8049,_0x577e84,_0x40840e){if(_0x2a8049[_0x4741('0x57')]['id']){delete _0x2a8049['body']['id'];}return db[_0x4741('0x3c')]['findOne']({'where':{'id':_0x2a8049['params']['id']}})[_0x4741('0x23')](handleEntityNotFound(_0x577e84,null))[_0x4741('0x23')](function(_0x495b32){if(_0x495b32){_0x2a8049[_0x4741('0x57')][_0x4741('0x5f')]=_0x495b32['id'];_0x2a8049[_0x4741('0x57')][_0x4741('0x60')]=integrations[_0x4741('0x61')](_0x2a8049[_0x4741('0x57')][_0x4741('0x62')],_0x2a8049[_0x4741('0x57')][_0x4741('0x3f')]);_0x2a8049[_0x4741('0x57')][_0x4741('0x63')]=integrations[_0x4741('0x64')](_0x2a8049[_0x4741('0x57')][_0x4741('0x62')],_0x2a8049[_0x4741('0x57')][_0x4741('0x3f')]);return db[_0x4741('0x65')][_0x4741('0x56')](_0x2a8049[_0x4741('0x57')],{'include':[{'model':db[_0x4741('0x66')],'as':'Subjects'},{'model':db['FreshdeskField'],'as':'Descriptions'}]});}return null;})[_0x4741('0x23')](respondWithResult(_0x577e84,null))[_0x4741('0x50')](handleError(_0x577e84,null));};exports[_0x4741('0x67')]=function(_0xe137cc,_0x7c24de,_0x2b2852){var _0x14bb3f='';return db[_0x4741('0x3c')][_0x4741('0x68')]({'where':{'id':_0xe137cc[_0x4741('0x52')]['id']},'attributes':['id',_0x4741('0x69'),_0x4741('0x6a')]})['then'](handleEntityNotFound(_0x7c24de,null))[_0x4741('0x23')](function(_0x1fee08){if(_0x1fee08){_0x14bb3f=_0x1fee08[_0x4741('0x69')];var _0x21402a=_0x14bb3f[_0x4741('0x6b')](-0x1);if(_0x21402a==='/'){_0x14bb3f=_0x14bb3f[_0x4741('0x6c')](0x0,_0x14bb3f[_0x4741('0x6d')](_0x21402a));}return rp({'method':_0x4741('0x6e'),'uri':util[_0x4741('0x6f')](_0x4741('0x70'),_0x14bb3f,_0x4741('0x71')),'headers':{'Authorization':util[_0x4741('0x6f')](_0x4741('0x72'),new Buffer(util[_0x4741('0x6f')](_0x4741('0x73'),_0x1fee08[_0x4741('0x6a')]))[_0x4741('0x74')](_0x4741('0x75')))},'json':!![]});}})['then'](function(_0x5ea448){if(_0x5ea448){var _0x5955c4=[_0x4741('0x76'),_0x4741('0x77'),'agent',_0x4741('0x78'),_0x4741('0x2f'),_0x4741('0x79'),_0x4741('0x7a'),_0x4741('0x7b'),'ticket_type',_0x4741('0x7a'),_0x4741('0x7c')];_[_0x4741('0x7d')](_0x5ea448,function(_0x13d063){return _0x5955c4['includes'](_0x13d063[_0x4741('0x39')])||!_0x13d063[_0x4741('0x7e')]&&_0x13d063['type']!==_0x4741('0x7f')&&_0x13d063[_0x4741('0x3f')]!=='custom_dropdown';});return{'count':_0x5ea448[_0x4741('0x53')],'rows':_[_0x4741('0x3b')](_0x5ea448,function(_0x5ac441){return{'id':_0x5ac441[_0x4741('0x39')],'name':_0x5ac441['label'],'custom':!_0x5ac441[_0x4741('0x7e')],'options':_0x5ac441[_0x4741('0x80')]?_['map'](_0x5ac441[_0x4741('0x80')],function(_0x5977a9){return{'name':_['capitalize'](_0x5977a9),'value':_0x5977a9};}):[]};})};}})[_0x4741('0x23')](respondWithResult(_0x7c24de,null))[_0x4741('0x50')](function(_0x19bf17){var _0x154a19=_0xe137cc[_0x4741('0x43')][_0x4741('0x1f')]?0x1f4:_0x19bf17[_0x4741('0x81')]||0x1f4;logger[_0x4741('0x29')](_0x4741('0x82'),_0x4741('0x67'),_0x154a19,JSON[_0x4741('0x28')](_0x19bf17));delete _0x19bf17[_0x4741('0x39')];if(_0x154a19===0x191){_0x154a19=0x190;}_0x7c24de['status'](_0x154a19)['send'](_0xe137cc[_0x4741('0x43')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x19bf17[_0x4741('0x81')]}:_0x19bf17);});};