a800c0b24fa90f06211e4f12e2f71137d5a2b4d4
[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 _0x9791=['attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','options','includeAll','findAll','rows','show','params','keys','find','catch','body','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','ValidationError','The\x20inserted\x20key\x20already\x20exists.','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','fast-json-patch','request-promise','moment','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range','save','update','then','destroy','get','CannedAnswers','UserProfileResource','error','stack','name','send','index','CannedAnswer','rawAttributes','fieldName','type','key','model','map','query','filters','intersection'];(function(_0x46527b,_0x4faf52){var _0x3cac19=function(_0x2c70bb){while(--_0x2c70bb){_0x46527b['push'](_0x46527b['shift']());}};_0x3cac19(++_0x4faf52);}(_0x9791,0x180));var _0x1979=function(_0x5e90e3,_0x37a3cf){_0x5e90e3=_0x5e90e3-0x0;var _0x487022=_0x9791[_0x5e90e3];return _0x487022;};'use strict';var emlformat=require(_0x1979('0x0'));var rimraf=require(_0x1979('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x1979('0x2'));var rp=require(_0x1979('0x3'));var moment=require(_0x1979('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x1979('0x5'));var sox=require(_0x1979('0x6'));var csv=require(_0x1979('0x7'));var ejs=require(_0x1979('0x8'));var fs=require('fs');var fs_extra=require(_0x1979('0x9'));var _=require(_0x1979('0xa'));var squel=require(_0x1979('0xb'));var crypto=require(_0x1979('0xc'));var jsforce=require(_0x1979('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x1979('0x7'));var querystring=require(_0x1979('0xe'));var Papa=require('papaparse');var Redis=require(_0x1979('0xf'));var authService=require(_0x1979('0x10'));var qs=require(_0x1979('0x11'));var as=require(_0x1979('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x1979('0x13'))(_0x1979('0x14'));var utils=require(_0x1979('0x15'));var config=require(_0x1979('0x16'));var licenseUtil=require(_0x1979('0x17'));var db=require(_0x1979('0x18'))['db'];function respondWithStatusCode(_0x5c6c61,_0x19ad1a){_0x19ad1a=_0x19ad1a||0xcc;return function(_0x1b5850){if(_0x1b5850){return _0x5c6c61[_0x1979('0x19')](_0x19ad1a);}return _0x5c6c61[_0x1979('0x1a')](_0x19ad1a)[_0x1979('0x1b')]();};}function respondWithResult(_0x3505d7,_0x242318){_0x242318=_0x242318||0xc8;return function(_0x3f3629){if(_0x3f3629){return _0x3505d7[_0x1979('0x1a')](_0x242318)[_0x1979('0x1c')](_0x3f3629);}};}function respondWithFilteredResult(_0x2a009f,_0x2bf564){return function(_0x2c896b){if(_0x2c896b){var _0xe70144=typeof _0x2bf564['offset']===_0x1979('0x1d')&&typeof _0x2bf564[_0x1979('0x1e')]===_0x1979('0x1d');var _0x529904=_0x2c896b[_0x1979('0x1f')];var _0x4af683=_0xe70144?0x0:_0x2bf564[_0x1979('0x20')];var _0xc9c574=_0xe70144?_0x2c896b[_0x1979('0x1f')]:_0x2bf564[_0x1979('0x20')]+_0x2bf564[_0x1979('0x1e')];var _0x5c4129;if(_0xc9c574>=_0x529904){_0xc9c574=_0x529904;_0x5c4129=0xc8;}else{_0x5c4129=0xce;}_0x2a009f['status'](_0x5c4129);return _0x2a009f['set'](_0x1979('0x21'),_0x4af683+'-'+_0xc9c574+'/'+_0x529904)[_0x1979('0x1c')](_0x2c896b);}return null;};}function patchUpdates(_0x1b326a){return function(_0x55d3ac){try{jsonpatch['apply'](_0x55d3ac,_0x1b326a,!![]);}catch(_0x44d560){return BPromise['reject'](_0x44d560);}return _0x55d3ac[_0x1979('0x22')]();};}function saveUpdates(_0x3ebc59,_0x1b46cf){return function(_0x19cb99){if(_0x19cb99){return _0x19cb99[_0x1979('0x23')](_0x3ebc59)[_0x1979('0x24')](function(_0x355892){return _0x355892;});}return null;};}function removeEntity(_0x446251,_0x1d757b){return function(_0x48dc67){if(_0x48dc67){return _0x48dc67[_0x1979('0x25')]()[_0x1979('0x24')](function(){var _0xaf1c18=_0x48dc67[_0x1979('0x26')]({'plain':!![]});var _0x1f9327=_0x1979('0x27');return db[_0x1979('0x28')][_0x1979('0x25')]({'where':{'type':_0x1f9327,'resourceId':_0xaf1c18['id']}})[_0x1979('0x24')](function(){return _0x48dc67;});})[_0x1979('0x24')](function(){_0x446251[_0x1979('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x65556c,_0x577070){return function(_0x3899f1){if(!_0x3899f1){_0x65556c['sendStatus'](0x194);}return _0x3899f1;};}function handleError(_0xbb9687,_0x5faf67){_0x5faf67=_0x5faf67||0x1f4;return function(_0x2fb2eb){logger[_0x1979('0x29')](_0x2fb2eb[_0x1979('0x2a')]);if(_0x2fb2eb[_0x1979('0x2b')]){delete _0x2fb2eb[_0x1979('0x2b')];}_0xbb9687[_0x1979('0x1a')](_0x5faf67)[_0x1979('0x2c')](_0x2fb2eb);};}exports[_0x1979('0x2d')]=function(_0xf8795,_0x1e5f2f){var _0x2e9128={},_0x3d89a9={},_0x21d34f={'count':0x0,'rows':[]};var _0x4e8b6a=_['map'](db[_0x1979('0x2e')][_0x1979('0x2f')],function(_0x57bd90){return{'name':_0x57bd90[_0x1979('0x30')],'type':_0x57bd90[_0x1979('0x31')][_0x1979('0x32')]};});_0x3d89a9[_0x1979('0x33')]=_[_0x1979('0x34')](_0x4e8b6a,_0x1979('0x2b'));_0x3d89a9[_0x1979('0x35')]=_['keys'](_0xf8795[_0x1979('0x35')]);_0x3d89a9[_0x1979('0x36')]=_[_0x1979('0x37')](_0x3d89a9[_0x1979('0x33')],_0x3d89a9[_0x1979('0x35')]);_0x2e9128[_0x1979('0x38')]=_[_0x1979('0x37')](_0x3d89a9[_0x1979('0x33')],qs['fields'](_0xf8795[_0x1979('0x35')][_0x1979('0x39')]));_0x2e9128[_0x1979('0x38')]=_0x2e9128[_0x1979('0x38')][_0x1979('0x3a')]?_0x2e9128['attributes']:_0x3d89a9[_0x1979('0x33')];if(!_0xf8795[_0x1979('0x35')]['hasOwnProperty'](_0x1979('0x3b'))){_0x2e9128[_0x1979('0x1e')]=qs[_0x1979('0x1e')](_0xf8795[_0x1979('0x35')][_0x1979('0x1e')]);_0x2e9128['offset']=qs[_0x1979('0x20')](_0xf8795[_0x1979('0x35')]['offset']);}_0x2e9128[_0x1979('0x3c')]=qs['sort'](_0xf8795['query'][_0x1979('0x3d')]);_0x2e9128[_0x1979('0x3e')]=qs['filters'](_[_0x1979('0x3f')](_0xf8795[_0x1979('0x35')],_0x3d89a9[_0x1979('0x36')]),_0x4e8b6a);if(_0xf8795[_0x1979('0x35')][_0x1979('0x40')]){_0x2e9128['where']=_[_0x1979('0x41')](_0x2e9128['where'],{'$or':[{'key':{'$like':'%'+_0xf8795['query'][_0x1979('0x40')]+'%'}},{'value':{'$like':'%'+_0xf8795[_0x1979('0x35')][_0x1979('0x40')]+'%'}}]});}_0x2e9128=_[_0x1979('0x41')]({},_0x2e9128,_0xf8795[_0x1979('0x42')]);var _0x32aa5c={'where':_0x2e9128['where']};return db[_0x1979('0x2e')][_0x1979('0x1f')](_0x32aa5c)[_0x1979('0x24')](function(_0x1e0a52){_0x21d34f[_0x1979('0x1f')]=_0x1e0a52;if(_0xf8795[_0x1979('0x35')][_0x1979('0x43')]){_0x2e9128['include']=[{'all':!![]}];}return db[_0x1979('0x2e')][_0x1979('0x44')](_0x2e9128);})[_0x1979('0x24')](function(_0xb1abb2){_0x21d34f[_0x1979('0x45')]=_0xb1abb2;return _0x21d34f;})[_0x1979('0x24')](respondWithFilteredResult(_0x1e5f2f,_0x2e9128))['catch'](handleError(_0x1e5f2f,null));};exports[_0x1979('0x46')]=function(_0xaf0cf4,_0x16241a){var _0x34a3b0={'raw':!![],'where':{'id':_0xaf0cf4[_0x1979('0x47')]['id']}},_0x52bc2c={};_0x52bc2c[_0x1979('0x33')]=_[_0x1979('0x48')](db[_0x1979('0x2e')][_0x1979('0x2f')]);_0x52bc2c[_0x1979('0x35')]=_[_0x1979('0x48')](_0xaf0cf4['query']);_0x52bc2c[_0x1979('0x36')]=_[_0x1979('0x37')](_0x52bc2c[_0x1979('0x33')],_0x52bc2c['query']);_0x34a3b0[_0x1979('0x38')]=_[_0x1979('0x37')](_0x52bc2c['model'],qs[_0x1979('0x39')](_0xaf0cf4['query'][_0x1979('0x39')]));_0x34a3b0[_0x1979('0x38')]=_0x34a3b0[_0x1979('0x38')][_0x1979('0x3a')]?_0x34a3b0[_0x1979('0x38')]:_0x52bc2c['model'];if(_0xaf0cf4[_0x1979('0x35')][_0x1979('0x43')]){_0x34a3b0['include']=[{'all':!![]}];}_0x34a3b0=_[_0x1979('0x41')]({},_0x34a3b0,_0xaf0cf4[_0x1979('0x42')]);return db[_0x1979('0x2e')][_0x1979('0x49')](_0x34a3b0)[_0x1979('0x24')](handleEntityNotFound(_0x16241a,null))[_0x1979('0x24')](respondWithResult(_0x16241a,null))[_0x1979('0x4a')](handleError(_0x16241a,null));};exports[_0x1979('0x23')]=function(_0x244a5e,_0x47caab){if(_0x244a5e[_0x1979('0x4b')]['id']){delete _0x244a5e[_0x1979('0x4b')]['id'];}return db[_0x1979('0x2e')][_0x1979('0x49')]({'where':{'id':_0x244a5e[_0x1979('0x47')]['id']}})[_0x1979('0x24')](handleEntityNotFound(_0x47caab,null))['then'](saveUpdates(_0x244a5e[_0x1979('0x4b')],null))['then'](respondWithResult(_0x47caab,null))['catch'](handleError(_0x47caab,null));};exports['destroy']=function(_0x1d09eb,_0x4959f9){return db[_0x1979('0x2e')][_0x1979('0x49')]({'where':{'id':_0x1d09eb[_0x1979('0x47')]['id']}})[_0x1979('0x24')](handleEntityNotFound(_0x4959f9,null))[_0x1979('0x24')](removeEntity(_0x4959f9,null))[_0x1979('0x4a')](handleError(_0x4959f9,null));};exports['create']=function(_0x1f9774,_0x20adc0){var _0x5a58bc={'key':_0x1f9774[_0x1979('0x4b')]['key']};if(_0x1f9774[_0x1979('0x4b')][_0x1979('0x4c')]){_0x5a58bc[_0x1979('0x4c')]=_0x1f9774[_0x1979('0x4b')][_0x1979('0x4c')];}else if(_0x1f9774['body']['SmsAccountId']){_0x5a58bc['SmsAccountId']=_0x1f9774['body'][_0x1979('0x4d')];}else if(_0x1f9774[_0x1979('0x4b')][_0x1979('0x4e')]){_0x5a58bc[_0x1979('0x4e')]=_0x1f9774[_0x1979('0x4b')]['OpenchannelAccountId'];}else if(_0x1f9774[_0x1979('0x4b')][_0x1979('0x4f')]){_0x5a58bc['ChatWebsiteId']=_0x1f9774[_0x1979('0x4b')][_0x1979('0x4f')];}return db['CannedAnswer']['find']({'where':_0x5a58bc})[_0x1979('0x24')](function(_0x242bcb){if(_0x242bcb){throw new db['Sequelize'][(_0x1979('0x50'))](_0x1979('0x51'));}return db['CannedAnswer'][_0x1979('0x52')](_0x1f9774['body']);})[_0x1979('0x24')](function(_0x22f97d){var _0x67b4c6=_0x1f9774[_0x1979('0x53')][_0x1979('0x26')]({'plain':!![]});if(!_0x67b4c6)throw new Error(_0x1979('0x54'));if(_0x67b4c6['role']===_0x1979('0x53')){var _0x4158cf=_0x22f97d['get']({'plain':!![]});return db['UserProfileSection'][_0x1979('0x49')]({'where':{'name':_0x1979('0x27'),'userProfileId':_0x67b4c6[_0x1979('0x55')]},'raw':!![]})[_0x1979('0x24')](function(_0x2a1e96){if(_0x2a1e96&&_0x2a1e96[_0x1979('0x56')]===0x0){return db[_0x1979('0x28')][_0x1979('0x52')]({'name':_0x4158cf[_0x1979('0x2b')],'resourceId':_0x4158cf['id'],'type':_0x2a1e96['name'],'sectionId':_0x2a1e96['id']},{})[_0x1979('0x24')](function(){return _0x22f97d;});}else{return _0x22f97d;}})[_0x1979('0x4a')](function(_0x56fba7){logger['error'](_0x1979('0x57'),_0x56fba7);throw _0x56fba7;});}return _0x22f97d;})[_0x1979('0x24')](respondWithResult(_0x20adc0,0xc9))[_0x1979('0x4a')](handleError(_0x20adc0,null));};