92b4aff2382a22a953e592d9ce5c1cb56eeca075
[motion2.git] / server / api / cannedAnswer / cannedAnswer.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 _0xfb5e=['zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','get','CannedAnswers','destroy','then','end','error','stack','name','send','index','map','CannedAnswer','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filter','merge','options','includeAll','include','findAll','rows','show','params','find','catch','body','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','autoAssociation','UserProfileResource','rimraf'];(function(_0x46698a,_0x8de1e4){var _0x356db0=function(_0x19e83c){while(--_0x19e83c){_0x46698a['push'](_0x46698a['shift']());}};_0x356db0(++_0x8de1e4);}(_0xfb5e,0x10d));var _0xefb5=function(_0x27f146,_0x5515bf){_0x27f146=_0x27f146-0x0;var _0xd45e2a=_0xfb5e[_0x27f146];return _0xd45e2a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xefb5('0x0'));var zipdir=require(_0xefb5('0x1'));var jsonpatch=require(_0xefb5('0x2'));var rp=require(_0xefb5('0x3'));var moment=require(_0xefb5('0x4'));var BPromise=require(_0xefb5('0x5'));var Mustache=require('mustache');var util=require(_0xefb5('0x6'));var path=require('path');var sox=require(_0xefb5('0x7'));var csv=require(_0xefb5('0x8'));var ejs=require(_0xefb5('0x9'));var fs=require('fs');var fs_extra=require(_0xefb5('0xa'));var _=require(_0xefb5('0xb'));var squel=require(_0xefb5('0xc'));var crypto=require(_0xefb5('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xefb5('0xe'));var toCsv=require(_0xefb5('0x8'));var querystring=require(_0xefb5('0xf'));var Papa=require(_0xefb5('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xefb5('0x11'));var as=require(_0xefb5('0x12'));var hardwareService=require(_0xefb5('0x13'));var logger=require(_0xefb5('0x14'))(_0xefb5('0x15'));var utils=require(_0xefb5('0x16'));var config=require(_0xefb5('0x17'));var licenseUtil=require(_0xefb5('0x18'));var db=require(_0xefb5('0x19'))['db'];function respondWithStatusCode(_0x4cd0ce,_0x395851){_0x395851=_0x395851||0xcc;return function(_0x37c172){if(_0x37c172){return _0x4cd0ce[_0xefb5('0x1a')](_0x395851);}return _0x4cd0ce[_0xefb5('0x1b')](_0x395851)['end']();};}function respondWithResult(_0x47872d,_0x4f7a85){_0x4f7a85=_0x4f7a85||0xc8;return function(_0x46d7fb){if(_0x46d7fb){return _0x47872d[_0xefb5('0x1b')](_0x4f7a85)['json'](_0x46d7fb);}};}function respondWithFilteredResult(_0x3de18c,_0x462f5a){return function(_0x3e3810){if(_0x3e3810){var _0x5b9ad7=typeof _0x462f5a[_0xefb5('0x1c')]===_0xefb5('0x1d')&&typeof _0x462f5a[_0xefb5('0x1e')]===_0xefb5('0x1d');var _0x49ffd0=_0x3e3810[_0xefb5('0x1f')];var _0x19997f=_0x5b9ad7?0x0:_0x462f5a[_0xefb5('0x1c')];var _0x473170=_0x5b9ad7?_0x3e3810['count']:_0x462f5a[_0xefb5('0x1c')]+_0x462f5a['limit'];var _0x23fd80;if(_0x473170>=_0x49ffd0){_0x473170=_0x49ffd0;_0x23fd80=0xc8;}else{_0x23fd80=0xce;}_0x3de18c[_0xefb5('0x1b')](_0x23fd80);return _0x3de18c[_0xefb5('0x20')](_0xefb5('0x21'),_0x19997f+'-'+_0x473170+'/'+_0x49ffd0)[_0xefb5('0x22')](_0x3e3810);}return null;};}function patchUpdates(_0x11bb93){return function(_0x2f2076){try{jsonpatch[_0xefb5('0x23')](_0x2f2076,_0x11bb93,!![]);}catch(_0xad853b){return BPromise[_0xefb5('0x24')](_0xad853b);}return _0x2f2076[_0xefb5('0x25')]();};}function saveUpdates(_0x3c2060,_0x1755a3){return function(_0x4dc968){if(_0x4dc968){return _0x4dc968[_0xefb5('0x26')](_0x3c2060)['then'](function(_0x505eed){return _0x505eed;});}return null;};}function removeEntity(_0x15db5a,_0xaa920){return function(_0x34c87d){if(_0x34c87d){return _0x34c87d['destroy']()['then'](function(){var _0x2cc9d1=_0x34c87d[_0xefb5('0x27')]({'plain':!![]});var _0x22af59=_0xefb5('0x28');return db['UserProfileResource'][_0xefb5('0x29')]({'where':{'type':_0x22af59,'resourceId':_0x2cc9d1['id']}})[_0xefb5('0x2a')](function(){return _0x34c87d;});})[_0xefb5('0x2a')](function(){_0x15db5a[_0xefb5('0x1b')](0xcc)[_0xefb5('0x2b')]();});}};}function handleEntityNotFound(_0x258948,_0x4ee44c){return function(_0x1c9afa){if(!_0x1c9afa){_0x258948['sendStatus'](0x194);}return _0x1c9afa;};}function handleError(_0x1dc670,_0xca92c2){_0xca92c2=_0xca92c2||0x1f4;return function(_0x10f955){logger[_0xefb5('0x2c')](_0x10f955[_0xefb5('0x2d')]);if(_0x10f955[_0xefb5('0x2e')]){delete _0x10f955[_0xefb5('0x2e')];}_0x1dc670[_0xefb5('0x1b')](_0xca92c2)[_0xefb5('0x2f')](_0x10f955);};}exports[_0xefb5('0x30')]=function(_0x2220d8,_0x597c0d){var _0x19b728={},_0x3b36e9={},_0x1c8a9b={'count':0x0,'rows':[]};var _0xe5baf4=_[_0xefb5('0x31')](db[_0xefb5('0x32')][_0xefb5('0x33')],function(_0x20c649){return{'name':_0x20c649['fieldName'],'type':_0x20c649[_0xefb5('0x34')][_0xefb5('0x35')]};});_0x3b36e9[_0xefb5('0x36')]=_[_0xefb5('0x31')](_0xe5baf4,_0xefb5('0x2e'));_0x3b36e9[_0xefb5('0x37')]=_[_0xefb5('0x38')](_0x2220d8[_0xefb5('0x37')]);_0x3b36e9[_0xefb5('0x39')]=_[_0xefb5('0x3a')](_0x3b36e9[_0xefb5('0x36')],_0x3b36e9[_0xefb5('0x37')]);_0x19b728[_0xefb5('0x3b')]=_[_0xefb5('0x3a')](_0x3b36e9['model'],qs['fields'](_0x2220d8[_0xefb5('0x37')][_0xefb5('0x3c')]));_0x19b728[_0xefb5('0x3b')]=_0x19b728['attributes'][_0xefb5('0x3d')]?_0x19b728[_0xefb5('0x3b')]:_0x3b36e9[_0xefb5('0x36')];if(!_0x2220d8[_0xefb5('0x37')][_0xefb5('0x3e')]('nolimit')){_0x19b728[_0xefb5('0x1e')]=qs[_0xefb5('0x1e')](_0x2220d8['query'][_0xefb5('0x1e')]);_0x19b728[_0xefb5('0x1c')]=qs[_0xefb5('0x1c')](_0x2220d8['query'][_0xefb5('0x1c')]);}_0x19b728[_0xefb5('0x3f')]=qs[_0xefb5('0x40')](_0x2220d8['query'][_0xefb5('0x40')]);_0x19b728[_0xefb5('0x41')]=qs[_0xefb5('0x39')](_['pick'](_0x2220d8[_0xefb5('0x37')],_0x3b36e9[_0xefb5('0x39')]),_0xe5baf4);if(_0x2220d8[_0xefb5('0x37')][_0xefb5('0x42')]){_0x19b728[_0xefb5('0x41')]=_['merge'](_0x19b728[_0xefb5('0x41')],{'$or':[{'key':{'$like':'%'+_0x2220d8[_0xefb5('0x37')][_0xefb5('0x42')]+'%'}},{'value':{'$like':'%'+_0x2220d8[_0xefb5('0x37')][_0xefb5('0x42')]+'%'}}]});}_0x19b728=_[_0xefb5('0x43')]({},_0x19b728,_0x2220d8[_0xefb5('0x44')]);var _0x2bc52b={'where':_0x19b728[_0xefb5('0x41')]};return db['CannedAnswer']['count'](_0x2bc52b)[_0xefb5('0x2a')](function(_0x1bdccd){_0x1c8a9b[_0xefb5('0x1f')]=_0x1bdccd;if(_0x2220d8['query'][_0xefb5('0x45')]){_0x19b728[_0xefb5('0x46')]=[{'all':!![]}];}return db[_0xefb5('0x32')][_0xefb5('0x47')](_0x19b728);})[_0xefb5('0x2a')](function(_0xcac8af){_0x1c8a9b[_0xefb5('0x48')]=_0xcac8af;return _0x1c8a9b;})[_0xefb5('0x2a')](respondWithFilteredResult(_0x597c0d,_0x19b728))['catch'](handleError(_0x597c0d,null));};exports[_0xefb5('0x49')]=function(_0x360cc2,_0x47bc48){var _0x55fa63={'raw':!![],'where':{'id':_0x360cc2[_0xefb5('0x4a')]['id']}},_0xd16113={};_0xd16113['model']=_[_0xefb5('0x38')](db[_0xefb5('0x32')][_0xefb5('0x33')]);_0xd16113[_0xefb5('0x37')]=_[_0xefb5('0x38')](_0x360cc2['query']);_0xd16113[_0xefb5('0x39')]=_[_0xefb5('0x3a')](_0xd16113[_0xefb5('0x36')],_0xd16113[_0xefb5('0x37')]);_0x55fa63[_0xefb5('0x3b')]=_[_0xefb5('0x3a')](_0xd16113[_0xefb5('0x36')],qs[_0xefb5('0x3c')](_0x360cc2[_0xefb5('0x37')]['fields']));_0x55fa63['attributes']=_0x55fa63[_0xefb5('0x3b')][_0xefb5('0x3d')]?_0x55fa63[_0xefb5('0x3b')]:_0xd16113['model'];if(_0x360cc2[_0xefb5('0x37')][_0xefb5('0x45')]){_0x55fa63['include']=[{'all':!![]}];}_0x55fa63=_[_0xefb5('0x43')]({},_0x55fa63,_0x360cc2[_0xefb5('0x44')]);return db[_0xefb5('0x32')][_0xefb5('0x4b')](_0x55fa63)[_0xefb5('0x2a')](handleEntityNotFound(_0x47bc48,null))['then'](respondWithResult(_0x47bc48,null))[_0xefb5('0x4c')](handleError(_0x47bc48,null));};exports['update']=function(_0x55b3c1,_0x2c2280){if(_0x55b3c1[_0xefb5('0x4d')]['id']){delete _0x55b3c1[_0xefb5('0x4d')]['id'];}return db['CannedAnswer'][_0xefb5('0x4b')]({'where':{'id':_0x55b3c1[_0xefb5('0x4a')]['id']}})[_0xefb5('0x2a')](handleEntityNotFound(_0x2c2280,null))[_0xefb5('0x2a')](saveUpdates(_0x55b3c1[_0xefb5('0x4d')],null))[_0xefb5('0x2a')](respondWithResult(_0x2c2280,null))[_0xefb5('0x4c')](handleError(_0x2c2280,null));};exports[_0xefb5('0x29')]=function(_0x3f87aa,_0x47a844){return db[_0xefb5('0x32')][_0xefb5('0x4b')]({'where':{'id':_0x3f87aa[_0xefb5('0x4a')]['id']}})['then'](handleEntityNotFound(_0x47a844,null))[_0xefb5('0x2a')](removeEntity(_0x47a844,null))[_0xefb5('0x4c')](handleError(_0x47a844,null));};exports[_0xefb5('0x4e')]=function(_0x11ee6c,_0x17de6b){var _0x310d5d={'key':_0x11ee6c[_0xefb5('0x4d')][_0xefb5('0x35')]};if(_0x11ee6c['body'][_0xefb5('0x4f')]){_0x310d5d[_0xefb5('0x4f')]=_0x11ee6c[_0xefb5('0x4d')][_0xefb5('0x4f')];}else if(_0x11ee6c[_0xefb5('0x4d')]['SmsAccountId']){_0x310d5d[_0xefb5('0x50')]=_0x11ee6c[_0xefb5('0x4d')][_0xefb5('0x50')];}else if(_0x11ee6c[_0xefb5('0x4d')]['OpenchannelAccountId']){_0x310d5d[_0xefb5('0x51')]=_0x11ee6c[_0xefb5('0x4d')][_0xefb5('0x51')];}else if(_0x11ee6c[_0xefb5('0x4d')][_0xefb5('0x52')]){_0x310d5d[_0xefb5('0x52')]=_0x11ee6c[_0xefb5('0x4d')][_0xefb5('0x52')];}return db['CannedAnswer'][_0xefb5('0x4b')]({'where':_0x310d5d})[_0xefb5('0x2a')](function(_0x5a360a){if(_0x5a360a){throw new db[(_0xefb5('0x53'))][(_0xefb5('0x54'))]('The\x20inserted\x20key\x20already\x20exists.');}return db['CannedAnswer']['create'](_0x11ee6c[_0xefb5('0x4d')]);})[_0xefb5('0x2a')](function(_0x3f3dd6){var _0x109204=_0x11ee6c[_0xefb5('0x55')][_0xefb5('0x27')]({'plain':!![]});if(!_0x109204)throw new Error(_0xefb5('0x56'));if(_0x109204['role']===_0xefb5('0x55')){var _0x1120ca=_0x3f3dd6[_0xefb5('0x27')]({'plain':!![]});return db[_0xefb5('0x57')][_0xefb5('0x4b')]({'where':{'name':_0xefb5('0x28'),'userProfileId':_0x109204['userProfileId']},'raw':!![]})[_0xefb5('0x2a')](function(_0x4f9680){if(_0x4f9680&&_0x4f9680[_0xefb5('0x58')]===0x0){return db[_0xefb5('0x59')][_0xefb5('0x4e')]({'name':_0x1120ca[_0xefb5('0x2e')],'resourceId':_0x1120ca['id'],'type':_0x4f9680['name'],'sectionId':_0x4f9680['id']},{})[_0xefb5('0x2a')](function(){return _0x3f3dd6;});}else{return _0x3f3dd6;}})[_0xefb5('0x4c')](function(_0x59aa1d){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x59aa1d);throw _0x59aa1d;});}return _0x3f3dd6;})[_0xefb5('0x2a')](respondWithResult(_0x17de6b,0xc9))[_0xefb5('0x4c')](handleError(_0x17de6b,null));};