caadf3b939d57d678150e0224b999c8974081e3e
[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 _0x97b3=['map','CannedAnswer','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','sort','where','pick','type','VIRTUAL','filter','merge','options','count','includeAll','include','findAll','catch','length','find','body','params','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','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','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','ejs','lodash','squel','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','reject','save','update','destroy','then','get','CannedAnswers','UserProfileResource','error','stack','name','send','index'];(function(_0x45358c,_0x4f0fea){var _0x15cb98=function(_0x36bb7c){while(--_0x36bb7c){_0x45358c['push'](_0x45358c['shift']());}};_0x15cb98(++_0x4f0fea);}(_0x97b3,0x137));var _0x397b=function(_0x3c2852,_0x28a891){_0x3c2852=_0x3c2852-0x0;var _0x5073cc=_0x97b3[_0x3c2852];return _0x5073cc;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x397b('0x0'));var zipdir=require(_0x397b('0x1'));var jsonpatch=require(_0x397b('0x2'));var rp=require('request-promise');var moment=require(_0x397b('0x3'));var BPromise=require(_0x397b('0x4'));var Mustache=require('mustache');var util=require(_0x397b('0x5'));var path=require(_0x397b('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x397b('0x7'));var fs=require('fs');var _=require(_0x397b('0x8'));var squel=require(_0x397b('0x9'));var crypto=require('crypto');var jsforce=require(_0x397b('0xa'));var deskjs=require(_0x397b('0xb'));var toCsv=require(_0x397b('0xc'));var querystring=require(_0x397b('0xd'));var Papa=require('papaparse');var Redis=require(_0x397b('0xe'));var authService=require(_0x397b('0xf'));var qs=require(_0x397b('0x10'));var as=require(_0x397b('0x11'));var hardwareService=require(_0x397b('0x12'));var logger=require(_0x397b('0x13'))(_0x397b('0x14'));var utils=require('../../config/utils');var config=require(_0x397b('0x15'));var licenseUtil=require(_0x397b('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5c9a41,_0x2d336b){_0x2d336b=_0x2d336b||0xcc;return function(_0x49df6b){if(_0x49df6b){return _0x5c9a41[_0x397b('0x17')](_0x2d336b);}return _0x5c9a41[_0x397b('0x18')](_0x2d336b)[_0x397b('0x19')]();};}function respondWithResult(_0x1d5d8e,_0x457cd6){_0x457cd6=_0x457cd6||0xc8;return function(_0x38b87e){if(_0x38b87e){return _0x1d5d8e['status'](_0x457cd6)[_0x397b('0x1a')](_0x38b87e);}};}function respondWithFilteredResult(_0x5ab2c0,_0x3358aa){return function(_0x354cbb){if(_0x354cbb){var _0x5f22fb=_0x354cbb['count'],_0x3a78ac=_0x3358aa[_0x397b('0x1b')],_0x4724cf=_0x3358aa['offset']+_0x3358aa[_0x397b('0x1c')],_0x41db8a;if(_0x4724cf>=_0x5f22fb){_0x4724cf=_0x5f22fb;_0x41db8a=0xc8;}else{_0x41db8a=0xce;}_0x5ab2c0[_0x397b('0x18')](_0x41db8a);return _0x5ab2c0[_0x397b('0x1d')](_0x397b('0x1e'),_0x3a78ac+'-'+_0x4724cf+'/'+_0x5f22fb)[_0x397b('0x1a')](_0x354cbb);}return null;};}function patchUpdates(_0x1a839f){return function(_0x59339a){try{jsonpatch[_0x397b('0x1f')](_0x59339a,_0x1a839f,!![]);}catch(_0x5bb979){return BPromise[_0x397b('0x20')](_0x5bb979);}return _0x59339a[_0x397b('0x21')]();};}function saveUpdates(_0x116255,_0x1aba2c){return function(_0x2fd183){if(_0x2fd183){return _0x2fd183[_0x397b('0x22')](_0x116255)['then'](function(_0xebc369){return _0xebc369;});}return null;};}function removeEntity(_0x2ba6f8,_0x543f47){return function(_0x3f81c9){if(_0x3f81c9){return _0x3f81c9[_0x397b('0x23')]()[_0x397b('0x24')](function(){var _0x39b603=_0x3f81c9[_0x397b('0x25')]({'plain':!![]});var _0x2a5e77=_0x397b('0x26');return db[_0x397b('0x27')]['destroy']({'where':{'type':_0x2a5e77,'resourceId':_0x39b603['id']}})[_0x397b('0x24')](function(){return _0x3f81c9;});})[_0x397b('0x24')](function(){_0x2ba6f8[_0x397b('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x27f08a,_0x4badda){return function(_0x3f41e4){if(!_0x3f41e4){_0x27f08a[_0x397b('0x17')](0x194);}return _0x3f41e4;};}function handleError(_0x8ed888,_0x44eaa8){_0x44eaa8=_0x44eaa8||0x1f4;return function(_0x35b6a2){logger[_0x397b('0x28')](_0x35b6a2[_0x397b('0x29')]);if(_0x35b6a2['name']){delete _0x35b6a2[_0x397b('0x2a')];}_0x8ed888[_0x397b('0x18')](_0x44eaa8)[_0x397b('0x2b')](_0x35b6a2);};}exports[_0x397b('0x2c')]=function(_0x58b5e8,_0x319cf0){var _0x2efdb0={},_0x244bec={},_0x25ea80={'count':0x0,'rows':[]};var _0x23ed1a=_[_0x397b('0x2d')](db[_0x397b('0x2e')][_0x397b('0x2f')],function(_0x1b8179){return{'name':_0x1b8179[_0x397b('0x30')],'type':_0x1b8179['type'][_0x397b('0x31')]};});_0x244bec[_0x397b('0x32')]=_[_0x397b('0x2d')](_0x23ed1a,_0x397b('0x2a'));_0x244bec[_0x397b('0x33')]=_[_0x397b('0x34')](_0x58b5e8['query']);_0x244bec[_0x397b('0x35')]=_[_0x397b('0x36')](_0x244bec[_0x397b('0x32')],_0x244bec[_0x397b('0x33')]);_0x2efdb0[_0x397b('0x37')]=_[_0x397b('0x36')](_0x244bec[_0x397b('0x32')],qs[_0x397b('0x38')](_0x58b5e8[_0x397b('0x33')][_0x397b('0x38')]));_0x2efdb0['attributes']=_0x2efdb0['attributes']['length']?_0x2efdb0[_0x397b('0x37')]:_0x244bec[_0x397b('0x32')];if(!_0x58b5e8[_0x397b('0x33')][_0x397b('0x39')]('nolimit')){_0x2efdb0[_0x397b('0x1c')]=qs['limit'](_0x58b5e8[_0x397b('0x33')][_0x397b('0x1c')]);_0x2efdb0[_0x397b('0x1b')]=qs[_0x397b('0x1b')](_0x58b5e8[_0x397b('0x33')]['offset']);}_0x2efdb0['order']=qs[_0x397b('0x3a')](_0x58b5e8[_0x397b('0x33')][_0x397b('0x3a')]);_0x2efdb0[_0x397b('0x3b')]=qs[_0x397b('0x35')](_[_0x397b('0x3c')](_0x58b5e8['query'],_0x244bec['filters']),_0x23ed1a);if(_0x58b5e8[_0x397b('0x33')]['filter']){_0x2efdb0[_0x397b('0x3b')]=_['merge'](_0x2efdb0[_0x397b('0x3b')],{'$or':_[_0x397b('0x2d')](_0x23ed1a,function(_0x327b34){if(_0x327b34[_0x397b('0x3d')]!==_0x397b('0x3e')){var _0x495a73={};_0x495a73[_0x327b34[_0x397b('0x2a')]]={'$like':'%'+_0x58b5e8['query'][_0x397b('0x3f')]+'%'};return _0x495a73;}})});}_0x2efdb0=_[_0x397b('0x40')]({},_0x2efdb0,_0x58b5e8[_0x397b('0x41')]);var _0x212c1f={'where':_0x2efdb0[_0x397b('0x3b')]};return db['CannedAnswer'][_0x397b('0x42')](_0x212c1f)[_0x397b('0x24')](function(_0x324074){_0x25ea80[_0x397b('0x42')]=_0x324074;if(_0x58b5e8[_0x397b('0x33')][_0x397b('0x43')]){_0x2efdb0[_0x397b('0x44')]=[{'all':!![]}];}return db['CannedAnswer'][_0x397b('0x45')](_0x2efdb0);})['then'](function(_0x3546b2){_0x25ea80['rows']=_0x3546b2;return _0x25ea80;})[_0x397b('0x24')](respondWithFilteredResult(_0x319cf0,_0x2efdb0))[_0x397b('0x46')](handleError(_0x319cf0,null));};exports['show']=function(_0x217070,_0x4e8a77){var _0x5d7da1={'raw':!![],'where':{'id':_0x217070['params']['id']}},_0x426535={};_0x426535['model']=_['keys'](db[_0x397b('0x2e')][_0x397b('0x2f')]);_0x426535[_0x397b('0x33')]=_[_0x397b('0x34')](_0x217070[_0x397b('0x33')]);_0x426535[_0x397b('0x35')]=_[_0x397b('0x36')](_0x426535['model'],_0x426535[_0x397b('0x33')]);_0x5d7da1[_0x397b('0x37')]=_[_0x397b('0x36')](_0x426535[_0x397b('0x32')],qs['fields'](_0x217070[_0x397b('0x33')][_0x397b('0x38')]));_0x5d7da1[_0x397b('0x37')]=_0x5d7da1['attributes'][_0x397b('0x47')]?_0x5d7da1[_0x397b('0x37')]:_0x426535[_0x397b('0x32')];if(_0x217070[_0x397b('0x33')]['includeAll']){_0x5d7da1[_0x397b('0x44')]=[{'all':!![]}];}_0x5d7da1=_[_0x397b('0x40')]({},_0x5d7da1,_0x217070[_0x397b('0x41')]);return db[_0x397b('0x2e')][_0x397b('0x48')](_0x5d7da1)[_0x397b('0x24')](handleEntityNotFound(_0x4e8a77,null))[_0x397b('0x24')](respondWithResult(_0x4e8a77,null))[_0x397b('0x46')](handleError(_0x4e8a77,null));};exports[_0x397b('0x22')]=function(_0x263e5d,_0x32395f){if(_0x263e5d['body']['id']){delete _0x263e5d[_0x397b('0x49')]['id'];}return db['CannedAnswer'][_0x397b('0x48')]({'where':{'id':_0x263e5d[_0x397b('0x4a')]['id']}})[_0x397b('0x24')](handleEntityNotFound(_0x32395f,null))[_0x397b('0x24')](saveUpdates(_0x263e5d[_0x397b('0x49')],null))[_0x397b('0x24')](respondWithResult(_0x32395f,null))['catch'](handleError(_0x32395f,null));};exports[_0x397b('0x23')]=function(_0x25496d,_0x64c2ad){return db[_0x397b('0x2e')][_0x397b('0x48')]({'where':{'id':_0x25496d[_0x397b('0x4a')]['id']}})['then'](handleEntityNotFound(_0x64c2ad,null))[_0x397b('0x24')](removeEntity(_0x64c2ad,null))[_0x397b('0x46')](handleError(_0x64c2ad,null));};exports[_0x397b('0x4b')]=function(_0x2a6bd8,_0x12df31){var _0x1e297c={'key':_0x2a6bd8[_0x397b('0x49')]['key']};if(_0x2a6bd8['body'][_0x397b('0x4c')]){_0x1e297c[_0x397b('0x4c')]=_0x2a6bd8[_0x397b('0x49')][_0x397b('0x4c')];}else if(_0x2a6bd8[_0x397b('0x49')][_0x397b('0x4d')]){_0x1e297c[_0x397b('0x4d')]=_0x2a6bd8[_0x397b('0x49')][_0x397b('0x4d')];}else if(_0x2a6bd8['body'][_0x397b('0x4e')]){_0x1e297c[_0x397b('0x4e')]=_0x2a6bd8[_0x397b('0x49')][_0x397b('0x4e')];}else if(_0x2a6bd8['body'][_0x397b('0x4f')]){_0x1e297c[_0x397b('0x4f')]=_0x2a6bd8[_0x397b('0x49')]['ChatWebsiteId'];}return db[_0x397b('0x2e')][_0x397b('0x48')]({'where':_0x1e297c})['then'](function(_0x3ce3d8){if(_0x3ce3d8){throw new db[(_0x397b('0x50'))][(_0x397b('0x51'))](_0x397b('0x52'));}return db[_0x397b('0x2e')]['create'](_0x2a6bd8['body']);})[_0x397b('0x24')](function(_0x577007){var _0x37f94b=_0x2a6bd8[_0x397b('0x53')]['get']({'plain':!![]});if(!_0x37f94b)throw new Error(_0x397b('0x54'));if(_0x37f94b[_0x397b('0x55')]===_0x397b('0x53')){var _0x560998=_0x577007[_0x397b('0x25')]({'plain':!![]});return db['UserProfileSection'][_0x397b('0x48')]({'where':{'name':_0x397b('0x26'),'userProfileId':_0x37f94b[_0x397b('0x56')]},'raw':!![]})[_0x397b('0x24')](function(_0x38cd0c){if(_0x38cd0c&&_0x38cd0c[_0x397b('0x57')]===0x0){return db['UserProfileResource']['create']({'name':_0x560998['name'],'resourceId':_0x560998['id'],'type':_0x38cd0c[_0x397b('0x2a')],'sectionId':_0x38cd0c['id']},{})['then'](function(){return _0x577007;});}else{return _0x577007;}})[_0x397b('0x46')](function(_0xa020f8){logger[_0x397b('0x28')](_0x397b('0x58'),_0xa020f8);throw _0xa020f8;});}return _0x577007;})['then'](respondWithResult(_0x12df31,0xc9))['catch'](handleError(_0x12df31,null));};