Built motion from commit 1fa89557.|2.6.10
[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 _0xae68=['zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','get','CannedAnswers','UserProfileResource','destroy','sendStatus','error','stack','name','send','index','map','CannedAnswer','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','options','includeAll','findAll','catch','show','params','include','find','body','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s'];(function(_0x38ced4,_0x24263f){var _0x547c07=function(_0x279fc4){while(--_0x279fc4){_0x38ced4['push'](_0x38ced4['shift']());}};_0x547c07(++_0x24263f);}(_0xae68,0x1cc));var _0x8ae6=function(_0xacd405,_0x2217bb){_0xacd405=_0xacd405-0x0;var _0x57611c=_0xae68[_0xacd405];return _0x57611c;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x8ae6('0x0'));var jsonpatch=require(_0x8ae6('0x1'));var rp=require('request-promise');var moment=require(_0x8ae6('0x2'));var BPromise=require(_0x8ae6('0x3'));var Mustache=require(_0x8ae6('0x4'));var util=require(_0x8ae6('0x5'));var path=require(_0x8ae6('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8ae6('0x7'));var _=require(_0x8ae6('0x8'));var squel=require(_0x8ae6('0x9'));var crypto=require(_0x8ae6('0xa'));var jsforce=require(_0x8ae6('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x8ae6('0xc'));var querystring=require(_0x8ae6('0xd'));var Papa=require(_0x8ae6('0xe'));var Redis=require(_0x8ae6('0xf'));var authService=require(_0x8ae6('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x8ae6('0x11'));var hardwareService=require(_0x8ae6('0x12'));var logger=require(_0x8ae6('0x13'))(_0x8ae6('0x14'));var utils=require(_0x8ae6('0x15'));var config=require(_0x8ae6('0x16'));var licenseUtil=require(_0x8ae6('0x17'));var db=require(_0x8ae6('0x18'))['db'];function respondWithStatusCode(_0x30c157,_0x3ffbee){_0x3ffbee=_0x3ffbee||0xcc;return function(_0x2dc57a){if(_0x2dc57a){return _0x30c157['sendStatus'](_0x3ffbee);}return _0x30c157[_0x8ae6('0x19')](_0x3ffbee)[_0x8ae6('0x1a')]();};}function respondWithResult(_0xcdb2d,_0x311db2){_0x311db2=_0x311db2||0xc8;return function(_0x2950c1){if(_0x2950c1){return _0xcdb2d[_0x8ae6('0x19')](_0x311db2)[_0x8ae6('0x1b')](_0x2950c1);}};}function respondWithFilteredResult(_0x3a0f9d,_0x40e024){return function(_0x25663f){if(_0x25663f){var _0x3188d=typeof _0x40e024[_0x8ae6('0x1c')]===_0x8ae6('0x1d')&&typeof _0x40e024[_0x8ae6('0x1e')]===_0x8ae6('0x1d');var _0x4480f7=_0x25663f[_0x8ae6('0x1f')];var _0x29cb7d=_0x3188d?0x0:_0x40e024['offset'];var _0x4856aa=_0x3188d?_0x25663f[_0x8ae6('0x1f')]:_0x40e024[_0x8ae6('0x1c')]+_0x40e024['limit'];var _0x3350fa;if(_0x4856aa>=_0x4480f7){_0x4856aa=_0x4480f7;_0x3350fa=0xc8;}else{_0x3350fa=0xce;}_0x3a0f9d['status'](_0x3350fa);return _0x3a0f9d[_0x8ae6('0x20')](_0x8ae6('0x21'),_0x29cb7d+'-'+_0x4856aa+'/'+_0x4480f7)[_0x8ae6('0x1b')](_0x25663f);}return null;};}function patchUpdates(_0x497f2a){return function(_0x4bc561){try{jsonpatch[_0x8ae6('0x22')](_0x4bc561,_0x497f2a,!![]);}catch(_0x1d347b){return BPromise[_0x8ae6('0x23')](_0x1d347b);}return _0x4bc561[_0x8ae6('0x24')]();};}function saveUpdates(_0x3845b2,_0xbbb57f){return function(_0x596fa3){if(_0x596fa3){return _0x596fa3[_0x8ae6('0x25')](_0x3845b2)[_0x8ae6('0x26')](function(_0x2ee86c){return _0x2ee86c;});}return null;};}function removeEntity(_0x340936,_0x2cbe3b){return function(_0x557de0){if(_0x557de0){return _0x557de0['destroy']()[_0x8ae6('0x26')](function(){var _0xa6e371=_0x557de0[_0x8ae6('0x27')]({'plain':!![]});var _0x547c3d=_0x8ae6('0x28');return db[_0x8ae6('0x29')][_0x8ae6('0x2a')]({'where':{'type':_0x547c3d,'resourceId':_0xa6e371['id']}})[_0x8ae6('0x26')](function(){return _0x557de0;});})[_0x8ae6('0x26')](function(){_0x340936['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x483959,_0x5665f2){return function(_0x571d57){if(!_0x571d57){_0x483959[_0x8ae6('0x2b')](0x194);}return _0x571d57;};}function handleError(_0xbaee59,_0x411499){_0x411499=_0x411499||0x1f4;return function(_0x1654ad){logger[_0x8ae6('0x2c')](_0x1654ad[_0x8ae6('0x2d')]);if(_0x1654ad[_0x8ae6('0x2e')]){delete _0x1654ad[_0x8ae6('0x2e')];}_0xbaee59['status'](_0x411499)[_0x8ae6('0x2f')](_0x1654ad);};}exports[_0x8ae6('0x30')]=function(_0x4fe622,_0x1c0809){var _0x27d5a7={},_0x1f2aba={},_0x3f8552={'count':0x0,'rows':[]};var _0x7f4930=_[_0x8ae6('0x31')](db[_0x8ae6('0x32')][_0x8ae6('0x33')],function(_0x2d6af9){return{'name':_0x2d6af9[_0x8ae6('0x34')],'type':_0x2d6af9['type'][_0x8ae6('0x35')]};});_0x1f2aba[_0x8ae6('0x36')]=_[_0x8ae6('0x31')](_0x7f4930,_0x8ae6('0x2e'));_0x1f2aba[_0x8ae6('0x37')]=_[_0x8ae6('0x38')](_0x4fe622['query']);_0x1f2aba[_0x8ae6('0x39')]=_['intersection'](_0x1f2aba[_0x8ae6('0x36')],_0x1f2aba[_0x8ae6('0x37')]);_0x27d5a7['attributes']=_[_0x8ae6('0x3a')](_0x1f2aba['model'],qs[_0x8ae6('0x3b')](_0x4fe622[_0x8ae6('0x37')]['fields']));_0x27d5a7[_0x8ae6('0x3c')]=_0x27d5a7['attributes'][_0x8ae6('0x3d')]?_0x27d5a7['attributes']:_0x1f2aba[_0x8ae6('0x36')];if(!_0x4fe622[_0x8ae6('0x37')]['hasOwnProperty'](_0x8ae6('0x3e'))){_0x27d5a7[_0x8ae6('0x1e')]=qs[_0x8ae6('0x1e')](_0x4fe622[_0x8ae6('0x37')]['limit']);_0x27d5a7[_0x8ae6('0x1c')]=qs[_0x8ae6('0x1c')](_0x4fe622[_0x8ae6('0x37')][_0x8ae6('0x1c')]);}_0x27d5a7[_0x8ae6('0x3f')]=qs[_0x8ae6('0x40')](_0x4fe622[_0x8ae6('0x37')]['sort']);_0x27d5a7[_0x8ae6('0x41')]=qs['filters'](_[_0x8ae6('0x42')](_0x4fe622['query'],_0x1f2aba['filters']),_0x7f4930);if(_0x4fe622[_0x8ae6('0x37')][_0x8ae6('0x43')]){_0x27d5a7[_0x8ae6('0x41')]=_[_0x8ae6('0x44')](_0x27d5a7['where'],{'$or':[{'key':{'$like':'%'+_0x4fe622['query'][_0x8ae6('0x43')]+'%'}},{'value':{'$like':'%'+_0x4fe622[_0x8ae6('0x37')][_0x8ae6('0x43')]+'%'}}]});}_0x27d5a7=_[_0x8ae6('0x44')]({},_0x27d5a7,_0x4fe622[_0x8ae6('0x45')]);var _0x328696={'where':_0x27d5a7[_0x8ae6('0x41')]};return db['CannedAnswer'][_0x8ae6('0x1f')](_0x328696)[_0x8ae6('0x26')](function(_0x9cf9b9){_0x3f8552[_0x8ae6('0x1f')]=_0x9cf9b9;if(_0x4fe622[_0x8ae6('0x37')][_0x8ae6('0x46')]){_0x27d5a7['include']=[{'all':!![]}];}return db[_0x8ae6('0x32')][_0x8ae6('0x47')](_0x27d5a7);})[_0x8ae6('0x26')](function(_0x7c3f97){_0x3f8552['rows']=_0x7c3f97;return _0x3f8552;})[_0x8ae6('0x26')](respondWithFilteredResult(_0x1c0809,_0x27d5a7))[_0x8ae6('0x48')](handleError(_0x1c0809,null));};exports[_0x8ae6('0x49')]=function(_0x560c9c,_0x4da806){var _0x2916ea={'raw':!![],'where':{'id':_0x560c9c[_0x8ae6('0x4a')]['id']}},_0x35e0af={};_0x35e0af['model']=_[_0x8ae6('0x38')](db['CannedAnswer'][_0x8ae6('0x33')]);_0x35e0af['query']=_[_0x8ae6('0x38')](_0x560c9c[_0x8ae6('0x37')]);_0x35e0af['filters']=_['intersection'](_0x35e0af[_0x8ae6('0x36')],_0x35e0af[_0x8ae6('0x37')]);_0x2916ea['attributes']=_[_0x8ae6('0x3a')](_0x35e0af['model'],qs[_0x8ae6('0x3b')](_0x560c9c[_0x8ae6('0x37')][_0x8ae6('0x3b')]));_0x2916ea[_0x8ae6('0x3c')]=_0x2916ea[_0x8ae6('0x3c')][_0x8ae6('0x3d')]?_0x2916ea['attributes']:_0x35e0af[_0x8ae6('0x36')];if(_0x560c9c[_0x8ae6('0x37')][_0x8ae6('0x46')]){_0x2916ea[_0x8ae6('0x4b')]=[{'all':!![]}];}_0x2916ea=_[_0x8ae6('0x44')]({},_0x2916ea,_0x560c9c['options']);return db[_0x8ae6('0x32')][_0x8ae6('0x4c')](_0x2916ea)[_0x8ae6('0x26')](handleEntityNotFound(_0x4da806,null))[_0x8ae6('0x26')](respondWithResult(_0x4da806,null))[_0x8ae6('0x48')](handleError(_0x4da806,null));};exports[_0x8ae6('0x25')]=function(_0x7b7cc8,_0x22ae4b){if(_0x7b7cc8['body']['id']){delete _0x7b7cc8[_0x8ae6('0x4d')]['id'];}return db[_0x8ae6('0x32')][_0x8ae6('0x4c')]({'where':{'id':_0x7b7cc8['params']['id']}})[_0x8ae6('0x26')](handleEntityNotFound(_0x22ae4b,null))[_0x8ae6('0x26')](saveUpdates(_0x7b7cc8[_0x8ae6('0x4d')],null))[_0x8ae6('0x26')](respondWithResult(_0x22ae4b,null))[_0x8ae6('0x48')](handleError(_0x22ae4b,null));};exports['destroy']=function(_0x1214ca,_0x2305f6){return db[_0x8ae6('0x32')]['find']({'where':{'id':_0x1214ca[_0x8ae6('0x4a')]['id']}})[_0x8ae6('0x26')](handleEntityNotFound(_0x2305f6,null))[_0x8ae6('0x26')](removeEntity(_0x2305f6,null))['catch'](handleError(_0x2305f6,null));};exports[_0x8ae6('0x4e')]=function(_0x2bef5e,_0x416709){var _0x3fbefa={'key':_0x2bef5e[_0x8ae6('0x4d')]['key']};if(_0x2bef5e[_0x8ae6('0x4d')][_0x8ae6('0x4f')]){_0x3fbefa[_0x8ae6('0x4f')]=_0x2bef5e[_0x8ae6('0x4d')]['MailAccountId'];}else if(_0x2bef5e[_0x8ae6('0x4d')]['SmsAccountId']){_0x3fbefa[_0x8ae6('0x50')]=_0x2bef5e[_0x8ae6('0x4d')][_0x8ae6('0x50')];}else if(_0x2bef5e[_0x8ae6('0x4d')]['OpenchannelAccountId']){_0x3fbefa[_0x8ae6('0x51')]=_0x2bef5e[_0x8ae6('0x4d')]['OpenchannelAccountId'];}else if(_0x2bef5e[_0x8ae6('0x4d')][_0x8ae6('0x52')]){_0x3fbefa[_0x8ae6('0x52')]=_0x2bef5e['body']['ChatWebsiteId'];}return db[_0x8ae6('0x32')][_0x8ae6('0x4c')]({'where':_0x3fbefa})[_0x8ae6('0x26')](function(_0x56efcc){if(_0x56efcc){throw new db[(_0x8ae6('0x53'))][(_0x8ae6('0x54'))]('The\x20inserted\x20key\x20already\x20exists.');}return db[_0x8ae6('0x32')][_0x8ae6('0x4e')](_0x2bef5e['body']);})[_0x8ae6('0x26')](function(_0x6320b7){var _0x234dd9=_0x2bef5e[_0x8ae6('0x55')][_0x8ae6('0x27')]({'plain':!![]});if(!_0x234dd9)throw new Error(_0x8ae6('0x56'));if(_0x234dd9[_0x8ae6('0x57')]===_0x8ae6('0x55')){var _0x3d5372=_0x6320b7[_0x8ae6('0x27')]({'plain':!![]});return db[_0x8ae6('0x58')][_0x8ae6('0x4c')]({'where':{'name':_0x8ae6('0x28'),'userProfileId':_0x234dd9[_0x8ae6('0x59')]},'raw':!![]})['then'](function(_0x121f7a){if(_0x121f7a&&_0x121f7a[_0x8ae6('0x5a')]===0x0){return db[_0x8ae6('0x29')][_0x8ae6('0x4e')]({'name':_0x3d5372[_0x8ae6('0x2e')],'resourceId':_0x3d5372['id'],'type':_0x121f7a[_0x8ae6('0x2e')],'sectionId':_0x121f7a['id']},{})[_0x8ae6('0x26')](function(){return _0x6320b7;});}else{return _0x6320b7;}})[_0x8ae6('0x48')](function(_0x5eeccc){logger[_0x8ae6('0x2c')](_0x8ae6('0x5b'),_0x5eeccc);throw _0x5eeccc;});}return _0x6320b7;})[_0x8ae6('0x26')](respondWithResult(_0x416709,0xc9))['catch'](handleError(_0x416709,null));};