Built motion from commit 00bf23f6.|2.6.16
[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 _0x8de3=['then','destroy','get','UserProfileResource','error','stack','name','send','index','CannedAnswer','rawAttributes','fieldName','type','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','options','includeAll','findAll','rows','catch','show','params','include','find','update','body','create','key','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','CannedAnswers','autoAssociation','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','fs-extra','lodash','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject'];(function(_0x413b4d,_0xa3459c){var _0x8b810a=function(_0x22d441){while(--_0x22d441){_0x413b4d['push'](_0x413b4d['shift']());}};_0x8b810a(++_0xa3459c);}(_0x8de3,0x19d));var _0x38de=function(_0x5e3cef,_0x3c57f5){_0x5e3cef=_0x5e3cef-0x0;var _0x34c370=_0x8de3[_0x5e3cef];return _0x34c370;};'use strict';var emlformat=require(_0x38de('0x0'));var rimraf=require(_0x38de('0x1'));var zipdir=require(_0x38de('0x2'));var jsonpatch=require(_0x38de('0x3'));var rp=require(_0x38de('0x4'));var moment=require(_0x38de('0x5'));var BPromise=require(_0x38de('0x6'));var Mustache=require(_0x38de('0x7'));var util=require(_0x38de('0x8'));var path=require(_0x38de('0x9'));var sox=require('sox');var csv=require(_0x38de('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x38de('0xb'));var _=require(_0x38de('0xc'));var squel=require(_0x38de('0xd'));var crypto=require(_0x38de('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x38de('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x38de('0x10'));var authService=require(_0x38de('0x11'));var qs=require(_0x38de('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x38de('0x13'));var logger=require(_0x38de('0x14'))(_0x38de('0x15'));var utils=require('../../config/utils');var config=require(_0x38de('0x16'));var licenseUtil=require(_0x38de('0x17'));var db=require(_0x38de('0x18'))['db'];function respondWithStatusCode(_0x109c64,_0x42c5b2){_0x42c5b2=_0x42c5b2||0xcc;return function(_0xb97760){if(_0xb97760){return _0x109c64[_0x38de('0x19')](_0x42c5b2);}return _0x109c64[_0x38de('0x1a')](_0x42c5b2)[_0x38de('0x1b')]();};}function respondWithResult(_0x46994b,_0x1277d1){_0x1277d1=_0x1277d1||0xc8;return function(_0x2fc70b){if(_0x2fc70b){return _0x46994b['status'](_0x1277d1)[_0x38de('0x1c')](_0x2fc70b);}};}function respondWithFilteredResult(_0x3c2ef7,_0x2088db){return function(_0x3bd612){if(_0x3bd612){var _0x473cd4=typeof _0x2088db['offset']===_0x38de('0x1d')&&typeof _0x2088db[_0x38de('0x1e')]===_0x38de('0x1d');var _0x3c5e72=_0x3bd612[_0x38de('0x1f')];var _0x383386=_0x473cd4?0x0:_0x2088db[_0x38de('0x20')];var _0x3e3eca=_0x473cd4?_0x3bd612[_0x38de('0x1f')]:_0x2088db[_0x38de('0x20')]+_0x2088db[_0x38de('0x1e')];var _0x428926;if(_0x3e3eca>=_0x3c5e72){_0x3e3eca=_0x3c5e72;_0x428926=0xc8;}else{_0x428926=0xce;}_0x3c2ef7[_0x38de('0x1a')](_0x428926);return _0x3c2ef7[_0x38de('0x21')](_0x38de('0x22'),_0x383386+'-'+_0x3e3eca+'/'+_0x3c5e72)[_0x38de('0x1c')](_0x3bd612);}return null;};}function patchUpdates(_0x3cdb47){return function(_0x5c9ab8){try{jsonpatch[_0x38de('0x23')](_0x5c9ab8,_0x3cdb47,!![]);}catch(_0x364776){return BPromise[_0x38de('0x24')](_0x364776);}return _0x5c9ab8['save']();};}function saveUpdates(_0x59c549,_0x33605e){return function(_0x45c2cf){if(_0x45c2cf){return _0x45c2cf['update'](_0x59c549)[_0x38de('0x25')](function(_0x50a6f5){return _0x50a6f5;});}return null;};}function removeEntity(_0x49de2e,_0x4f60db){return function(_0x37a2e4){if(_0x37a2e4){return _0x37a2e4[_0x38de('0x26')]()['then'](function(){var _0x1d9faf=_0x37a2e4[_0x38de('0x27')]({'plain':!![]});var _0x1d35b7='CannedAnswers';return db[_0x38de('0x28')][_0x38de('0x26')]({'where':{'type':_0x1d35b7,'resourceId':_0x1d9faf['id']}})[_0x38de('0x25')](function(){return _0x37a2e4;});})[_0x38de('0x25')](function(){_0x49de2e[_0x38de('0x1a')](0xcc)[_0x38de('0x1b')]();});}};}function handleEntityNotFound(_0x1f25f9,_0x40581a){return function(_0x160a50){if(!_0x160a50){_0x1f25f9['sendStatus'](0x194);}return _0x160a50;};}function handleError(_0xa9eeac,_0x3faba2){_0x3faba2=_0x3faba2||0x1f4;return function(_0x478f94){logger[_0x38de('0x29')](_0x478f94[_0x38de('0x2a')]);if(_0x478f94[_0x38de('0x2b')]){delete _0x478f94['name'];}_0xa9eeac[_0x38de('0x1a')](_0x3faba2)[_0x38de('0x2c')](_0x478f94);};}exports[_0x38de('0x2d')]=function(_0x1cde59,_0x23299e){var _0x5e0faa={},_0x5425a2={},_0x51a854={'count':0x0,'rows':[]};var _0x35b030=_['map'](db[_0x38de('0x2e')][_0x38de('0x2f')],function(_0x46b830){return{'name':_0x46b830[_0x38de('0x30')],'type':_0x46b830[_0x38de('0x31')]['key']};});_0x5425a2[_0x38de('0x32')]=_[_0x38de('0x33')](_0x35b030,_0x38de('0x2b'));_0x5425a2[_0x38de('0x34')]=_[_0x38de('0x35')](_0x1cde59[_0x38de('0x34')]);_0x5425a2[_0x38de('0x36')]=_[_0x38de('0x37')](_0x5425a2[_0x38de('0x32')],_0x5425a2[_0x38de('0x34')]);_0x5e0faa[_0x38de('0x38')]=_[_0x38de('0x37')](_0x5425a2[_0x38de('0x32')],qs['fields'](_0x1cde59['query'][_0x38de('0x39')]));_0x5e0faa[_0x38de('0x38')]=_0x5e0faa[_0x38de('0x38')][_0x38de('0x3a')]?_0x5e0faa['attributes']:_0x5425a2[_0x38de('0x32')];if(!_0x1cde59[_0x38de('0x34')][_0x38de('0x3b')](_0x38de('0x3c'))){_0x5e0faa[_0x38de('0x1e')]=qs[_0x38de('0x1e')](_0x1cde59['query'][_0x38de('0x1e')]);_0x5e0faa[_0x38de('0x20')]=qs[_0x38de('0x20')](_0x1cde59[_0x38de('0x34')][_0x38de('0x20')]);}_0x5e0faa['order']=qs[_0x38de('0x3d')](_0x1cde59[_0x38de('0x34')][_0x38de('0x3d')]);_0x5e0faa[_0x38de('0x3e')]=qs[_0x38de('0x36')](_[_0x38de('0x3f')](_0x1cde59[_0x38de('0x34')],_0x5425a2[_0x38de('0x36')]),_0x35b030);if(_0x1cde59[_0x38de('0x34')][_0x38de('0x40')]){_0x5e0faa[_0x38de('0x3e')]=_['merge'](_0x5e0faa[_0x38de('0x3e')],{'$or':[{'key':{'$like':'%'+_0x1cde59[_0x38de('0x34')][_0x38de('0x40')]+'%'}},{'value':{'$like':'%'+_0x1cde59[_0x38de('0x34')]['filter']+'%'}}]});}_0x5e0faa=_['merge']({},_0x5e0faa,_0x1cde59[_0x38de('0x41')]);var _0x36063f={'where':_0x5e0faa[_0x38de('0x3e')]};return db[_0x38de('0x2e')]['count'](_0x36063f)[_0x38de('0x25')](function(_0x517f8c){_0x51a854[_0x38de('0x1f')]=_0x517f8c;if(_0x1cde59[_0x38de('0x34')][_0x38de('0x42')]){_0x5e0faa['include']=[{'all':!![]}];}return db[_0x38de('0x2e')][_0x38de('0x43')](_0x5e0faa);})[_0x38de('0x25')](function(_0x4b449f){_0x51a854[_0x38de('0x44')]=_0x4b449f;return _0x51a854;})[_0x38de('0x25')](respondWithFilteredResult(_0x23299e,_0x5e0faa))[_0x38de('0x45')](handleError(_0x23299e,null));};exports[_0x38de('0x46')]=function(_0x444b40,_0x20cd8a){var _0x44373f={'raw':!![],'where':{'id':_0x444b40[_0x38de('0x47')]['id']}},_0x4771c0={};_0x4771c0['model']=_[_0x38de('0x35')](db[_0x38de('0x2e')]['rawAttributes']);_0x4771c0[_0x38de('0x34')]=_[_0x38de('0x35')](_0x444b40['query']);_0x4771c0[_0x38de('0x36')]=_[_0x38de('0x37')](_0x4771c0[_0x38de('0x32')],_0x4771c0[_0x38de('0x34')]);_0x44373f[_0x38de('0x38')]=_[_0x38de('0x37')](_0x4771c0['model'],qs['fields'](_0x444b40['query'][_0x38de('0x39')]));_0x44373f['attributes']=_0x44373f[_0x38de('0x38')][_0x38de('0x3a')]?_0x44373f['attributes']:_0x4771c0['model'];if(_0x444b40[_0x38de('0x34')][_0x38de('0x42')]){_0x44373f[_0x38de('0x48')]=[{'all':!![]}];}_0x44373f=_['merge']({},_0x44373f,_0x444b40['options']);return db[_0x38de('0x2e')][_0x38de('0x49')](_0x44373f)[_0x38de('0x25')](handleEntityNotFound(_0x20cd8a,null))[_0x38de('0x25')](respondWithResult(_0x20cd8a,null))[_0x38de('0x45')](handleError(_0x20cd8a,null));};exports[_0x38de('0x4a')]=function(_0x3ebe93,_0x4acf7e){if(_0x3ebe93[_0x38de('0x4b')]['id']){delete _0x3ebe93['body']['id'];}return db[_0x38de('0x2e')]['find']({'where':{'id':_0x3ebe93[_0x38de('0x47')]['id']}})['then'](handleEntityNotFound(_0x4acf7e,null))[_0x38de('0x25')](saveUpdates(_0x3ebe93['body'],null))['then'](respondWithResult(_0x4acf7e,null))[_0x38de('0x45')](handleError(_0x4acf7e,null));};exports['destroy']=function(_0x14f699,_0x29e110){return db[_0x38de('0x2e')][_0x38de('0x49')]({'where':{'id':_0x14f699[_0x38de('0x47')]['id']}})[_0x38de('0x25')](handleEntityNotFound(_0x29e110,null))['then'](removeEntity(_0x29e110,null))[_0x38de('0x45')](handleError(_0x29e110,null));};exports[_0x38de('0x4c')]=function(_0x2d22dd,_0x1f3e25){var _0x188311={'key':_0x2d22dd[_0x38de('0x4b')][_0x38de('0x4d')]};if(_0x2d22dd[_0x38de('0x4b')][_0x38de('0x4e')]){_0x188311[_0x38de('0x4e')]=_0x2d22dd[_0x38de('0x4b')][_0x38de('0x4e')];}else if(_0x2d22dd[_0x38de('0x4b')]['SmsAccountId']){_0x188311['SmsAccountId']=_0x2d22dd[_0x38de('0x4b')][_0x38de('0x4f')];}else if(_0x2d22dd['body'][_0x38de('0x50')]){_0x188311[_0x38de('0x50')]=_0x2d22dd[_0x38de('0x4b')][_0x38de('0x50')];}else if(_0x2d22dd[_0x38de('0x4b')][_0x38de('0x51')]){_0x188311['ChatWebsiteId']=_0x2d22dd[_0x38de('0x4b')]['ChatWebsiteId'];}return db['CannedAnswer'][_0x38de('0x49')]({'where':_0x188311})[_0x38de('0x25')](function(_0x37347e){if(_0x37347e){throw new db['Sequelize'][(_0x38de('0x52'))](_0x38de('0x53'));}return db[_0x38de('0x2e')][_0x38de('0x4c')](_0x2d22dd['body']);})[_0x38de('0x25')](function(_0x23f77b){var _0x5d4c47=_0x2d22dd[_0x38de('0x54')][_0x38de('0x27')]({'plain':!![]});if(!_0x5d4c47)throw new Error(_0x38de('0x55'));if(_0x5d4c47[_0x38de('0x56')]===_0x38de('0x54')){var _0x479c74=_0x23f77b[_0x38de('0x27')]({'plain':!![]});return db[_0x38de('0x57')][_0x38de('0x49')]({'where':{'name':_0x38de('0x58'),'userProfileId':_0x5d4c47['userProfileId']},'raw':!![]})[_0x38de('0x25')](function(_0x249fbd){if(_0x249fbd&&_0x249fbd[_0x38de('0x59')]===0x0){return db['UserProfileResource']['create']({'name':_0x479c74[_0x38de('0x2b')],'resourceId':_0x479c74['id'],'type':_0x249fbd[_0x38de('0x2b')],'sectionId':_0x249fbd['id']},{})[_0x38de('0x25')](function(){return _0x23f77b;});}else{return _0x23f77b;}})[_0x38de('0x45')](function(_0x3eab35){logger[_0x38de('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3eab35);throw _0x3eab35;});}return _0x23f77b;})[_0x38de('0x25')](respondWithResult(_0x1f3e25,0xc9))['catch'](handleError(_0x1f3e25,null));};