acc6e577afb2c8425d696de645782efc85899ffe
[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 _0xfbd5=['undefined','count','limit','set','Content-Range','apply','reject','save','update','destroy','then','get','CannedAnswers','UserProfileResource','sendStatus','error','stack','name','send','index','CannedAnswer','rawAttributes','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','pick','filter','where','merge','options','include','findAll','rows','catch','show','params','includeAll','body','find','create','key','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','end','json','offset'];(function(_0x3940f2,_0x1acf9d){var _0x682336=function(_0xad08eb){while(--_0xad08eb){_0x3940f2['push'](_0x3940f2['shift']());}};_0x682336(++_0x1acf9d);}(_0xfbd5,0x154));var _0x5fbd=function(_0x451ba5,_0x42bd04){_0x451ba5=_0x451ba5-0x0;var _0x46fc04=_0xfbd5[_0x451ba5];return _0x46fc04;};'use strict';var emlformat=require(_0x5fbd('0x0'));var rimraf=require(_0x5fbd('0x1'));var zipdir=require(_0x5fbd('0x2'));var jsonpatch=require(_0x5fbd('0x3'));var rp=require('request-promise');var moment=require(_0x5fbd('0x4'));var BPromise=require(_0x5fbd('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x5fbd('0x6'));var sox=require(_0x5fbd('0x7'));var csv=require(_0x5fbd('0x8'));var ejs=require(_0x5fbd('0x9'));var fs=require('fs');var fs_extra=require(_0x5fbd('0xa'));var _=require(_0x5fbd('0xb'));var squel=require(_0x5fbd('0xc'));var crypto=require('crypto');var jsforce=require(_0x5fbd('0xd'));var deskjs=require(_0x5fbd('0xe'));var toCsv=require(_0x5fbd('0x8'));var querystring=require(_0x5fbd('0xf'));var Papa=require(_0x5fbd('0x10'));var Redis=require(_0x5fbd('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x5fbd('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5fbd('0x13'))(_0x5fbd('0x14'));var utils=require(_0x5fbd('0x15'));var config=require(_0x5fbd('0x16'));var licenseUtil=require(_0x5fbd('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2d6505,_0x1b6c69){_0x1b6c69=_0x1b6c69||0xcc;return function(_0x200ded){if(_0x200ded){return _0x2d6505['sendStatus'](_0x1b6c69);}return _0x2d6505[_0x5fbd('0x18')](_0x1b6c69)[_0x5fbd('0x19')]();};}function respondWithResult(_0x2be67f,_0xe46830){_0xe46830=_0xe46830||0xc8;return function(_0x22195a){if(_0x22195a){return _0x2be67f[_0x5fbd('0x18')](_0xe46830)[_0x5fbd('0x1a')](_0x22195a);}};}function respondWithFilteredResult(_0x2d34a7,_0x989dc5){return function(_0x9e79aa){if(_0x9e79aa){var _0x3a16bb=typeof _0x989dc5[_0x5fbd('0x1b')]===_0x5fbd('0x1c')&&typeof _0x989dc5['limit']===_0x5fbd('0x1c');var _0x2bc46f=_0x9e79aa[_0x5fbd('0x1d')];var _0x3d7f71=_0x3a16bb?0x0:_0x989dc5[_0x5fbd('0x1b')];var _0x44fe5c=_0x3a16bb?_0x9e79aa[_0x5fbd('0x1d')]:_0x989dc5[_0x5fbd('0x1b')]+_0x989dc5[_0x5fbd('0x1e')];var _0x41ee23;if(_0x44fe5c>=_0x2bc46f){_0x44fe5c=_0x2bc46f;_0x41ee23=0xc8;}else{_0x41ee23=0xce;}_0x2d34a7[_0x5fbd('0x18')](_0x41ee23);return _0x2d34a7[_0x5fbd('0x1f')](_0x5fbd('0x20'),_0x3d7f71+'-'+_0x44fe5c+'/'+_0x2bc46f)[_0x5fbd('0x1a')](_0x9e79aa);}return null;};}function patchUpdates(_0x4618d8){return function(_0x26519d){try{jsonpatch[_0x5fbd('0x21')](_0x26519d,_0x4618d8,!![]);}catch(_0x66c585){return BPromise[_0x5fbd('0x22')](_0x66c585);}return _0x26519d[_0x5fbd('0x23')]();};}function saveUpdates(_0x5e259b,_0x895a60){return function(_0x3675db){if(_0x3675db){return _0x3675db[_0x5fbd('0x24')](_0x5e259b)['then'](function(_0x40535a){return _0x40535a;});}return null;};}function removeEntity(_0x16e533,_0x39815d){return function(_0x4d16ee){if(_0x4d16ee){return _0x4d16ee[_0x5fbd('0x25')]()[_0x5fbd('0x26')](function(){var _0x2b4c5b=_0x4d16ee[_0x5fbd('0x27')]({'plain':!![]});var _0x179eaa=_0x5fbd('0x28');return db[_0x5fbd('0x29')]['destroy']({'where':{'type':_0x179eaa,'resourceId':_0x2b4c5b['id']}})[_0x5fbd('0x26')](function(){return _0x4d16ee;});})['then'](function(){_0x16e533[_0x5fbd('0x18')](0xcc)[_0x5fbd('0x19')]();});}};}function handleEntityNotFound(_0x188d29,_0x1a59f7){return function(_0x38a7a0){if(!_0x38a7a0){_0x188d29[_0x5fbd('0x2a')](0x194);}return _0x38a7a0;};}function handleError(_0x4bdb0d,_0x2ab608){_0x2ab608=_0x2ab608||0x1f4;return function(_0x2aff60){logger[_0x5fbd('0x2b')](_0x2aff60[_0x5fbd('0x2c')]);if(_0x2aff60[_0x5fbd('0x2d')]){delete _0x2aff60[_0x5fbd('0x2d')];}_0x4bdb0d[_0x5fbd('0x18')](_0x2ab608)[_0x5fbd('0x2e')](_0x2aff60);};}exports[_0x5fbd('0x2f')]=function(_0x53cc40,_0x29fe36){var _0x45befd={},_0x1511e9={},_0x16f0db={'count':0x0,'rows':[]};var _0x3b44e4=_['map'](db[_0x5fbd('0x30')][_0x5fbd('0x31')],function(_0x4bd214){return{'name':_0x4bd214['fieldName'],'type':_0x4bd214[_0x5fbd('0x32')]['key']};});_0x1511e9[_0x5fbd('0x33')]=_['map'](_0x3b44e4,'name');_0x1511e9[_0x5fbd('0x34')]=_[_0x5fbd('0x35')](_0x53cc40['query']);_0x1511e9[_0x5fbd('0x36')]=_['intersection'](_0x1511e9[_0x5fbd('0x33')],_0x1511e9[_0x5fbd('0x34')]);_0x45befd['attributes']=_[_0x5fbd('0x37')](_0x1511e9[_0x5fbd('0x33')],qs[_0x5fbd('0x38')](_0x53cc40['query'][_0x5fbd('0x38')]));_0x45befd[_0x5fbd('0x39')]=_0x45befd[_0x5fbd('0x39')][_0x5fbd('0x3a')]?_0x45befd[_0x5fbd('0x39')]:_0x1511e9[_0x5fbd('0x33')];if(!_0x53cc40[_0x5fbd('0x34')][_0x5fbd('0x3b')](_0x5fbd('0x3c'))){_0x45befd[_0x5fbd('0x1e')]=qs[_0x5fbd('0x1e')](_0x53cc40[_0x5fbd('0x34')][_0x5fbd('0x1e')]);_0x45befd['offset']=qs[_0x5fbd('0x1b')](_0x53cc40[_0x5fbd('0x34')]['offset']);}_0x45befd['order']=qs[_0x5fbd('0x3d')](_0x53cc40['query'][_0x5fbd('0x3d')]);_0x45befd['where']=qs[_0x5fbd('0x36')](_[_0x5fbd('0x3e')](_0x53cc40['query'],_0x1511e9[_0x5fbd('0x36')]),_0x3b44e4);if(_0x53cc40[_0x5fbd('0x34')][_0x5fbd('0x3f')]){_0x45befd[_0x5fbd('0x40')]=_[_0x5fbd('0x41')](_0x45befd[_0x5fbd('0x40')],{'$or':[{'key':{'$like':'%'+_0x53cc40[_0x5fbd('0x34')][_0x5fbd('0x3f')]+'%'}},{'value':{'$like':'%'+_0x53cc40['query']['filter']+'%'}}]});}_0x45befd=_[_0x5fbd('0x41')]({},_0x45befd,_0x53cc40[_0x5fbd('0x42')]);var _0x32d4cc={'where':_0x45befd[_0x5fbd('0x40')]};return db[_0x5fbd('0x30')]['count'](_0x32d4cc)[_0x5fbd('0x26')](function(_0x4ad86c){_0x16f0db['count']=_0x4ad86c;if(_0x53cc40[_0x5fbd('0x34')]['includeAll']){_0x45befd[_0x5fbd('0x43')]=[{'all':!![]}];}return db[_0x5fbd('0x30')][_0x5fbd('0x44')](_0x45befd);})[_0x5fbd('0x26')](function(_0x15c18f){_0x16f0db[_0x5fbd('0x45')]=_0x15c18f;return _0x16f0db;})[_0x5fbd('0x26')](respondWithFilteredResult(_0x29fe36,_0x45befd))[_0x5fbd('0x46')](handleError(_0x29fe36,null));};exports[_0x5fbd('0x47')]=function(_0x1486c7,_0x329758){var _0x35c089={'raw':!![],'where':{'id':_0x1486c7[_0x5fbd('0x48')]['id']}},_0x521ac1={};_0x521ac1[_0x5fbd('0x33')]=_[_0x5fbd('0x35')](db[_0x5fbd('0x30')][_0x5fbd('0x31')]);_0x521ac1[_0x5fbd('0x34')]=_[_0x5fbd('0x35')](_0x1486c7[_0x5fbd('0x34')]);_0x521ac1[_0x5fbd('0x36')]=_['intersection'](_0x521ac1['model'],_0x521ac1[_0x5fbd('0x34')]);_0x35c089['attributes']=_[_0x5fbd('0x37')](_0x521ac1[_0x5fbd('0x33')],qs['fields'](_0x1486c7['query'][_0x5fbd('0x38')]));_0x35c089[_0x5fbd('0x39')]=_0x35c089[_0x5fbd('0x39')][_0x5fbd('0x3a')]?_0x35c089[_0x5fbd('0x39')]:_0x521ac1[_0x5fbd('0x33')];if(_0x1486c7[_0x5fbd('0x34')][_0x5fbd('0x49')]){_0x35c089[_0x5fbd('0x43')]=[{'all':!![]}];}_0x35c089=_['merge']({},_0x35c089,_0x1486c7[_0x5fbd('0x42')]);return db['CannedAnswer']['find'](_0x35c089)[_0x5fbd('0x26')](handleEntityNotFound(_0x329758,null))[_0x5fbd('0x26')](respondWithResult(_0x329758,null))['catch'](handleError(_0x329758,null));};exports[_0x5fbd('0x24')]=function(_0x656e1d,_0x4978ad){if(_0x656e1d['body']['id']){delete _0x656e1d[_0x5fbd('0x4a')]['id'];}return db[_0x5fbd('0x30')][_0x5fbd('0x4b')]({'where':{'id':_0x656e1d[_0x5fbd('0x48')]['id']}})[_0x5fbd('0x26')](handleEntityNotFound(_0x4978ad,null))[_0x5fbd('0x26')](saveUpdates(_0x656e1d[_0x5fbd('0x4a')],null))[_0x5fbd('0x26')](respondWithResult(_0x4978ad,null))[_0x5fbd('0x46')](handleError(_0x4978ad,null));};exports[_0x5fbd('0x25')]=function(_0x128a5f,_0x319f94){return db['CannedAnswer']['find']({'where':{'id':_0x128a5f[_0x5fbd('0x48')]['id']}})[_0x5fbd('0x26')](handleEntityNotFound(_0x319f94,null))[_0x5fbd('0x26')](removeEntity(_0x319f94,null))['catch'](handleError(_0x319f94,null));};exports[_0x5fbd('0x4c')]=function(_0x3c3e99,_0x3076e5){var _0x4f1ad9={'key':_0x3c3e99['body'][_0x5fbd('0x4d')]};if(_0x3c3e99[_0x5fbd('0x4a')][_0x5fbd('0x4e')]){_0x4f1ad9[_0x5fbd('0x4e')]=_0x3c3e99[_0x5fbd('0x4a')][_0x5fbd('0x4e')];}else if(_0x3c3e99[_0x5fbd('0x4a')][_0x5fbd('0x4f')]){_0x4f1ad9['SmsAccountId']=_0x3c3e99[_0x5fbd('0x4a')][_0x5fbd('0x4f')];}else if(_0x3c3e99[_0x5fbd('0x4a')][_0x5fbd('0x50')]){_0x4f1ad9[_0x5fbd('0x50')]=_0x3c3e99[_0x5fbd('0x4a')]['OpenchannelAccountId'];}else if(_0x3c3e99['body'][_0x5fbd('0x51')]){_0x4f1ad9[_0x5fbd('0x51')]=_0x3c3e99['body'][_0x5fbd('0x51')];}return db['CannedAnswer'][_0x5fbd('0x4b')]({'where':_0x4f1ad9})[_0x5fbd('0x26')](function(_0x295f6c){if(_0x295f6c){throw new db[(_0x5fbd('0x52'))][(_0x5fbd('0x53'))](_0x5fbd('0x54'));}return db[_0x5fbd('0x30')][_0x5fbd('0x4c')](_0x3c3e99[_0x5fbd('0x4a')]);})[_0x5fbd('0x26')](function(_0x4f0a84){var _0x2aed55=_0x3c3e99[_0x5fbd('0x55')][_0x5fbd('0x27')]({'plain':!![]});if(!_0x2aed55)throw new Error(_0x5fbd('0x56'));if(_0x2aed55[_0x5fbd('0x57')]==='user'){var _0x42d97b=_0x4f0a84['get']({'plain':!![]});return db[_0x5fbd('0x58')][_0x5fbd('0x4b')]({'where':{'name':_0x5fbd('0x28'),'userProfileId':_0x2aed55[_0x5fbd('0x59')]},'raw':!![]})[_0x5fbd('0x26')](function(_0x214647){if(_0x214647&&_0x214647[_0x5fbd('0x5a')]===0x0){return db[_0x5fbd('0x29')][_0x5fbd('0x4c')]({'name':_0x42d97b[_0x5fbd('0x2d')],'resourceId':_0x42d97b['id'],'type':_0x214647[_0x5fbd('0x2d')],'sectionId':_0x214647['id']},{})[_0x5fbd('0x26')](function(){return _0x4f0a84;});}else{return _0x4f0a84;}})[_0x5fbd('0x46')](function(_0x59fa52){logger[_0x5fbd('0x2b')](_0x5fbd('0x5b'),_0x59fa52);throw _0x59fa52;});}return _0x4f0a84;})['then'](respondWithResult(_0x3076e5,0xc9))[_0x5fbd('0x46')](handleError(_0x3076e5,null));};