f296ae1694f8de21b128a27c4ec62fd49f827f59
[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 _0x3bab=['pick','filter','merge','includeAll','rows','catch','params','options','find','body','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','reject','update','then','destroy','get','CannedAnswers','UserProfileResource','error','stack','name','index','map','CannedAnswer','rawAttributes','fieldName','type','keys','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where'];(function(_0x2f5ac5,_0x1ee939){var _0x37c9a8=function(_0x15031f){while(--_0x15031f){_0x2f5ac5['push'](_0x2f5ac5['shift']());}};_0x37c9a8(++_0x1ee939);}(_0x3bab,0x1c0));var _0xb3ba=function(_0x5ed0b4,_0x273d25){_0x5ed0b4=_0x5ed0b4-0x0;var _0x48944c=_0x3bab[_0x5ed0b4];return _0x48944c;};'use strict';var emlformat=require(_0xb3ba('0x0'));var rimraf=require(_0xb3ba('0x1'));var zipdir=require(_0xb3ba('0x2'));var jsonpatch=require(_0xb3ba('0x3'));var rp=require('request-promise');var moment=require(_0xb3ba('0x4'));var BPromise=require(_0xb3ba('0x5'));var Mustache=require(_0xb3ba('0x6'));var util=require('util');var path=require(_0xb3ba('0x7'));var sox=require('sox');var csv=require(_0xb3ba('0x8'));var ejs=require(_0xb3ba('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb3ba('0xa'));var squel=require(_0xb3ba('0xb'));var crypto=require(_0xb3ba('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xb3ba('0xd'));var toCsv=require(_0xb3ba('0x8'));var querystring=require(_0xb3ba('0xe'));var Papa=require('papaparse');var Redis=require(_0xb3ba('0xf'));var authService=require(_0xb3ba('0x10'));var qs=require(_0xb3ba('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb3ba('0x12'));var logger=require(_0xb3ba('0x13'))(_0xb3ba('0x14'));var utils=require(_0xb3ba('0x15'));var config=require(_0xb3ba('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3de3c5,_0x34bd2e){_0x34bd2e=_0x34bd2e||0xcc;return function(_0x4fd4d6){if(_0x4fd4d6){return _0x3de3c5[_0xb3ba('0x17')](_0x34bd2e);}return _0x3de3c5[_0xb3ba('0x18')](_0x34bd2e)[_0xb3ba('0x19')]();};}function respondWithResult(_0x3eecf7,_0x3c2a0e){_0x3c2a0e=_0x3c2a0e||0xc8;return function(_0x4eca30){if(_0x4eca30){return _0x3eecf7[_0xb3ba('0x18')](_0x3c2a0e)[_0xb3ba('0x1a')](_0x4eca30);}};}function respondWithFilteredResult(_0x4d6067,_0x472837){return function(_0x2f3a90){if(_0x2f3a90){var _0x238281=typeof _0x472837[_0xb3ba('0x1b')]===_0xb3ba('0x1c')&&typeof _0x472837['limit']==='undefined';var _0x3ade35=_0x2f3a90['count'];var _0x5ad98c=_0x238281?0x0:_0x472837[_0xb3ba('0x1b')];var _0x2e85d2=_0x238281?_0x2f3a90[_0xb3ba('0x1d')]:_0x472837[_0xb3ba('0x1b')]+_0x472837[_0xb3ba('0x1e')];var _0x142f26;if(_0x2e85d2>=_0x3ade35){_0x2e85d2=_0x3ade35;_0x142f26=0xc8;}else{_0x142f26=0xce;}_0x4d6067[_0xb3ba('0x18')](_0x142f26);return _0x4d6067[_0xb3ba('0x1f')]('Content-Range',_0x5ad98c+'-'+_0x2e85d2+'/'+_0x3ade35)[_0xb3ba('0x1a')](_0x2f3a90);}return null;};}function patchUpdates(_0xfcee64){return function(_0x410f18){try{jsonpatch[_0xb3ba('0x20')](_0x410f18,_0xfcee64,!![]);}catch(_0x35529c){return BPromise[_0xb3ba('0x21')](_0x35529c);}return _0x410f18['save']();};}function saveUpdates(_0x17d412,_0x2a9c65){return function(_0x4b9538){if(_0x4b9538){return _0x4b9538[_0xb3ba('0x22')](_0x17d412)[_0xb3ba('0x23')](function(_0x3ebe03){return _0x3ebe03;});}return null;};}function removeEntity(_0xc75bef,_0xafcd13){return function(_0x2d03d6){if(_0x2d03d6){return _0x2d03d6[_0xb3ba('0x24')]()[_0xb3ba('0x23')](function(){var _0x34579b=_0x2d03d6[_0xb3ba('0x25')]({'plain':!![]});var _0x4a88f7=_0xb3ba('0x26');return db[_0xb3ba('0x27')][_0xb3ba('0x24')]({'where':{'type':_0x4a88f7,'resourceId':_0x34579b['id']}})[_0xb3ba('0x23')](function(){return _0x2d03d6;});})['then'](function(){_0xc75bef[_0xb3ba('0x18')](0xcc)[_0xb3ba('0x19')]();});}};}function handleEntityNotFound(_0x287ac2,_0x59f96e){return function(_0x36fb83){if(!_0x36fb83){_0x287ac2['sendStatus'](0x194);}return _0x36fb83;};}function handleError(_0xf00acc,_0x48e96e){_0x48e96e=_0x48e96e||0x1f4;return function(_0x1db3bb){logger[_0xb3ba('0x28')](_0x1db3bb[_0xb3ba('0x29')]);if(_0x1db3bb[_0xb3ba('0x2a')]){delete _0x1db3bb[_0xb3ba('0x2a')];}_0xf00acc[_0xb3ba('0x18')](_0x48e96e)['send'](_0x1db3bb);};}exports[_0xb3ba('0x2b')]=function(_0x1ca8ff,_0x1581b0){var _0x4d4e1d={},_0x1a3a09={},_0x325770={'count':0x0,'rows':[]};var _0x389b53=_[_0xb3ba('0x2c')](db[_0xb3ba('0x2d')][_0xb3ba('0x2e')],function(_0x2165ca){return{'name':_0x2165ca[_0xb3ba('0x2f')],'type':_0x2165ca[_0xb3ba('0x30')]['key']};});_0x1a3a09['model']=_[_0xb3ba('0x2c')](_0x389b53,'name');_0x1a3a09['query']=_[_0xb3ba('0x31')](_0x1ca8ff[_0xb3ba('0x32')]);_0x1a3a09[_0xb3ba('0x33')]=_[_0xb3ba('0x34')](_0x1a3a09['model'],_0x1a3a09[_0xb3ba('0x32')]);_0x4d4e1d['attributes']=_[_0xb3ba('0x34')](_0x1a3a09[_0xb3ba('0x35')],qs['fields'](_0x1ca8ff[_0xb3ba('0x32')][_0xb3ba('0x36')]));_0x4d4e1d[_0xb3ba('0x37')]=_0x4d4e1d['attributes'][_0xb3ba('0x38')]?_0x4d4e1d[_0xb3ba('0x37')]:_0x1a3a09['model'];if(!_0x1ca8ff[_0xb3ba('0x32')][_0xb3ba('0x39')](_0xb3ba('0x3a'))){_0x4d4e1d['limit']=qs['limit'](_0x1ca8ff[_0xb3ba('0x32')][_0xb3ba('0x1e')]);_0x4d4e1d[_0xb3ba('0x1b')]=qs[_0xb3ba('0x1b')](_0x1ca8ff[_0xb3ba('0x32')]['offset']);}_0x4d4e1d[_0xb3ba('0x3b')]=qs[_0xb3ba('0x3c')](_0x1ca8ff[_0xb3ba('0x32')][_0xb3ba('0x3c')]);_0x4d4e1d[_0xb3ba('0x3d')]=qs['filters'](_[_0xb3ba('0x3e')](_0x1ca8ff[_0xb3ba('0x32')],_0x1a3a09['filters']),_0x389b53);if(_0x1ca8ff[_0xb3ba('0x32')][_0xb3ba('0x3f')]){_0x4d4e1d[_0xb3ba('0x3d')]=_[_0xb3ba('0x40')](_0x4d4e1d['where'],{'$or':[{'key':{'$like':'%'+_0x1ca8ff[_0xb3ba('0x32')][_0xb3ba('0x3f')]+'%'}},{'value':{'$like':'%'+_0x1ca8ff[_0xb3ba('0x32')]['filter']+'%'}}]});}_0x4d4e1d=_[_0xb3ba('0x40')]({},_0x4d4e1d,_0x1ca8ff['options']);var _0x1363a7={'where':_0x4d4e1d[_0xb3ba('0x3d')]};return db[_0xb3ba('0x2d')]['count'](_0x1363a7)[_0xb3ba('0x23')](function(_0x1d5764){_0x325770['count']=_0x1d5764;if(_0x1ca8ff[_0xb3ba('0x32')][_0xb3ba('0x41')]){_0x4d4e1d['include']=[{'all':!![]}];}return db[_0xb3ba('0x2d')]['findAll'](_0x4d4e1d);})[_0xb3ba('0x23')](function(_0x147577){_0x325770[_0xb3ba('0x42')]=_0x147577;return _0x325770;})[_0xb3ba('0x23')](respondWithFilteredResult(_0x1581b0,_0x4d4e1d))[_0xb3ba('0x43')](handleError(_0x1581b0,null));};exports['show']=function(_0x37fe71,_0x3f957e){var _0x23aaf4={'raw':!![],'where':{'id':_0x37fe71[_0xb3ba('0x44')]['id']}},_0x423d87={};_0x423d87['model']=_['keys'](db[_0xb3ba('0x2d')][_0xb3ba('0x2e')]);_0x423d87[_0xb3ba('0x32')]=_['keys'](_0x37fe71[_0xb3ba('0x32')]);_0x423d87['filters']=_[_0xb3ba('0x34')](_0x423d87[_0xb3ba('0x35')],_0x423d87['query']);_0x23aaf4[_0xb3ba('0x37')]=_[_0xb3ba('0x34')](_0x423d87[_0xb3ba('0x35')],qs[_0xb3ba('0x36')](_0x37fe71[_0xb3ba('0x32')][_0xb3ba('0x36')]));_0x23aaf4[_0xb3ba('0x37')]=_0x23aaf4[_0xb3ba('0x37')][_0xb3ba('0x38')]?_0x23aaf4['attributes']:_0x423d87[_0xb3ba('0x35')];if(_0x37fe71[_0xb3ba('0x32')][_0xb3ba('0x41')]){_0x23aaf4['include']=[{'all':!![]}];}_0x23aaf4=_['merge']({},_0x23aaf4,_0x37fe71[_0xb3ba('0x45')]);return db[_0xb3ba('0x2d')][_0xb3ba('0x46')](_0x23aaf4)[_0xb3ba('0x23')](handleEntityNotFound(_0x3f957e,null))[_0xb3ba('0x23')](respondWithResult(_0x3f957e,null))[_0xb3ba('0x43')](handleError(_0x3f957e,null));};exports[_0xb3ba('0x22')]=function(_0x3793f9,_0x560c2f){if(_0x3793f9[_0xb3ba('0x47')]['id']){delete _0x3793f9[_0xb3ba('0x47')]['id'];}return db[_0xb3ba('0x2d')][_0xb3ba('0x46')]({'where':{'id':_0x3793f9[_0xb3ba('0x44')]['id']}})[_0xb3ba('0x23')](handleEntityNotFound(_0x560c2f,null))['then'](saveUpdates(_0x3793f9[_0xb3ba('0x47')],null))[_0xb3ba('0x23')](respondWithResult(_0x560c2f,null))[_0xb3ba('0x43')](handleError(_0x560c2f,null));};exports[_0xb3ba('0x24')]=function(_0x1a7e81,_0x966ea){return db[_0xb3ba('0x2d')][_0xb3ba('0x46')]({'where':{'id':_0x1a7e81['params']['id']}})['then'](handleEntityNotFound(_0x966ea,null))[_0xb3ba('0x23')](removeEntity(_0x966ea,null))[_0xb3ba('0x43')](handleError(_0x966ea,null));};exports[_0xb3ba('0x48')]=function(_0x561d15,_0x1d2ac9){var _0x467795={'key':_0x561d15[_0xb3ba('0x47')]['key']};if(_0x561d15[_0xb3ba('0x47')][_0xb3ba('0x49')]){_0x467795[_0xb3ba('0x49')]=_0x561d15[_0xb3ba('0x47')][_0xb3ba('0x49')];}else if(_0x561d15['body']['SmsAccountId']){_0x467795[_0xb3ba('0x4a')]=_0x561d15[_0xb3ba('0x47')][_0xb3ba('0x4a')];}else if(_0x561d15[_0xb3ba('0x47')][_0xb3ba('0x4b')]){_0x467795[_0xb3ba('0x4b')]=_0x561d15[_0xb3ba('0x47')][_0xb3ba('0x4b')];}else if(_0x561d15[_0xb3ba('0x47')][_0xb3ba('0x4c')]){_0x467795[_0xb3ba('0x4c')]=_0x561d15[_0xb3ba('0x47')][_0xb3ba('0x4c')];}return db[_0xb3ba('0x2d')]['find']({'where':_0x467795})[_0xb3ba('0x23')](function(_0x500489){if(_0x500489){throw new db['Sequelize'][(_0xb3ba('0x4d'))](_0xb3ba('0x4e'));}return db['CannedAnswer'][_0xb3ba('0x48')](_0x561d15[_0xb3ba('0x47')]);})['then'](function(_0x18ff80){var _0x4b187b=_0x561d15[_0xb3ba('0x4f')][_0xb3ba('0x25')]({'plain':!![]});if(!_0x4b187b)throw new Error(_0xb3ba('0x50'));if(_0x4b187b[_0xb3ba('0x51')]==='user'){var _0x9821c3=_0x18ff80[_0xb3ba('0x25')]({'plain':!![]});return db['UserProfileSection'][_0xb3ba('0x46')]({'where':{'name':_0xb3ba('0x26'),'userProfileId':_0x4b187b[_0xb3ba('0x52')]},'raw':!![]})[_0xb3ba('0x23')](function(_0x3c1dd4){if(_0x3c1dd4&&_0x3c1dd4[_0xb3ba('0x53')]===0x0){return db['UserProfileResource']['create']({'name':_0x9821c3['name'],'resourceId':_0x9821c3['id'],'type':_0x3c1dd4['name'],'sectionId':_0x3c1dd4['id']},{})[_0xb3ba('0x23')](function(){return _0x18ff80;});}else{return _0x18ff80;}})['catch'](function(_0x3ee30a){logger[_0xb3ba('0x28')](_0xb3ba('0x54'),_0x3ee30a);throw _0x3ee30a;});}return _0x18ff80;})[_0xb3ba('0x23')](respondWithResult(_0x1d2ac9,0xc9))[_0xb3ba('0x43')](handleError(_0x1d2ac9,null));};