5fa6b89578631714d7855fbe41efbe9398f43835
[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 _0x89f9=['ChatWebsiteId','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','CannedAnswers','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','get','UserProfileResource','sendStatus','error','stack','name','send','index','rawAttributes','fieldName','key','map','query','keys','filters','attributes','intersection','model','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','CannedAnswer','includeAll','include','findAll','catch','show','params','body','find','destroy','create','MailAccountId','SmsAccountId','OpenchannelAccountId'];(function(_0x31fdc1,_0xfdd4e0){var _0x109528=function(_0x2f31b2){while(--_0x2f31b2){_0x31fdc1['push'](_0x31fdc1['shift']());}};_0x109528(++_0xfdd4e0);}(_0x89f9,0x68));var _0x989f=function(_0x1efdc0,_0x5a2099){_0x1efdc0=_0x1efdc0-0x0;var _0x3350fb=_0x89f9[_0x1efdc0];return _0x3350fb;};'use strict';var emlformat=require(_0x989f('0x0'));var rimraf=require(_0x989f('0x1'));var zipdir=require(_0x989f('0x2'));var jsonpatch=require(_0x989f('0x3'));var rp=require(_0x989f('0x4'));var moment=require(_0x989f('0x5'));var BPromise=require(_0x989f('0x6'));var Mustache=require(_0x989f('0x7'));var util=require(_0x989f('0x8'));var path=require(_0x989f('0x9'));var sox=require(_0x989f('0xa'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x989f('0xb'));var _=require(_0x989f('0xc'));var squel=require(_0x989f('0xd'));var crypto=require(_0x989f('0xe'));var jsforce=require(_0x989f('0xf'));var deskjs=require(_0x989f('0x10'));var toCsv=require('to-csv');var querystring=require(_0x989f('0x11'));var Papa=require(_0x989f('0x12'));var Redis=require(_0x989f('0x13'));var authService=require(_0x989f('0x14'));var qs=require(_0x989f('0x15'));var as=require(_0x989f('0x16'));var hardwareService=require(_0x989f('0x17'));var logger=require(_0x989f('0x18'))(_0x989f('0x19'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x989f('0x1a'));var db=require(_0x989f('0x1b'))['db'];function respondWithStatusCode(_0x4c036c,_0x445d36){_0x445d36=_0x445d36||0xcc;return function(_0xc44ae9){if(_0xc44ae9){return _0x4c036c['sendStatus'](_0x445d36);}return _0x4c036c[_0x989f('0x1c')](_0x445d36)[_0x989f('0x1d')]();};}function respondWithResult(_0x181bc0,_0x2e8fb7){_0x2e8fb7=_0x2e8fb7||0xc8;return function(_0x238e74){if(_0x238e74){return _0x181bc0[_0x989f('0x1c')](_0x2e8fb7)[_0x989f('0x1e')](_0x238e74);}};}function respondWithFilteredResult(_0x590595,_0x140474){return function(_0x34ba67){if(_0x34ba67){var _0x6413df=typeof _0x140474[_0x989f('0x1f')]===_0x989f('0x20')&&typeof _0x140474[_0x989f('0x21')]===_0x989f('0x20');var _0x572be1=_0x34ba67[_0x989f('0x22')];var _0x1fc70e=_0x6413df?0x0:_0x140474[_0x989f('0x1f')];var _0xe61197=_0x6413df?_0x34ba67[_0x989f('0x22')]:_0x140474[_0x989f('0x1f')]+_0x140474['limit'];var _0x407dc1;if(_0xe61197>=_0x572be1){_0xe61197=_0x572be1;_0x407dc1=0xc8;}else{_0x407dc1=0xce;}_0x590595[_0x989f('0x1c')](_0x407dc1);return _0x590595['set'](_0x989f('0x23'),_0x1fc70e+'-'+_0xe61197+'/'+_0x572be1)[_0x989f('0x1e')](_0x34ba67);}return null;};}function patchUpdates(_0x3e8afa){return function(_0x3216b4){try{jsonpatch[_0x989f('0x24')](_0x3216b4,_0x3e8afa,!![]);}catch(_0x3d1df6){return BPromise[_0x989f('0x25')](_0x3d1df6);}return _0x3216b4[_0x989f('0x26')]();};}function saveUpdates(_0x5ac893,_0x2cc5eb){return function(_0x72896b){if(_0x72896b){return _0x72896b[_0x989f('0x27')](_0x5ac893)[_0x989f('0x28')](function(_0x2f0c2e){return _0x2f0c2e;});}return null;};}function removeEntity(_0x521c95,_0x40d0a6){return function(_0x3e5e39){if(_0x3e5e39){return _0x3e5e39['destroy']()[_0x989f('0x28')](function(){var _0x106511=_0x3e5e39[_0x989f('0x29')]({'plain':!![]});var _0x1212f4='CannedAnswers';return db[_0x989f('0x2a')]['destroy']({'where':{'type':_0x1212f4,'resourceId':_0x106511['id']}})[_0x989f('0x28')](function(){return _0x3e5e39;});})[_0x989f('0x28')](function(){_0x521c95[_0x989f('0x1c')](0xcc)[_0x989f('0x1d')]();});}};}function handleEntityNotFound(_0x476bb5,_0x3e352b){return function(_0x4bf7f9){if(!_0x4bf7f9){_0x476bb5[_0x989f('0x2b')](0x194);}return _0x4bf7f9;};}function handleError(_0x17ece7,_0x44e91f){_0x44e91f=_0x44e91f||0x1f4;return function(_0x16a807){logger[_0x989f('0x2c')](_0x16a807[_0x989f('0x2d')]);if(_0x16a807[_0x989f('0x2e')]){delete _0x16a807[_0x989f('0x2e')];}_0x17ece7['status'](_0x44e91f)[_0x989f('0x2f')](_0x16a807);};}exports[_0x989f('0x30')]=function(_0x23835d,_0x384bf5){var _0x1588b8={},_0x46b4d2={},_0x25b1ed={'count':0x0,'rows':[]};var _0x49b7ea=_['map'](db['CannedAnswer'][_0x989f('0x31')],function(_0x3dd3ca){return{'name':_0x3dd3ca[_0x989f('0x32')],'type':_0x3dd3ca['type'][_0x989f('0x33')]};});_0x46b4d2['model']=_[_0x989f('0x34')](_0x49b7ea,_0x989f('0x2e'));_0x46b4d2[_0x989f('0x35')]=_[_0x989f('0x36')](_0x23835d[_0x989f('0x35')]);_0x46b4d2[_0x989f('0x37')]=_['intersection'](_0x46b4d2['model'],_0x46b4d2[_0x989f('0x35')]);_0x1588b8[_0x989f('0x38')]=_[_0x989f('0x39')](_0x46b4d2[_0x989f('0x3a')],qs[_0x989f('0x3b')](_0x23835d[_0x989f('0x35')][_0x989f('0x3b')]));_0x1588b8[_0x989f('0x38')]=_0x1588b8[_0x989f('0x38')][_0x989f('0x3c')]?_0x1588b8['attributes']:_0x46b4d2[_0x989f('0x3a')];if(!_0x23835d[_0x989f('0x35')][_0x989f('0x3d')](_0x989f('0x3e'))){_0x1588b8[_0x989f('0x21')]=qs[_0x989f('0x21')](_0x23835d[_0x989f('0x35')][_0x989f('0x21')]);_0x1588b8[_0x989f('0x1f')]=qs['offset'](_0x23835d[_0x989f('0x35')][_0x989f('0x1f')]);}_0x1588b8[_0x989f('0x3f')]=qs['sort'](_0x23835d[_0x989f('0x35')][_0x989f('0x40')]);_0x1588b8[_0x989f('0x41')]=qs[_0x989f('0x37')](_['pick'](_0x23835d[_0x989f('0x35')],_0x46b4d2[_0x989f('0x37')]),_0x49b7ea);if(_0x23835d['query'][_0x989f('0x42')]){_0x1588b8[_0x989f('0x41')]=_[_0x989f('0x43')](_0x1588b8[_0x989f('0x41')],{'$or':[{'key':{'$like':'%'+_0x23835d[_0x989f('0x35')][_0x989f('0x42')]+'%'}},{'value':{'$like':'%'+_0x23835d[_0x989f('0x35')][_0x989f('0x42')]+'%'}}]});}_0x1588b8=_[_0x989f('0x43')]({},_0x1588b8,_0x23835d['options']);var _0xe822d1={'where':_0x1588b8[_0x989f('0x41')]};return db[_0x989f('0x44')][_0x989f('0x22')](_0xe822d1)[_0x989f('0x28')](function(_0x2184b8){_0x25b1ed[_0x989f('0x22')]=_0x2184b8;if(_0x23835d[_0x989f('0x35')][_0x989f('0x45')]){_0x1588b8[_0x989f('0x46')]=[{'all':!![]}];}return db['CannedAnswer'][_0x989f('0x47')](_0x1588b8);})[_0x989f('0x28')](function(_0x335dd2){_0x25b1ed['rows']=_0x335dd2;return _0x25b1ed;})[_0x989f('0x28')](respondWithFilteredResult(_0x384bf5,_0x1588b8))[_0x989f('0x48')](handleError(_0x384bf5,null));};exports[_0x989f('0x49')]=function(_0x19e3f9,_0x22fee1){var _0x13a4a1={'raw':!![],'where':{'id':_0x19e3f9[_0x989f('0x4a')]['id']}},_0x4fdd35={};_0x4fdd35[_0x989f('0x3a')]=_['keys'](db[_0x989f('0x44')]['rawAttributes']);_0x4fdd35[_0x989f('0x35')]=_[_0x989f('0x36')](_0x19e3f9[_0x989f('0x35')]);_0x4fdd35[_0x989f('0x37')]=_['intersection'](_0x4fdd35['model'],_0x4fdd35['query']);_0x13a4a1[_0x989f('0x38')]=_[_0x989f('0x39')](_0x4fdd35[_0x989f('0x3a')],qs[_0x989f('0x3b')](_0x19e3f9[_0x989f('0x35')]['fields']));_0x13a4a1[_0x989f('0x38')]=_0x13a4a1[_0x989f('0x38')][_0x989f('0x3c')]?_0x13a4a1['attributes']:_0x4fdd35[_0x989f('0x3a')];if(_0x19e3f9[_0x989f('0x35')][_0x989f('0x45')]){_0x13a4a1[_0x989f('0x46')]=[{'all':!![]}];}_0x13a4a1=_[_0x989f('0x43')]({},_0x13a4a1,_0x19e3f9['options']);return db[_0x989f('0x44')]['find'](_0x13a4a1)[_0x989f('0x28')](handleEntityNotFound(_0x22fee1,null))['then'](respondWithResult(_0x22fee1,null))['catch'](handleError(_0x22fee1,null));};exports[_0x989f('0x27')]=function(_0x2ed1f5,_0x6b2e18){if(_0x2ed1f5[_0x989f('0x4b')]['id']){delete _0x2ed1f5[_0x989f('0x4b')]['id'];}return db[_0x989f('0x44')][_0x989f('0x4c')]({'where':{'id':_0x2ed1f5[_0x989f('0x4a')]['id']}})[_0x989f('0x28')](handleEntityNotFound(_0x6b2e18,null))[_0x989f('0x28')](saveUpdates(_0x2ed1f5[_0x989f('0x4b')],null))[_0x989f('0x28')](respondWithResult(_0x6b2e18,null))[_0x989f('0x48')](handleError(_0x6b2e18,null));};exports[_0x989f('0x4d')]=function(_0x5f5d40,_0x5d0b8f){return db[_0x989f('0x44')]['find']({'where':{'id':_0x5f5d40[_0x989f('0x4a')]['id']}})[_0x989f('0x28')](handleEntityNotFound(_0x5d0b8f,null))[_0x989f('0x28')](removeEntity(_0x5d0b8f,null))[_0x989f('0x48')](handleError(_0x5d0b8f,null));};exports[_0x989f('0x4e')]=function(_0x33637b,_0x4f108b){var _0x154963={'key':_0x33637b['body']['key']};if(_0x33637b[_0x989f('0x4b')][_0x989f('0x4f')]){_0x154963[_0x989f('0x4f')]=_0x33637b[_0x989f('0x4b')][_0x989f('0x4f')];}else if(_0x33637b[_0x989f('0x4b')][_0x989f('0x50')]){_0x154963[_0x989f('0x50')]=_0x33637b[_0x989f('0x4b')][_0x989f('0x50')];}else if(_0x33637b[_0x989f('0x4b')]['OpenchannelAccountId']){_0x154963[_0x989f('0x51')]=_0x33637b[_0x989f('0x4b')][_0x989f('0x51')];}else if(_0x33637b[_0x989f('0x4b')][_0x989f('0x52')]){_0x154963[_0x989f('0x52')]=_0x33637b['body'][_0x989f('0x52')];}return db['CannedAnswer'][_0x989f('0x4c')]({'where':_0x154963})[_0x989f('0x28')](function(_0x50cb42){if(_0x50cb42){throw new db['Sequelize'][(_0x989f('0x53'))](_0x989f('0x54'));}return db[_0x989f('0x44')][_0x989f('0x4e')](_0x33637b['body']);})['then'](function(_0x5761f2){var _0x357697=_0x33637b[_0x989f('0x55')]['get']({'plain':!![]});if(!_0x357697)throw new Error(_0x989f('0x56'));if(_0x357697[_0x989f('0x57')]==='user'){var _0x4aaea0=_0x5761f2['get']({'plain':!![]});return db[_0x989f('0x58')][_0x989f('0x4c')]({'where':{'name':_0x989f('0x59'),'userProfileId':_0x357697[_0x989f('0x5a')]},'raw':!![]})[_0x989f('0x28')](function(_0x5707f9){if(_0x5707f9&&_0x5707f9[_0x989f('0x5b')]===0x0){return db[_0x989f('0x2a')][_0x989f('0x4e')]({'name':_0x4aaea0[_0x989f('0x2e')],'resourceId':_0x4aaea0['id'],'type':_0x5707f9[_0x989f('0x2e')],'sectionId':_0x5707f9['id']},{})[_0x989f('0x28')](function(){return _0x5761f2;});}else{return _0x5761f2;}})[_0x989f('0x48')](function(_0x511032){logger[_0x989f('0x2c')](_0x989f('0x5c'),_0x511032);throw _0x511032;});}return _0x5761f2;})[_0x989f('0x28')](respondWithResult(_0x4f108b,0xc9))[_0x989f('0x48')](handleError(_0x4f108b,null));};