bd00cac74add0f6a2aca080a515805557aa5b26c
[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 _0x4ed0=['Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','request-promise','bluebird','path','sox','to-csv','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json','count','offset','limit','reject','update','then','destroy','CannedAnswers','UserProfileResource','error','name','send','index','map','rawAttributes','type','key','model','query','filters','intersection','attributes','length','hasOwnProperty','sort','pick','filter','where','VIRTUAL','merge','options','CannedAnswer','includeAll','include','rows','show','params','keys','fields','find','catch','body','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','get'];(function(_0xb66bb9,_0x2c0bf3){var _0x5e6ab9=function(_0x224d13){while(--_0x224d13){_0xb66bb9['push'](_0xb66bb9['shift']());}};_0x5e6ab9(++_0x2c0bf3);}(_0x4ed0,0x140));var _0x04ed=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0x4ed0[_0x432682];return _0x463d05;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x04ed('0x0'));var rimraf=require(_0x04ed('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x04ed('0x2'));var moment=require('moment');var BPromise=require(_0x04ed('0x3'));var Mustache=require('mustache');var util=require('util');var path=require(_0x04ed('0x4'));var sox=require(_0x04ed('0x5'));var csv=require(_0x04ed('0x6'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x04ed('0x7'));var squel=require(_0x04ed('0x8'));var crypto=require(_0x04ed('0x9'));var jsforce=require(_0x04ed('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x04ed('0x6'));var querystring=require(_0x04ed('0xb'));var Papa=require('papaparse');var Redis=require(_0x04ed('0xc'));var authService=require(_0x04ed('0xd'));var qs=require(_0x04ed('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x04ed('0xf'))(_0x04ed('0x10'));var utils=require(_0x04ed('0x11'));var config=require(_0x04ed('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5308b8,_0x113518){_0x113518=_0x113518||0xcc;return function(_0x31a70c){if(_0x31a70c){return _0x5308b8[_0x04ed('0x13')](_0x113518);}return _0x5308b8[_0x04ed('0x14')](_0x113518)[_0x04ed('0x15')]();};}function respondWithResult(_0x95f172,_0x4fb41d){_0x4fb41d=_0x4fb41d||0xc8;return function(_0x9fac85){if(_0x9fac85){return _0x95f172['status'](_0x4fb41d)[_0x04ed('0x16')](_0x9fac85);}};}function respondWithFilteredResult(_0xe1388d,_0x1fc288){return function(_0x4a51dd){if(_0x4a51dd){var _0x3a6ed8=_0x4a51dd[_0x04ed('0x17')],_0x565e4a=_0x1fc288[_0x04ed('0x18')],_0x1be73b=_0x1fc288[_0x04ed('0x18')]+_0x1fc288[_0x04ed('0x19')],_0x581777;if(_0x1be73b>=_0x3a6ed8){_0x1be73b=_0x3a6ed8;_0x581777=0xc8;}else{_0x581777=0xce;}_0xe1388d['status'](_0x581777);return _0xe1388d['set']('Content-Range',_0x565e4a+'-'+_0x1be73b+'/'+_0x3a6ed8)[_0x04ed('0x16')](_0x4a51dd);}return null;};}function patchUpdates(_0x9d41c3){return function(_0xa7eab6){try{jsonpatch['apply'](_0xa7eab6,_0x9d41c3,!![]);}catch(_0x3e9136){return BPromise[_0x04ed('0x1a')](_0x3e9136);}return _0xa7eab6['save']();};}function saveUpdates(_0xb3be44,_0x4e55ef){return function(_0x17e110){if(_0x17e110){return _0x17e110[_0x04ed('0x1b')](_0xb3be44)[_0x04ed('0x1c')](function(_0x4e018d){return _0x4e018d;});}return null;};}function removeEntity(_0x405d4e,_0x5bf69b){return function(_0x2fde76){if(_0x2fde76){return _0x2fde76[_0x04ed('0x1d')]()[_0x04ed('0x1c')](function(){var _0x57cea1=_0x2fde76['get']({'plain':!![]});var _0x378934=_0x04ed('0x1e');return db[_0x04ed('0x1f')]['destroy']({'where':{'type':_0x378934,'resourceId':_0x57cea1['id']}})[_0x04ed('0x1c')](function(){return _0x2fde76;});})[_0x04ed('0x1c')](function(){_0x405d4e['status'](0xcc)[_0x04ed('0x15')]();});}};}function handleEntityNotFound(_0x38879d,_0x499d57){return function(_0x484922){if(!_0x484922){_0x38879d['sendStatus'](0x194);}return _0x484922;};}function handleError(_0x542b2f,_0x1a55f1){_0x1a55f1=_0x1a55f1||0x1f4;return function(_0x22a24d){logger[_0x04ed('0x20')](_0x22a24d['stack']);if(_0x22a24d[_0x04ed('0x21')]){delete _0x22a24d[_0x04ed('0x21')];}_0x542b2f[_0x04ed('0x14')](_0x1a55f1)[_0x04ed('0x22')](_0x22a24d);};}exports[_0x04ed('0x23')]=function(_0x25ad49,_0x46b35f){var _0xd36b32={},_0x54920c={},_0x58fb03={'count':0x0,'rows':[]};var _0x330782=_[_0x04ed('0x24')](db['CannedAnswer'][_0x04ed('0x25')],function(_0x27c502){return{'name':_0x27c502['fieldName'],'type':_0x27c502[_0x04ed('0x26')][_0x04ed('0x27')]};});_0x54920c[_0x04ed('0x28')]=_[_0x04ed('0x24')](_0x330782,_0x04ed('0x21'));_0x54920c[_0x04ed('0x29')]=_['keys'](_0x25ad49[_0x04ed('0x29')]);_0x54920c[_0x04ed('0x2a')]=_[_0x04ed('0x2b')](_0x54920c[_0x04ed('0x28')],_0x54920c[_0x04ed('0x29')]);_0xd36b32[_0x04ed('0x2c')]=_[_0x04ed('0x2b')](_0x54920c[_0x04ed('0x28')],qs['fields'](_0x25ad49[_0x04ed('0x29')]['fields']));_0xd36b32['attributes']=_0xd36b32[_0x04ed('0x2c')][_0x04ed('0x2d')]?_0xd36b32[_0x04ed('0x2c')]:_0x54920c[_0x04ed('0x28')];if(!_0x25ad49[_0x04ed('0x29')][_0x04ed('0x2e')]('nolimit')){_0xd36b32['limit']=qs['limit'](_0x25ad49[_0x04ed('0x29')][_0x04ed('0x19')]);_0xd36b32['offset']=qs['offset'](_0x25ad49[_0x04ed('0x29')][_0x04ed('0x18')]);}_0xd36b32['order']=qs[_0x04ed('0x2f')](_0x25ad49[_0x04ed('0x29')][_0x04ed('0x2f')]);_0xd36b32['where']=qs[_0x04ed('0x2a')](_[_0x04ed('0x30')](_0x25ad49[_0x04ed('0x29')],_0x54920c[_0x04ed('0x2a')]),_0x330782);if(_0x25ad49[_0x04ed('0x29')][_0x04ed('0x31')]){_0xd36b32[_0x04ed('0x32')]=_['merge'](_0xd36b32[_0x04ed('0x32')],{'$or':_[_0x04ed('0x24')](_0x330782,function(_0x522e42){if(_0x522e42[_0x04ed('0x26')]!==_0x04ed('0x33')){var _0x5c71b3={};_0x5c71b3[_0x522e42[_0x04ed('0x21')]]={'$like':'%'+_0x25ad49[_0x04ed('0x29')][_0x04ed('0x31')]+'%'};return _0x5c71b3;}})});}_0xd36b32=_[_0x04ed('0x34')]({},_0xd36b32,_0x25ad49[_0x04ed('0x35')]);var _0x4f5b2a={'where':_0xd36b32[_0x04ed('0x32')]};return db[_0x04ed('0x36')]['count'](_0x4f5b2a)[_0x04ed('0x1c')](function(_0x52f655){_0x58fb03[_0x04ed('0x17')]=_0x52f655;if(_0x25ad49[_0x04ed('0x29')][_0x04ed('0x37')]){_0xd36b32[_0x04ed('0x38')]=[{'all':!![]}];}return db[_0x04ed('0x36')]['findAll'](_0xd36b32);})['then'](function(_0x4ce22d){_0x58fb03[_0x04ed('0x39')]=_0x4ce22d;return _0x58fb03;})[_0x04ed('0x1c')](respondWithFilteredResult(_0x46b35f,_0xd36b32))['catch'](handleError(_0x46b35f,null));};exports[_0x04ed('0x3a')]=function(_0xeeba59,_0x41cbe2){var _0x31fd14={'raw':!![],'where':{'id':_0xeeba59[_0x04ed('0x3b')]['id']}},_0xbcb8a5={};_0xbcb8a5['model']=_[_0x04ed('0x3c')](db[_0x04ed('0x36')]['rawAttributes']);_0xbcb8a5['query']=_['keys'](_0xeeba59[_0x04ed('0x29')]);_0xbcb8a5[_0x04ed('0x2a')]=_['intersection'](_0xbcb8a5[_0x04ed('0x28')],_0xbcb8a5['query']);_0x31fd14['attributes']=_[_0x04ed('0x2b')](_0xbcb8a5[_0x04ed('0x28')],qs[_0x04ed('0x3d')](_0xeeba59[_0x04ed('0x29')]['fields']));_0x31fd14['attributes']=_0x31fd14[_0x04ed('0x2c')][_0x04ed('0x2d')]?_0x31fd14[_0x04ed('0x2c')]:_0xbcb8a5['model'];if(_0xeeba59['query'][_0x04ed('0x37')]){_0x31fd14['include']=[{'all':!![]}];}_0x31fd14=_[_0x04ed('0x34')]({},_0x31fd14,_0xeeba59['options']);return db['CannedAnswer'][_0x04ed('0x3e')](_0x31fd14)[_0x04ed('0x1c')](handleEntityNotFound(_0x41cbe2,null))['then'](respondWithResult(_0x41cbe2,null))[_0x04ed('0x3f')](handleError(_0x41cbe2,null));};exports[_0x04ed('0x1b')]=function(_0x10bd23,_0x27d395){if(_0x10bd23[_0x04ed('0x40')]['id']){delete _0x10bd23['body']['id'];}return db[_0x04ed('0x36')]['find']({'where':{'id':_0x10bd23[_0x04ed('0x3b')]['id']}})[_0x04ed('0x1c')](handleEntityNotFound(_0x27d395,null))[_0x04ed('0x1c')](saveUpdates(_0x10bd23['body'],null))[_0x04ed('0x1c')](respondWithResult(_0x27d395,null))[_0x04ed('0x3f')](handleError(_0x27d395,null));};exports[_0x04ed('0x1d')]=function(_0xf7410b,_0x190f9d){return db[_0x04ed('0x36')][_0x04ed('0x3e')]({'where':{'id':_0xf7410b[_0x04ed('0x3b')]['id']}})[_0x04ed('0x1c')](handleEntityNotFound(_0x190f9d,null))['then'](removeEntity(_0x190f9d,null))[_0x04ed('0x3f')](handleError(_0x190f9d,null));};exports[_0x04ed('0x41')]=function(_0x2dcf1e,_0x189483){var _0x3f8057={'key':_0x2dcf1e[_0x04ed('0x40')][_0x04ed('0x27')]};if(_0x2dcf1e[_0x04ed('0x40')]['MailAccountId']){_0x3f8057[_0x04ed('0x42')]=_0x2dcf1e[_0x04ed('0x40')][_0x04ed('0x42')];}else if(_0x2dcf1e[_0x04ed('0x40')]['SmsAccountId']){_0x3f8057[_0x04ed('0x43')]=_0x2dcf1e[_0x04ed('0x40')][_0x04ed('0x43')];}else if(_0x2dcf1e[_0x04ed('0x40')][_0x04ed('0x44')]){_0x3f8057[_0x04ed('0x44')]=_0x2dcf1e['body'][_0x04ed('0x44')];}else if(_0x2dcf1e[_0x04ed('0x40')][_0x04ed('0x45')]){_0x3f8057['ChatWebsiteId']=_0x2dcf1e[_0x04ed('0x40')][_0x04ed('0x45')];}return db['CannedAnswer'][_0x04ed('0x3e')]({'where':_0x3f8057})[_0x04ed('0x1c')](function(_0x340f96){if(_0x340f96){throw new db[(_0x04ed('0x46'))][(_0x04ed('0x47'))](_0x04ed('0x48'));}return db[_0x04ed('0x36')][_0x04ed('0x41')](_0x2dcf1e[_0x04ed('0x40')]);})['then'](function(_0x83a013){var _0x2f4554=_0x2dcf1e[_0x04ed('0x49')][_0x04ed('0x4a')]({'plain':!![]});if(!_0x2f4554)throw new Error(_0x04ed('0x4b'));if(_0x2f4554['role']===_0x04ed('0x49')){var _0x2ec0af=_0x83a013[_0x04ed('0x4a')]({'plain':!![]});return db['UserProfileSection'][_0x04ed('0x3e')]({'where':{'name':'CannedAnswers','userProfileId':_0x2f4554[_0x04ed('0x4c')]},'raw':!![]})['then'](function(_0x16b1b4){if(_0x16b1b4&&_0x16b1b4[_0x04ed('0x4d')]===0x0){return db['UserProfileResource']['create']({'name':_0x2ec0af[_0x04ed('0x21')],'resourceId':_0x2ec0af['id'],'type':_0x16b1b4[_0x04ed('0x21')],'sectionId':_0x16b1b4['id']},{})[_0x04ed('0x1c')](function(){return _0x83a013;});}else{return _0x83a013;}})[_0x04ed('0x3f')](function(_0x2e4dc7){logger['error'](_0x04ed('0x4e'),_0x2e4dc7);throw _0x2e4dc7;});}return _0x83a013;})['then'](respondWithResult(_0x189483,0xc9))['catch'](handleError(_0x189483,null));};