405e707c0c9e3aa56c64db0d85229ce44586b903
[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 _0x124c=['ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','json','undefined','limit','offset','count','set','Content-Range','apply','reject','update','then','destroy','get','CannedAnswers','UserProfileResource','end','stack','name','send','map','CannedAnswer','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','sort','filter','merge','where','includeAll','rows','catch','params','include','options','find','body','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','create','role','user','UserProfileSection','autoAssociation','error','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','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse'];(function(_0x2405bc,_0x2f28a1){var _0x5272d4=function(_0x225294){while(--_0x225294){_0x2405bc['push'](_0x2405bc['shift']());}};_0x5272d4(++_0x2f28a1);}(_0x124c,0xf1));var _0xc124=function(_0x3b1bf4,_0x135f0a){_0x3b1bf4=_0x3b1bf4-0x0;var _0x17c9d9=_0x124c[_0x3b1bf4];return _0x17c9d9;};'use strict';var emlformat=require(_0xc124('0x0'));var rimraf=require(_0xc124('0x1'));var zipdir=require(_0xc124('0x2'));var jsonpatch=require(_0xc124('0x3'));var rp=require(_0xc124('0x4'));var moment=require(_0xc124('0x5'));var BPromise=require(_0xc124('0x6'));var Mustache=require(_0xc124('0x7'));var util=require(_0xc124('0x8'));var path=require(_0xc124('0x9'));var sox=require(_0xc124('0xa'));var csv=require(_0xc124('0xb'));var ejs=require(_0xc124('0xc'));var fs=require('fs');var fs_extra=require(_0xc124('0xd'));var _=require(_0xc124('0xe'));var squel=require(_0xc124('0xf'));var crypto=require('crypto');var jsforce=require(_0xc124('0x10'));var deskjs=require(_0xc124('0x11'));var toCsv=require(_0xc124('0xb'));var querystring=require(_0xc124('0x12'));var Papa=require(_0xc124('0x13'));var Redis=require(_0xc124('0x14'));var authService=require(_0xc124('0x15'));var qs=require('../../components/parsers/qs');var as=require(_0xc124('0x16'));var hardwareService=require(_0xc124('0x17'));var logger=require(_0xc124('0x18'))(_0xc124('0x19'));var utils=require('../../config/utils');var config=require(_0xc124('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0xc124('0x1b'))['db'];function respondWithStatusCode(_0x124ab3,_0x2cf4a0){_0x2cf4a0=_0x2cf4a0||0xcc;return function(_0x26f097){if(_0x26f097){return _0x124ab3[_0xc124('0x1c')](_0x2cf4a0);}return _0x124ab3[_0xc124('0x1d')](_0x2cf4a0)['end']();};}function respondWithResult(_0x4ef9d2,_0x46fabc){_0x46fabc=_0x46fabc||0xc8;return function(_0x5e8649){if(_0x5e8649){return _0x4ef9d2[_0xc124('0x1d')](_0x46fabc)[_0xc124('0x1e')](_0x5e8649);}};}function respondWithFilteredResult(_0x2c21a3,_0x11c571){return function(_0x6617a1){if(_0x6617a1){var _0x42006f=typeof _0x11c571['offset']===_0xc124('0x1f')&&typeof _0x11c571[_0xc124('0x20')]===_0xc124('0x1f');var _0x58544f=_0x6617a1['count'];var _0xc36976=_0x42006f?0x0:_0x11c571[_0xc124('0x21')];var _0x1211e8=_0x42006f?_0x6617a1[_0xc124('0x22')]:_0x11c571[_0xc124('0x21')]+_0x11c571[_0xc124('0x20')];var _0x27be68;if(_0x1211e8>=_0x58544f){_0x1211e8=_0x58544f;_0x27be68=0xc8;}else{_0x27be68=0xce;}_0x2c21a3['status'](_0x27be68);return _0x2c21a3[_0xc124('0x23')](_0xc124('0x24'),_0xc36976+'-'+_0x1211e8+'/'+_0x58544f)[_0xc124('0x1e')](_0x6617a1);}return null;};}function patchUpdates(_0x4df0d2){return function(_0x44525e){try{jsonpatch[_0xc124('0x25')](_0x44525e,_0x4df0d2,!![]);}catch(_0x219f7f){return BPromise[_0xc124('0x26')](_0x219f7f);}return _0x44525e['save']();};}function saveUpdates(_0x16adb2,_0x593e63){return function(_0x8b1382){if(_0x8b1382){return _0x8b1382[_0xc124('0x27')](_0x16adb2)[_0xc124('0x28')](function(_0x5ebf82){return _0x5ebf82;});}return null;};}function removeEntity(_0x2003b,_0xb4c22e){return function(_0x52e8fe){if(_0x52e8fe){return _0x52e8fe[_0xc124('0x29')]()[_0xc124('0x28')](function(){var _0xf7b546=_0x52e8fe[_0xc124('0x2a')]({'plain':!![]});var _0xc2c5a6=_0xc124('0x2b');return db[_0xc124('0x2c')][_0xc124('0x29')]({'where':{'type':_0xc2c5a6,'resourceId':_0xf7b546['id']}})['then'](function(){return _0x52e8fe;});})[_0xc124('0x28')](function(){_0x2003b[_0xc124('0x1d')](0xcc)[_0xc124('0x2d')]();});}};}function handleEntityNotFound(_0x5bebcd,_0x82f053){return function(_0x411b15){if(!_0x411b15){_0x5bebcd[_0xc124('0x1c')](0x194);}return _0x411b15;};}function handleError(_0xa83d11,_0x5c5dcb){_0x5c5dcb=_0x5c5dcb||0x1f4;return function(_0x58a839){logger['error'](_0x58a839[_0xc124('0x2e')]);if(_0x58a839['name']){delete _0x58a839[_0xc124('0x2f')];}_0xa83d11[_0xc124('0x1d')](_0x5c5dcb)[_0xc124('0x30')](_0x58a839);};}exports['index']=function(_0x1717c3,_0x435639){var _0x32d468={},_0x3d37a1={},_0x5b35a5={'count':0x0,'rows':[]};var _0x4b7370=_[_0xc124('0x31')](db[_0xc124('0x32')][_0xc124('0x33')],function(_0x2f3641){return{'name':_0x2f3641[_0xc124('0x34')],'type':_0x2f3641[_0xc124('0x35')][_0xc124('0x36')]};});_0x3d37a1[_0xc124('0x37')]=_[_0xc124('0x31')](_0x4b7370,_0xc124('0x2f'));_0x3d37a1[_0xc124('0x38')]=_[_0xc124('0x39')](_0x1717c3[_0xc124('0x38')]);_0x3d37a1[_0xc124('0x3a')]=_[_0xc124('0x3b')](_0x3d37a1[_0xc124('0x37')],_0x3d37a1[_0xc124('0x38')]);_0x32d468['attributes']=_[_0xc124('0x3b')](_0x3d37a1[_0xc124('0x37')],qs['fields'](_0x1717c3[_0xc124('0x38')][_0xc124('0x3c')]));_0x32d468['attributes']=_0x32d468[_0xc124('0x3d')][_0xc124('0x3e')]?_0x32d468['attributes']:_0x3d37a1['model'];if(!_0x1717c3['query']['hasOwnProperty'](_0xc124('0x3f'))){_0x32d468[_0xc124('0x20')]=qs[_0xc124('0x20')](_0x1717c3[_0xc124('0x38')]['limit']);_0x32d468[_0xc124('0x21')]=qs[_0xc124('0x21')](_0x1717c3[_0xc124('0x38')][_0xc124('0x21')]);}_0x32d468['order']=qs[_0xc124('0x40')](_0x1717c3[_0xc124('0x38')][_0xc124('0x40')]);_0x32d468['where']=qs[_0xc124('0x3a')](_['pick'](_0x1717c3[_0xc124('0x38')],_0x3d37a1[_0xc124('0x3a')]),_0x4b7370);if(_0x1717c3['query'][_0xc124('0x41')]){_0x32d468['where']=_[_0xc124('0x42')](_0x32d468[_0xc124('0x43')],{'$or':[{'key':{'$like':'%'+_0x1717c3[_0xc124('0x38')][_0xc124('0x41')]+'%'}},{'value':{'$like':'%'+_0x1717c3['query'][_0xc124('0x41')]+'%'}}]});}_0x32d468=_[_0xc124('0x42')]({},_0x32d468,_0x1717c3['options']);var _0x4bcee4={'where':_0x32d468[_0xc124('0x43')]};return db[_0xc124('0x32')]['count'](_0x4bcee4)['then'](function(_0x4ab5cc){_0x5b35a5[_0xc124('0x22')]=_0x4ab5cc;if(_0x1717c3[_0xc124('0x38')][_0xc124('0x44')]){_0x32d468['include']=[{'all':!![]}];}return db['CannedAnswer']['findAll'](_0x32d468);})[_0xc124('0x28')](function(_0x3d3362){_0x5b35a5[_0xc124('0x45')]=_0x3d3362;return _0x5b35a5;})[_0xc124('0x28')](respondWithFilteredResult(_0x435639,_0x32d468))[_0xc124('0x46')](handleError(_0x435639,null));};exports['show']=function(_0x5a944e,_0x3e09a8){var _0x339c0b={'raw':!![],'where':{'id':_0x5a944e[_0xc124('0x47')]['id']}},_0x3ae446={};_0x3ae446[_0xc124('0x37')]=_['keys'](db[_0xc124('0x32')][_0xc124('0x33')]);_0x3ae446[_0xc124('0x38')]=_[_0xc124('0x39')](_0x5a944e[_0xc124('0x38')]);_0x3ae446['filters']=_[_0xc124('0x3b')](_0x3ae446['model'],_0x3ae446['query']);_0x339c0b[_0xc124('0x3d')]=_[_0xc124('0x3b')](_0x3ae446[_0xc124('0x37')],qs[_0xc124('0x3c')](_0x5a944e['query'][_0xc124('0x3c')]));_0x339c0b[_0xc124('0x3d')]=_0x339c0b[_0xc124('0x3d')][_0xc124('0x3e')]?_0x339c0b[_0xc124('0x3d')]:_0x3ae446[_0xc124('0x37')];if(_0x5a944e[_0xc124('0x38')]['includeAll']){_0x339c0b[_0xc124('0x48')]=[{'all':!![]}];}_0x339c0b=_['merge']({},_0x339c0b,_0x5a944e[_0xc124('0x49')]);return db[_0xc124('0x32')][_0xc124('0x4a')](_0x339c0b)[_0xc124('0x28')](handleEntityNotFound(_0x3e09a8,null))[_0xc124('0x28')](respondWithResult(_0x3e09a8,null))['catch'](handleError(_0x3e09a8,null));};exports[_0xc124('0x27')]=function(_0x11f2d1,_0x212d1c){if(_0x11f2d1[_0xc124('0x4b')]['id']){delete _0x11f2d1[_0xc124('0x4b')]['id'];}return db[_0xc124('0x32')]['find']({'where':{'id':_0x11f2d1[_0xc124('0x47')]['id']}})[_0xc124('0x28')](handleEntityNotFound(_0x212d1c,null))[_0xc124('0x28')](saveUpdates(_0x11f2d1[_0xc124('0x4b')],null))[_0xc124('0x28')](respondWithResult(_0x212d1c,null))['catch'](handleError(_0x212d1c,null));};exports['destroy']=function(_0xd0a9a4,_0x20d6c3){return db[_0xc124('0x32')][_0xc124('0x4a')]({'where':{'id':_0xd0a9a4[_0xc124('0x47')]['id']}})[_0xc124('0x28')](handleEntityNotFound(_0x20d6c3,null))['then'](removeEntity(_0x20d6c3,null))[_0xc124('0x46')](handleError(_0x20d6c3,null));};exports['create']=function(_0x36bc3a,_0x43a1d9){var _0x18f83a={'key':_0x36bc3a[_0xc124('0x4b')]['key']};if(_0x36bc3a[_0xc124('0x4b')]['MailAccountId']){_0x18f83a[_0xc124('0x4c')]=_0x36bc3a[_0xc124('0x4b')][_0xc124('0x4c')];}else if(_0x36bc3a[_0xc124('0x4b')][_0xc124('0x4d')]){_0x18f83a['SmsAccountId']=_0x36bc3a[_0xc124('0x4b')][_0xc124('0x4d')];}else if(_0x36bc3a[_0xc124('0x4b')][_0xc124('0x4e')]){_0x18f83a['OpenchannelAccountId']=_0x36bc3a[_0xc124('0x4b')][_0xc124('0x4e')];}else if(_0x36bc3a[_0xc124('0x4b')][_0xc124('0x4f')]){_0x18f83a[_0xc124('0x4f')]=_0x36bc3a[_0xc124('0x4b')][_0xc124('0x4f')];}return db[_0xc124('0x32')]['find']({'where':_0x18f83a})['then'](function(_0x6900f1){if(_0x6900f1){throw new db['Sequelize']['ValidationError']('The\x20inserted\x20key\x20already\x20exists.');}return db[_0xc124('0x32')][_0xc124('0x50')](_0x36bc3a[_0xc124('0x4b')]);})[_0xc124('0x28')](function(_0x50e736){var _0x165f71=_0x36bc3a['user']['get']({'plain':!![]});if(!_0x165f71)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x165f71[_0xc124('0x51')]===_0xc124('0x52')){var _0x2e6ba6=_0x50e736[_0xc124('0x2a')]({'plain':!![]});return db[_0xc124('0x53')][_0xc124('0x4a')]({'where':{'name':_0xc124('0x2b'),'userProfileId':_0x165f71['userProfileId']},'raw':!![]})[_0xc124('0x28')](function(_0x31f6f5){if(_0x31f6f5&&_0x31f6f5[_0xc124('0x54')]===0x0){return db[_0xc124('0x2c')][_0xc124('0x50')]({'name':_0x2e6ba6[_0xc124('0x2f')],'resourceId':_0x2e6ba6['id'],'type':_0x31f6f5[_0xc124('0x2f')],'sectionId':_0x31f6f5['id']},{})[_0xc124('0x28')](function(){return _0x50e736;});}else{return _0x50e736;}})['catch'](function(_0x2bc8d7){logger[_0xc124('0x55')](_0xc124('0x56'),_0x2bc8d7);throw _0x2bc8d7;});}return _0x50e736;})[_0xc124('0x28')](respondWithResult(_0x43a1d9,0xc9))[_0xc124('0x46')](handleError(_0x43a1d9,null));};