7670e0314bb6c19abeec9708378844bb267acc73
[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 _0x73ba=['zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','fs-extra','lodash','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','end','json','offset','undefined','count','set','reject','update','destroy','then','get','UserProfileResource','error','name','send','index','map','CannedAnswer','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes','fields','length','model','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','options','include','findAll','catch','show','params','includeAll','merge','find','body','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation'];(function(_0x503564,_0x55867e){var _0x4be9fd=function(_0x41c543){while(--_0x41c543){_0x503564['push'](_0x503564['shift']());}};_0x4be9fd(++_0x55867e);}(_0x73ba,0xac));var _0xa73b=function(_0x3d0a7e,_0x478d28){_0x3d0a7e=_0x3d0a7e-0x0;var _0x499d28=_0x73ba[_0x3d0a7e];return _0x499d28;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xa73b('0x0'));var jsonpatch=require(_0xa73b('0x1'));var rp=require(_0xa73b('0x2'));var moment=require(_0xa73b('0x3'));var BPromise=require(_0xa73b('0x4'));var Mustache=require('mustache');var util=require(_0xa73b('0x5'));var path=require(_0xa73b('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa73b('0x7'));var _=require(_0xa73b('0x8'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xa73b('0x9'));var deskjs=require(_0xa73b('0xa'));var toCsv=require(_0xa73b('0xb'));var querystring=require(_0xa73b('0xc'));var Papa=require(_0xa73b('0xd'));var Redis=require('ioredis');var authService=require(_0xa73b('0xe'));var qs=require(_0xa73b('0xf'));var as=require(_0xa73b('0x10'));var hardwareService=require(_0xa73b('0x11'));var logger=require(_0xa73b('0x12'))(_0xa73b('0x13'));var utils=require(_0xa73b('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xa73b('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x47f2b8,_0x3503bc){_0x3503bc=_0x3503bc||0xcc;return function(_0x5d002f){if(_0x5d002f){return _0x47f2b8[_0xa73b('0x16')](_0x3503bc);}return _0x47f2b8[_0xa73b('0x17')](_0x3503bc)[_0xa73b('0x18')]();};}function respondWithResult(_0x4bf3a8,_0x3a5434){_0x3a5434=_0x3a5434||0xc8;return function(_0x4bfb13){if(_0x4bfb13){return _0x4bf3a8[_0xa73b('0x17')](_0x3a5434)[_0xa73b('0x19')](_0x4bfb13);}};}function respondWithFilteredResult(_0x49b48f,_0x3cb522){return function(_0x1ea016){if(_0x1ea016){var _0x54f9ef=typeof _0x3cb522[_0xa73b('0x1a')]===_0xa73b('0x1b')&&typeof _0x3cb522['limit']===_0xa73b('0x1b');var _0x93cb1f=_0x1ea016[_0xa73b('0x1c')];var _0x3743ce=_0x54f9ef?0x0:_0x3cb522['offset'];var _0x42d28a=_0x54f9ef?_0x1ea016[_0xa73b('0x1c')]:_0x3cb522[_0xa73b('0x1a')]+_0x3cb522['limit'];var _0xfe6d57;if(_0x42d28a>=_0x93cb1f){_0x42d28a=_0x93cb1f;_0xfe6d57=0xc8;}else{_0xfe6d57=0xce;}_0x49b48f[_0xa73b('0x17')](_0xfe6d57);return _0x49b48f[_0xa73b('0x1d')]('Content-Range',_0x3743ce+'-'+_0x42d28a+'/'+_0x93cb1f)[_0xa73b('0x19')](_0x1ea016);}return null;};}function patchUpdates(_0x15fbab){return function(_0x33615f){try{jsonpatch['apply'](_0x33615f,_0x15fbab,!![]);}catch(_0x5639e5){return BPromise[_0xa73b('0x1e')](_0x5639e5);}return _0x33615f['save']();};}function saveUpdates(_0x17d186,_0x35f8ff){return function(_0x5ecb12){if(_0x5ecb12){return _0x5ecb12[_0xa73b('0x1f')](_0x17d186)['then'](function(_0xd8503b){return _0xd8503b;});}return null;};}function removeEntity(_0x3088b8,_0x47b28b){return function(_0x55bcde){if(_0x55bcde){return _0x55bcde[_0xa73b('0x20')]()[_0xa73b('0x21')](function(){var _0x1abcc6=_0x55bcde[_0xa73b('0x22')]({'plain':!![]});var _0x28d8be='CannedAnswers';return db[_0xa73b('0x23')][_0xa73b('0x20')]({'where':{'type':_0x28d8be,'resourceId':_0x1abcc6['id']}})[_0xa73b('0x21')](function(){return _0x55bcde;});})[_0xa73b('0x21')](function(){_0x3088b8['status'](0xcc)[_0xa73b('0x18')]();});}};}function handleEntityNotFound(_0x2ce42b,_0x2c305f){return function(_0x3c5879){if(!_0x3c5879){_0x2ce42b[_0xa73b('0x16')](0x194);}return _0x3c5879;};}function handleError(_0xc689f9,_0x319ab1){_0x319ab1=_0x319ab1||0x1f4;return function(_0x34aed7){logger[_0xa73b('0x24')](_0x34aed7['stack']);if(_0x34aed7[_0xa73b('0x25')]){delete _0x34aed7['name'];}_0xc689f9['status'](_0x319ab1)[_0xa73b('0x26')](_0x34aed7);};}exports[_0xa73b('0x27')]=function(_0xf34f9d,_0x1c39b6){var _0x113842={},_0x145437={},_0x36f3ef={'count':0x0,'rows':[]};var _0x94a6bf=_[_0xa73b('0x28')](db[_0xa73b('0x29')][_0xa73b('0x2a')],function(_0x5a6947){return{'name':_0x5a6947[_0xa73b('0x2b')],'type':_0x5a6947[_0xa73b('0x2c')][_0xa73b('0x2d')]};});_0x145437['model']=_['map'](_0x94a6bf,_0xa73b('0x25'));_0x145437[_0xa73b('0x2e')]=_[_0xa73b('0x2f')](_0xf34f9d[_0xa73b('0x2e')]);_0x145437[_0xa73b('0x30')]=_[_0xa73b('0x31')](_0x145437['model'],_0x145437[_0xa73b('0x2e')]);_0x113842[_0xa73b('0x32')]=_[_0xa73b('0x31')](_0x145437['model'],qs[_0xa73b('0x33')](_0xf34f9d[_0xa73b('0x2e')]['fields']));_0x113842[_0xa73b('0x32')]=_0x113842[_0xa73b('0x32')][_0xa73b('0x34')]?_0x113842['attributes']:_0x145437[_0xa73b('0x35')];if(!_0xf34f9d['query'][_0xa73b('0x36')](_0xa73b('0x37'))){_0x113842[_0xa73b('0x38')]=qs[_0xa73b('0x38')](_0xf34f9d[_0xa73b('0x2e')][_0xa73b('0x38')]);_0x113842[_0xa73b('0x1a')]=qs['offset'](_0xf34f9d[_0xa73b('0x2e')]['offset']);}_0x113842[_0xa73b('0x39')]=qs[_0xa73b('0x3a')](_0xf34f9d['query'][_0xa73b('0x3a')]);_0x113842[_0xa73b('0x3b')]=qs[_0xa73b('0x30')](_[_0xa73b('0x3c')](_0xf34f9d[_0xa73b('0x2e')],_0x145437[_0xa73b('0x30')]),_0x94a6bf);if(_0xf34f9d[_0xa73b('0x2e')][_0xa73b('0x3d')]){_0x113842[_0xa73b('0x3b')]=_['merge'](_0x113842[_0xa73b('0x3b')],{'$or':[{'key':{'$like':'%'+_0xf34f9d[_0xa73b('0x2e')][_0xa73b('0x3d')]+'%'}},{'value':{'$like':'%'+_0xf34f9d['query'][_0xa73b('0x3d')]+'%'}}]});}_0x113842=_['merge']({},_0x113842,_0xf34f9d[_0xa73b('0x3e')]);var _0x5ce4fe={'where':_0x113842[_0xa73b('0x3b')]};return db[_0xa73b('0x29')][_0xa73b('0x1c')](_0x5ce4fe)[_0xa73b('0x21')](function(_0x1c2177){_0x36f3ef['count']=_0x1c2177;if(_0xf34f9d[_0xa73b('0x2e')]['includeAll']){_0x113842[_0xa73b('0x3f')]=[{'all':!![]}];}return db[_0xa73b('0x29')][_0xa73b('0x40')](_0x113842);})[_0xa73b('0x21')](function(_0xff9ccb){_0x36f3ef['rows']=_0xff9ccb;return _0x36f3ef;})[_0xa73b('0x21')](respondWithFilteredResult(_0x1c39b6,_0x113842))[_0xa73b('0x41')](handleError(_0x1c39b6,null));};exports[_0xa73b('0x42')]=function(_0x54ee4e,_0x11e709){var _0xbf254c={'raw':!![],'where':{'id':_0x54ee4e[_0xa73b('0x43')]['id']}},_0x590039={};_0x590039[_0xa73b('0x35')]=_[_0xa73b('0x2f')](db['CannedAnswer']['rawAttributes']);_0x590039[_0xa73b('0x2e')]=_[_0xa73b('0x2f')](_0x54ee4e['query']);_0x590039[_0xa73b('0x30')]=_[_0xa73b('0x31')](_0x590039[_0xa73b('0x35')],_0x590039[_0xa73b('0x2e')]);_0xbf254c[_0xa73b('0x32')]=_['intersection'](_0x590039['model'],qs['fields'](_0x54ee4e[_0xa73b('0x2e')][_0xa73b('0x33')]));_0xbf254c[_0xa73b('0x32')]=_0xbf254c[_0xa73b('0x32')]['length']?_0xbf254c['attributes']:_0x590039[_0xa73b('0x35')];if(_0x54ee4e['query'][_0xa73b('0x44')]){_0xbf254c['include']=[{'all':!![]}];}_0xbf254c=_[_0xa73b('0x45')]({},_0xbf254c,_0x54ee4e[_0xa73b('0x3e')]);return db['CannedAnswer'][_0xa73b('0x46')](_0xbf254c)['then'](handleEntityNotFound(_0x11e709,null))[_0xa73b('0x21')](respondWithResult(_0x11e709,null))[_0xa73b('0x41')](handleError(_0x11e709,null));};exports[_0xa73b('0x1f')]=function(_0x408501,_0x50c634){if(_0x408501[_0xa73b('0x47')]['id']){delete _0x408501[_0xa73b('0x47')]['id'];}return db[_0xa73b('0x29')]['find']({'where':{'id':_0x408501['params']['id']}})[_0xa73b('0x21')](handleEntityNotFound(_0x50c634,null))[_0xa73b('0x21')](saveUpdates(_0x408501['body'],null))[_0xa73b('0x21')](respondWithResult(_0x50c634,null))['catch'](handleError(_0x50c634,null));};exports[_0xa73b('0x20')]=function(_0xdc60c7,_0x3431cd){return db['CannedAnswer'][_0xa73b('0x46')]({'where':{'id':_0xdc60c7[_0xa73b('0x43')]['id']}})[_0xa73b('0x21')](handleEntityNotFound(_0x3431cd,null))['then'](removeEntity(_0x3431cd,null))[_0xa73b('0x41')](handleError(_0x3431cd,null));};exports[_0xa73b('0x48')]=function(_0x57afb6,_0x5402d5){var _0x1ad3f8={'key':_0x57afb6[_0xa73b('0x47')]['key']};if(_0x57afb6[_0xa73b('0x47')][_0xa73b('0x49')]){_0x1ad3f8[_0xa73b('0x49')]=_0x57afb6['body'][_0xa73b('0x49')];}else if(_0x57afb6['body']['SmsAccountId']){_0x1ad3f8[_0xa73b('0x4a')]=_0x57afb6[_0xa73b('0x47')][_0xa73b('0x4a')];}else if(_0x57afb6[_0xa73b('0x47')][_0xa73b('0x4b')]){_0x1ad3f8[_0xa73b('0x4b')]=_0x57afb6[_0xa73b('0x47')][_0xa73b('0x4b')];}else if(_0x57afb6[_0xa73b('0x47')][_0xa73b('0x4c')]){_0x1ad3f8['ChatWebsiteId']=_0x57afb6[_0xa73b('0x47')][_0xa73b('0x4c')];}return db['CannedAnswer']['find']({'where':_0x1ad3f8})[_0xa73b('0x21')](function(_0x5afc79){if(_0x5afc79){throw new db[(_0xa73b('0x4d'))][(_0xa73b('0x4e'))](_0xa73b('0x4f'));}return db[_0xa73b('0x29')][_0xa73b('0x48')](_0x57afb6[_0xa73b('0x47')]);})[_0xa73b('0x21')](function(_0x86f7e1){var _0x4db5f2=_0x57afb6[_0xa73b('0x50')][_0xa73b('0x22')]({'plain':!![]});if(!_0x4db5f2)throw new Error(_0xa73b('0x51'));if(_0x4db5f2[_0xa73b('0x52')]===_0xa73b('0x50')){var _0xd7e2c3=_0x86f7e1[_0xa73b('0x22')]({'plain':!![]});return db[_0xa73b('0x53')][_0xa73b('0x46')]({'where':{'name':'CannedAnswers','userProfileId':_0x4db5f2[_0xa73b('0x54')]},'raw':!![]})[_0xa73b('0x21')](function(_0x8a26ab){if(_0x8a26ab&&_0x8a26ab[_0xa73b('0x55')]===0x0){return db[_0xa73b('0x23')][_0xa73b('0x48')]({'name':_0xd7e2c3[_0xa73b('0x25')],'resourceId':_0xd7e2c3['id'],'type':_0x8a26ab[_0xa73b('0x25')],'sectionId':_0x8a26ab['id']},{})[_0xa73b('0x21')](function(){return _0x86f7e1;});}else{return _0x86f7e1;}})[_0xa73b('0x41')](function(_0x24bb7f){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x24bb7f);throw _0x24bb7f;});}return _0x86f7e1;})[_0xa73b('0x21')](respondWithResult(_0x5402d5,0xc9))[_0xa73b('0x41')](handleError(_0x5402d5,null));};