Built motion from commit ddca4d0d.|2.5.47
[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 _0x279a=['count','json','apply','reject','save','update','then','get','UserProfileResource','destroy','error','name','send','index','CannedAnswer','rawAttributes','fieldName','key','model','map','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','filter','options','includeAll','include','findAll','rows','catch','show','params','find','body','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','ValidationError','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','CannedAnswers','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','zip-dir','request-promise','moment','util','path','sox','to-csv','lodash','squel','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit'];(function(_0x394555,_0x54f238){var _0x4f6a66=function(_0x3b6301){while(--_0x3b6301){_0x394555['push'](_0x394555['shift']());}};_0x4f6a66(++_0x54f238);}(_0x279a,0x182));var _0xa279=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x279a[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xa279('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa279('0x1'));var moment=require(_0xa279('0x2'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xa279('0x3'));var path=require(_0xa279('0x4'));var sox=require(_0xa279('0x5'));var csv=require(_0xa279('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xa279('0x7'));var squel=require(_0xa279('0x8'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xa279('0x6'));var querystring=require('querystring');var Papa=require(_0xa279('0x9'));var Redis=require(_0xa279('0xa'));var authService=require('../../components/auth/service');var qs=require(_0xa279('0xb'));var as=require(_0xa279('0xc'));var hardwareService=require(_0xa279('0xd'));var logger=require(_0xa279('0xe'))(_0xa279('0xf'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xa279('0x10'));var db=require(_0xa279('0x11'))['db'];function respondWithStatusCode(_0x683ffe,_0x1fbafa){_0x1fbafa=_0x1fbafa||0xcc;return function(_0x3013df){if(_0x3013df){return _0x683ffe[_0xa279('0x12')](_0x1fbafa);}return _0x683ffe[_0xa279('0x13')](_0x1fbafa)[_0xa279('0x14')]();};}function respondWithResult(_0x10237e,_0x24bde6){_0x24bde6=_0x24bde6||0xc8;return function(_0x26d6b9){if(_0x26d6b9){return _0x10237e[_0xa279('0x13')](_0x24bde6)['json'](_0x26d6b9);}};}function respondWithFilteredResult(_0x150946,_0x1a42ab){return function(_0xa7cccb){if(_0xa7cccb){var _0x5e301d=typeof _0x1a42ab[_0xa279('0x15')]===_0xa279('0x16')&&typeof _0x1a42ab[_0xa279('0x17')]===_0xa279('0x16');var _0x4970ed=_0xa7cccb[_0xa279('0x18')];var _0x1a2da2=_0x5e301d?0x0:_0x1a42ab[_0xa279('0x15')];var _0x3b0c96=_0x5e301d?_0xa7cccb[_0xa279('0x18')]:_0x1a42ab[_0xa279('0x15')]+_0x1a42ab[_0xa279('0x17')];var _0x25a11c;if(_0x3b0c96>=_0x4970ed){_0x3b0c96=_0x4970ed;_0x25a11c=0xc8;}else{_0x25a11c=0xce;}_0x150946[_0xa279('0x13')](_0x25a11c);return _0x150946['set']('Content-Range',_0x1a2da2+'-'+_0x3b0c96+'/'+_0x4970ed)[_0xa279('0x19')](_0xa7cccb);}return null;};}function patchUpdates(_0x284a23){return function(_0x30a86a){try{jsonpatch[_0xa279('0x1a')](_0x30a86a,_0x284a23,!![]);}catch(_0x310aa6){return BPromise[_0xa279('0x1b')](_0x310aa6);}return _0x30a86a[_0xa279('0x1c')]();};}function saveUpdates(_0x253c6c,_0x34d8e4){return function(_0x27a0b4){if(_0x27a0b4){return _0x27a0b4[_0xa279('0x1d')](_0x253c6c)['then'](function(_0x1f2f18){return _0x1f2f18;});}return null;};}function removeEntity(_0x49b408,_0x39bf8b){return function(_0x48cbc9){if(_0x48cbc9){return _0x48cbc9['destroy']()[_0xa279('0x1e')](function(){var _0x359d4b=_0x48cbc9[_0xa279('0x1f')]({'plain':!![]});var _0x57b0d6='CannedAnswers';return db[_0xa279('0x20')][_0xa279('0x21')]({'where':{'type':_0x57b0d6,'resourceId':_0x359d4b['id']}})['then'](function(){return _0x48cbc9;});})['then'](function(){_0x49b408[_0xa279('0x13')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2eb276,_0x581b28){return function(_0x371e97){if(!_0x371e97){_0x2eb276[_0xa279('0x12')](0x194);}return _0x371e97;};}function handleError(_0x2365f5,_0x2dc085){_0x2dc085=_0x2dc085||0x1f4;return function(_0x575751){logger[_0xa279('0x22')](_0x575751['stack']);if(_0x575751[_0xa279('0x23')]){delete _0x575751[_0xa279('0x23')];}_0x2365f5[_0xa279('0x13')](_0x2dc085)[_0xa279('0x24')](_0x575751);};}exports[_0xa279('0x25')]=function(_0x1d7f90,_0x4b04d4){var _0x4df4f8={},_0x2f5d7a={},_0x26fe73={'count':0x0,'rows':[]};var _0x213f9b=_['map'](db[_0xa279('0x26')][_0xa279('0x27')],function(_0x356071){return{'name':_0x356071[_0xa279('0x28')],'type':_0x356071['type'][_0xa279('0x29')]};});_0x2f5d7a[_0xa279('0x2a')]=_[_0xa279('0x2b')](_0x213f9b,_0xa279('0x23'));_0x2f5d7a['query']=_[_0xa279('0x2c')](_0x1d7f90[_0xa279('0x2d')]);_0x2f5d7a[_0xa279('0x2e')]=_[_0xa279('0x2f')](_0x2f5d7a[_0xa279('0x2a')],_0x2f5d7a[_0xa279('0x2d')]);_0x4df4f8[_0xa279('0x30')]=_['intersection'](_0x2f5d7a[_0xa279('0x2a')],qs[_0xa279('0x31')](_0x1d7f90[_0xa279('0x2d')][_0xa279('0x31')]));_0x4df4f8[_0xa279('0x30')]=_0x4df4f8[_0xa279('0x30')][_0xa279('0x32')]?_0x4df4f8[_0xa279('0x30')]:_0x2f5d7a['model'];if(!_0x1d7f90[_0xa279('0x2d')][_0xa279('0x33')](_0xa279('0x34'))){_0x4df4f8[_0xa279('0x17')]=qs[_0xa279('0x17')](_0x1d7f90['query'][_0xa279('0x17')]);_0x4df4f8[_0xa279('0x15')]=qs['offset'](_0x1d7f90[_0xa279('0x2d')][_0xa279('0x15')]);}_0x4df4f8['order']=qs[_0xa279('0x35')](_0x1d7f90[_0xa279('0x2d')][_0xa279('0x35')]);_0x4df4f8[_0xa279('0x36')]=qs[_0xa279('0x2e')](_[_0xa279('0x37')](_0x1d7f90[_0xa279('0x2d')],_0x2f5d7a[_0xa279('0x2e')]),_0x213f9b);if(_0x1d7f90[_0xa279('0x2d')]['filter']){_0x4df4f8[_0xa279('0x36')]=_[_0xa279('0x38')](_0x4df4f8[_0xa279('0x36')],{'$or':[{'key':{'$like':'%'+_0x1d7f90[_0xa279('0x2d')][_0xa279('0x39')]+'%'}},{'value':{'$like':'%'+_0x1d7f90[_0xa279('0x2d')][_0xa279('0x39')]+'%'}}]});}_0x4df4f8=_[_0xa279('0x38')]({},_0x4df4f8,_0x1d7f90[_0xa279('0x3a')]);var _0x281ebc={'where':_0x4df4f8[_0xa279('0x36')]};return db[_0xa279('0x26')][_0xa279('0x18')](_0x281ebc)[_0xa279('0x1e')](function(_0x22db83){_0x26fe73[_0xa279('0x18')]=_0x22db83;if(_0x1d7f90['query'][_0xa279('0x3b')]){_0x4df4f8[_0xa279('0x3c')]=[{'all':!![]}];}return db[_0xa279('0x26')][_0xa279('0x3d')](_0x4df4f8);})['then'](function(_0xb6aea7){_0x26fe73[_0xa279('0x3e')]=_0xb6aea7;return _0x26fe73;})[_0xa279('0x1e')](respondWithFilteredResult(_0x4b04d4,_0x4df4f8))[_0xa279('0x3f')](handleError(_0x4b04d4,null));};exports[_0xa279('0x40')]=function(_0x1c48e5,_0x4e04a6){var _0x5cc415={'raw':!![],'where':{'id':_0x1c48e5[_0xa279('0x41')]['id']}},_0x5b1ace={};_0x5b1ace[_0xa279('0x2a')]=_[_0xa279('0x2c')](db[_0xa279('0x26')]['rawAttributes']);_0x5b1ace[_0xa279('0x2d')]=_[_0xa279('0x2c')](_0x1c48e5[_0xa279('0x2d')]);_0x5b1ace['filters']=_[_0xa279('0x2f')](_0x5b1ace['model'],_0x5b1ace['query']);_0x5cc415[_0xa279('0x30')]=_['intersection'](_0x5b1ace[_0xa279('0x2a')],qs['fields'](_0x1c48e5[_0xa279('0x2d')]['fields']));_0x5cc415['attributes']=_0x5cc415[_0xa279('0x30')][_0xa279('0x32')]?_0x5cc415['attributes']:_0x5b1ace[_0xa279('0x2a')];if(_0x1c48e5[_0xa279('0x2d')]['includeAll']){_0x5cc415['include']=[{'all':!![]}];}_0x5cc415=_[_0xa279('0x38')]({},_0x5cc415,_0x1c48e5['options']);return db[_0xa279('0x26')][_0xa279('0x42')](_0x5cc415)[_0xa279('0x1e')](handleEntityNotFound(_0x4e04a6,null))[_0xa279('0x1e')](respondWithResult(_0x4e04a6,null))[_0xa279('0x3f')](handleError(_0x4e04a6,null));};exports[_0xa279('0x1d')]=function(_0x1aadaa,_0x1afcd4){if(_0x1aadaa[_0xa279('0x43')]['id']){delete _0x1aadaa[_0xa279('0x43')]['id'];}return db[_0xa279('0x26')][_0xa279('0x42')]({'where':{'id':_0x1aadaa[_0xa279('0x41')]['id']}})[_0xa279('0x1e')](handleEntityNotFound(_0x1afcd4,null))['then'](saveUpdates(_0x1aadaa[_0xa279('0x43')],null))[_0xa279('0x1e')](respondWithResult(_0x1afcd4,null))[_0xa279('0x3f')](handleError(_0x1afcd4,null));};exports[_0xa279('0x21')]=function(_0x174744,_0x56ed3e){return db['CannedAnswer']['find']({'where':{'id':_0x174744[_0xa279('0x41')]['id']}})['then'](handleEntityNotFound(_0x56ed3e,null))[_0xa279('0x1e')](removeEntity(_0x56ed3e,null))[_0xa279('0x3f')](handleError(_0x56ed3e,null));};exports[_0xa279('0x44')]=function(_0x469821,_0xd3e6fb){var _0x57b8f5={'key':_0x469821[_0xa279('0x43')][_0xa279('0x29')]};if(_0x469821[_0xa279('0x43')][_0xa279('0x45')]){_0x57b8f5[_0xa279('0x45')]=_0x469821[_0xa279('0x43')][_0xa279('0x45')];}else if(_0x469821['body']['SmsAccountId']){_0x57b8f5[_0xa279('0x46')]=_0x469821[_0xa279('0x43')][_0xa279('0x46')];}else if(_0x469821[_0xa279('0x43')][_0xa279('0x47')]){_0x57b8f5[_0xa279('0x47')]=_0x469821['body'][_0xa279('0x47')];}else if(_0x469821[_0xa279('0x43')][_0xa279('0x48')]){_0x57b8f5[_0xa279('0x48')]=_0x469821[_0xa279('0x43')][_0xa279('0x48')];}return db[_0xa279('0x26')][_0xa279('0x42')]({'where':_0x57b8f5})[_0xa279('0x1e')](function(_0x413fa9){if(_0x413fa9){throw new db['Sequelize'][(_0xa279('0x49'))]('The\x20inserted\x20key\x20already\x20exists.');}return db[_0xa279('0x26')][_0xa279('0x44')](_0x469821[_0xa279('0x43')]);})['then'](function(_0x4c6da4){var _0x132f5d=_0x469821['user']['get']({'plain':!![]});if(!_0x132f5d)throw new Error(_0xa279('0x4a'));if(_0x132f5d[_0xa279('0x4b')]===_0xa279('0x4c')){var _0x41d1cf=_0x4c6da4[_0xa279('0x1f')]({'plain':!![]});return db[_0xa279('0x4d')][_0xa279('0x42')]({'where':{'name':_0xa279('0x4e'),'userProfileId':_0x132f5d[_0xa279('0x4f')]},'raw':!![]})[_0xa279('0x1e')](function(_0x222faa){if(_0x222faa&&_0x222faa[_0xa279('0x50')]===0x0){return db[_0xa279('0x20')][_0xa279('0x44')]({'name':_0x41d1cf[_0xa279('0x23')],'resourceId':_0x41d1cf['id'],'type':_0x222faa[_0xa279('0x23')],'sectionId':_0x222faa['id']},{})['then'](function(){return _0x4c6da4;});}else{return _0x4c6da4;}})[_0xa279('0x3f')](function(_0x3a7c33){logger[_0xa279('0x22')](_0xa279('0x51'),_0x3a7c33);throw _0x3a7c33;});}return _0x4c6da4;})[_0xa279('0x1e')](respondWithResult(_0xd3e6fb,0xc9))[_0xa279('0x3f')](handleError(_0xd3e6fb,null));};