Built motion from commit b0a9a629.|2.6.33
[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 _0x0183=['CannedAnswers','destroy','error','name','index','map','CannedAnswer','rawAttributes','key','model','query','keys','filters','intersection','attributes','fields','order','sort','where','pick','merge','filter','includeAll','include','findAll','rows','catch','show','params','length','options','find','body','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','zip-dir','moment','bluebird','mustache','util','sox','to-csv','fs-extra','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','limit','undefined','count','offset','set','apply','save','update','then'];(function(_0x38537f,_0x252124){var _0x141e23=function(_0x2809b5){while(--_0x2809b5){_0x38537f['push'](_0x38537f['shift']());}};_0x141e23(++_0x252124);}(_0x0183,0xd7));var _0x3018=function(_0x2029f7,_0x53b3f1){_0x2029f7=_0x2029f7-0x0;var _0x5c6c6f=_0x0183[_0x2029f7];return _0x5c6c6f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3018('0x0'));var zipdir=require(_0x3018('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x3018('0x2'));var BPromise=require(_0x3018('0x3'));var Mustache=require(_0x3018('0x4'));var util=require(_0x3018('0x5'));var path=require('path');var sox=require(_0x3018('0x6'));var csv=require(_0x3018('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3018('0x8'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x3018('0x9'));var jsforce=require(_0x3018('0xa'));var deskjs=require(_0x3018('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x3018('0xc'));var Redis=require(_0x3018('0xd'));var authService=require(_0x3018('0xe'));var qs=require(_0x3018('0xf'));var as=require(_0x3018('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x3018('0x11'));var utils=require('../../config/utils');var config=require(_0x3018('0x12'));var licenseUtil=require(_0x3018('0x13'));var db=require(_0x3018('0x14'))['db'];function respondWithStatusCode(_0x4bdb56,_0xc67e9f){_0xc67e9f=_0xc67e9f||0xcc;return function(_0x2f122d){if(_0x2f122d){return _0x4bdb56[_0x3018('0x15')](_0xc67e9f);}return _0x4bdb56[_0x3018('0x16')](_0xc67e9f)[_0x3018('0x17')]();};}function respondWithResult(_0x342e21,_0x78f558){_0x78f558=_0x78f558||0xc8;return function(_0x4e34be){if(_0x4e34be){return _0x342e21[_0x3018('0x16')](_0x78f558)[_0x3018('0x18')](_0x4e34be);}};}function respondWithFilteredResult(_0x17e626,_0x22b422){return function(_0x59f658){if(_0x59f658){var _0x5643cf=typeof _0x22b422['offset']==='undefined'&&typeof _0x22b422[_0x3018('0x19')]===_0x3018('0x1a');var _0x48bb71=_0x59f658[_0x3018('0x1b')];var _0x399124=_0x5643cf?0x0:_0x22b422['offset'];var _0x2f432c=_0x5643cf?_0x59f658['count']:_0x22b422[_0x3018('0x1c')]+_0x22b422[_0x3018('0x19')];var _0x446127;if(_0x2f432c>=_0x48bb71){_0x2f432c=_0x48bb71;_0x446127=0xc8;}else{_0x446127=0xce;}_0x17e626[_0x3018('0x16')](_0x446127);return _0x17e626[_0x3018('0x1d')]('Content-Range',_0x399124+'-'+_0x2f432c+'/'+_0x48bb71)[_0x3018('0x18')](_0x59f658);}return null;};}function patchUpdates(_0x62cdbd){return function(_0x54a25e){try{jsonpatch[_0x3018('0x1e')](_0x54a25e,_0x62cdbd,!![]);}catch(_0x19cd5a){return BPromise['reject'](_0x19cd5a);}return _0x54a25e[_0x3018('0x1f')]();};}function saveUpdates(_0x2697a4,_0x544217){return function(_0x408e79){if(_0x408e79){return _0x408e79[_0x3018('0x20')](_0x2697a4)[_0x3018('0x21')](function(_0x2fb58d){return _0x2fb58d;});}return null;};}function removeEntity(_0x5415bb,_0x33cf7d){return function(_0x3787d3){if(_0x3787d3){return _0x3787d3['destroy']()[_0x3018('0x21')](function(){var _0x58c3e4=_0x3787d3['get']({'plain':!![]});var _0x2a5517=_0x3018('0x22');return db['UserProfileResource'][_0x3018('0x23')]({'where':{'type':_0x2a5517,'resourceId':_0x58c3e4['id']}})[_0x3018('0x21')](function(){return _0x3787d3;});})['then'](function(){_0x5415bb['status'](0xcc)[_0x3018('0x17')]();});}};}function handleEntityNotFound(_0x4a9a79,_0x4c1385){return function(_0x484209){if(!_0x484209){_0x4a9a79[_0x3018('0x15')](0x194);}return _0x484209;};}function handleError(_0x46d8ef,_0x4aca11){_0x4aca11=_0x4aca11||0x1f4;return function(_0x5a7924){logger[_0x3018('0x24')](_0x5a7924['stack']);if(_0x5a7924[_0x3018('0x25')]){delete _0x5a7924[_0x3018('0x25')];}_0x46d8ef[_0x3018('0x16')](_0x4aca11)['send'](_0x5a7924);};}exports[_0x3018('0x26')]=function(_0x553578,_0x5ea590){var _0x3eb718={},_0x19dad7={},_0x1dff80={'count':0x0,'rows':[]};var _0xaa415=_[_0x3018('0x27')](db[_0x3018('0x28')][_0x3018('0x29')],function(_0x200bdd){return{'name':_0x200bdd['fieldName'],'type':_0x200bdd['type'][_0x3018('0x2a')]};});_0x19dad7[_0x3018('0x2b')]=_[_0x3018('0x27')](_0xaa415,_0x3018('0x25'));_0x19dad7[_0x3018('0x2c')]=_[_0x3018('0x2d')](_0x553578[_0x3018('0x2c')]);_0x19dad7[_0x3018('0x2e')]=_[_0x3018('0x2f')](_0x19dad7[_0x3018('0x2b')],_0x19dad7['query']);_0x3eb718[_0x3018('0x30')]=_[_0x3018('0x2f')](_0x19dad7[_0x3018('0x2b')],qs[_0x3018('0x31')](_0x553578['query'][_0x3018('0x31')]));_0x3eb718[_0x3018('0x30')]=_0x3eb718[_0x3018('0x30')]['length']?_0x3eb718[_0x3018('0x30')]:_0x19dad7[_0x3018('0x2b')];if(!_0x553578['query']['hasOwnProperty']('nolimit')){_0x3eb718[_0x3018('0x19')]=qs[_0x3018('0x19')](_0x553578['query'][_0x3018('0x19')]);_0x3eb718[_0x3018('0x1c')]=qs[_0x3018('0x1c')](_0x553578[_0x3018('0x2c')][_0x3018('0x1c')]);}_0x3eb718[_0x3018('0x32')]=qs[_0x3018('0x33')](_0x553578[_0x3018('0x2c')]['sort']);_0x3eb718[_0x3018('0x34')]=qs[_0x3018('0x2e')](_[_0x3018('0x35')](_0x553578[_0x3018('0x2c')],_0x19dad7[_0x3018('0x2e')]),_0xaa415);if(_0x553578[_0x3018('0x2c')]['filter']){_0x3eb718[_0x3018('0x34')]=_[_0x3018('0x36')](_0x3eb718[_0x3018('0x34')],{'$or':[{'key':{'$like':'%'+_0x553578['query']['filter']+'%'}},{'value':{'$like':'%'+_0x553578['query'][_0x3018('0x37')]+'%'}}]});}_0x3eb718=_['merge']({},_0x3eb718,_0x553578['options']);var _0x1a725d={'where':_0x3eb718[_0x3018('0x34')]};return db[_0x3018('0x28')][_0x3018('0x1b')](_0x1a725d)['then'](function(_0xfce8af){_0x1dff80[_0x3018('0x1b')]=_0xfce8af;if(_0x553578['query'][_0x3018('0x38')]){_0x3eb718[_0x3018('0x39')]=[{'all':!![]}];}return db[_0x3018('0x28')][_0x3018('0x3a')](_0x3eb718);})['then'](function(_0x4e0eaf){_0x1dff80[_0x3018('0x3b')]=_0x4e0eaf;return _0x1dff80;})[_0x3018('0x21')](respondWithFilteredResult(_0x5ea590,_0x3eb718))[_0x3018('0x3c')](handleError(_0x5ea590,null));};exports[_0x3018('0x3d')]=function(_0x24de8d,_0x67ad7b){var _0x14104e={'raw':!![],'where':{'id':_0x24de8d[_0x3018('0x3e')]['id']}},_0x6fe578={};_0x6fe578[_0x3018('0x2b')]=_[_0x3018('0x2d')](db[_0x3018('0x28')][_0x3018('0x29')]);_0x6fe578[_0x3018('0x2c')]=_[_0x3018('0x2d')](_0x24de8d[_0x3018('0x2c')]);_0x6fe578[_0x3018('0x2e')]=_[_0x3018('0x2f')](_0x6fe578[_0x3018('0x2b')],_0x6fe578[_0x3018('0x2c')]);_0x14104e[_0x3018('0x30')]=_[_0x3018('0x2f')](_0x6fe578[_0x3018('0x2b')],qs[_0x3018('0x31')](_0x24de8d[_0x3018('0x2c')][_0x3018('0x31')]));_0x14104e[_0x3018('0x30')]=_0x14104e[_0x3018('0x30')][_0x3018('0x3f')]?_0x14104e[_0x3018('0x30')]:_0x6fe578[_0x3018('0x2b')];if(_0x24de8d['query'][_0x3018('0x38')]){_0x14104e['include']=[{'all':!![]}];}_0x14104e=_[_0x3018('0x36')]({},_0x14104e,_0x24de8d[_0x3018('0x40')]);return db[_0x3018('0x28')][_0x3018('0x41')](_0x14104e)['then'](handleEntityNotFound(_0x67ad7b,null))[_0x3018('0x21')](respondWithResult(_0x67ad7b,null))[_0x3018('0x3c')](handleError(_0x67ad7b,null));};exports[_0x3018('0x20')]=function(_0x3e49ce,_0x82d4cc){if(_0x3e49ce[_0x3018('0x42')]['id']){delete _0x3e49ce['body']['id'];}return db[_0x3018('0x28')][_0x3018('0x41')]({'where':{'id':_0x3e49ce[_0x3018('0x3e')]['id']}})[_0x3018('0x21')](handleEntityNotFound(_0x82d4cc,null))[_0x3018('0x21')](saveUpdates(_0x3e49ce[_0x3018('0x42')],null))['then'](respondWithResult(_0x82d4cc,null))[_0x3018('0x3c')](handleError(_0x82d4cc,null));};exports[_0x3018('0x23')]=function(_0x490c8b,_0x323e25){return db[_0x3018('0x28')]['find']({'where':{'id':_0x490c8b[_0x3018('0x3e')]['id']}})['then'](handleEntityNotFound(_0x323e25,null))['then'](removeEntity(_0x323e25,null))[_0x3018('0x3c')](handleError(_0x323e25,null));};exports[_0x3018('0x43')]=function(_0x373478,_0x3ef05f){var _0x28dfe2={'key':_0x373478['body'][_0x3018('0x2a')]};if(_0x373478['body']['MailAccountId']){_0x28dfe2['MailAccountId']=_0x373478[_0x3018('0x42')][_0x3018('0x44')];}else if(_0x373478['body'][_0x3018('0x45')]){_0x28dfe2[_0x3018('0x45')]=_0x373478[_0x3018('0x42')][_0x3018('0x45')];}else if(_0x373478[_0x3018('0x42')][_0x3018('0x46')]){_0x28dfe2[_0x3018('0x46')]=_0x373478['body']['OpenchannelAccountId'];}else if(_0x373478[_0x3018('0x42')][_0x3018('0x47')]){_0x28dfe2['ChatWebsiteId']=_0x373478['body'][_0x3018('0x47')];}return db['CannedAnswer']['find']({'where':_0x28dfe2})['then'](function(_0x288e1b){if(_0x288e1b){throw new db[(_0x3018('0x48'))][(_0x3018('0x49'))](_0x3018('0x4a'));}return db[_0x3018('0x28')][_0x3018('0x43')](_0x373478[_0x3018('0x42')]);})[_0x3018('0x21')](function(_0x23c6af){var _0x1c7abb=_0x373478['user'][_0x3018('0x4b')]({'plain':!![]});if(!_0x1c7abb)throw new Error(_0x3018('0x4c'));if(_0x1c7abb[_0x3018('0x4d')]===_0x3018('0x4e')){var _0xf78791=_0x23c6af['get']({'plain':!![]});return db[_0x3018('0x4f')][_0x3018('0x41')]({'where':{'name':_0x3018('0x22'),'userProfileId':_0x1c7abb[_0x3018('0x50')]},'raw':!![]})[_0x3018('0x21')](function(_0x560784){if(_0x560784&&_0x560784[_0x3018('0x51')]===0x0){return db['UserProfileResource'][_0x3018('0x43')]({'name':_0xf78791[_0x3018('0x25')],'resourceId':_0xf78791['id'],'type':_0x560784[_0x3018('0x25')],'sectionId':_0x560784['id']},{})[_0x3018('0x21')](function(){return _0x23c6af;});}else{return _0x23c6af;}})[_0x3018('0x3c')](function(_0x9014d4){logger[_0x3018('0x24')](_0x3018('0x52'),_0x9014d4);throw _0x9014d4;});}return _0x23c6af;})[_0x3018('0x21')](respondWithResult(_0x3ef05f,0xc9))[_0x3018('0x3c')](handleError(_0x3ef05f,null));};