Built motion from commit 9d0783e6.|2.6.13
[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 _0xeb19=['undefined','limit','count','Content-Range','apply','reject','save','then','get','CannedAnswers','UserProfileResource','end','error','stack','name','send','index','CannedAnswer','rawAttributes','fieldName','type','model','map','query','keys','filters','intersection','attributes','fields','length','nolimit','order','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','params','find','update','body','create','key','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset'];(function(_0x234761,_0x598fff){var _0x501944=function(_0x310d44){while(--_0x310d44){_0x234761['push'](_0x234761['shift']());}};_0x501944(++_0x598fff);}(_0xeb19,0x14b));var _0x9eb1=function(_0x280405,_0x274b31){_0x280405=_0x280405-0x0;var _0x2db04d=_0xeb19[_0x280405];return _0x2db04d;};'use strict';var emlformat=require(_0x9eb1('0x0'));var rimraf=require(_0x9eb1('0x1'));var zipdir=require(_0x9eb1('0x2'));var jsonpatch=require(_0x9eb1('0x3'));var rp=require(_0x9eb1('0x4'));var moment=require(_0x9eb1('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x9eb1('0x6'));var util=require(_0x9eb1('0x7'));var path=require(_0x9eb1('0x8'));var sox=require(_0x9eb1('0x9'));var csv=require(_0x9eb1('0xa'));var ejs=require(_0x9eb1('0xb'));var fs=require('fs');var fs_extra=require(_0x9eb1('0xc'));var _=require(_0x9eb1('0xd'));var squel=require(_0x9eb1('0xe'));var crypto=require(_0x9eb1('0xf'));var jsforce=require(_0x9eb1('0x10'));var deskjs=require(_0x9eb1('0x11'));var toCsv=require(_0x9eb1('0xa'));var querystring=require(_0x9eb1('0x12'));var Papa=require('papaparse');var Redis=require(_0x9eb1('0x13'));var authService=require(_0x9eb1('0x14'));var qs=require(_0x9eb1('0x15'));var as=require(_0x9eb1('0x16'));var hardwareService=require(_0x9eb1('0x17'));var logger=require('../../config/logger')(_0x9eb1('0x18'));var utils=require(_0x9eb1('0x19'));var config=require(_0x9eb1('0x1a'));var licenseUtil=require(_0x9eb1('0x1b'));var db=require(_0x9eb1('0x1c'))['db'];function respondWithStatusCode(_0x5afc1c,_0x389d74){_0x389d74=_0x389d74||0xcc;return function(_0x294b4e){if(_0x294b4e){return _0x5afc1c[_0x9eb1('0x1d')](_0x389d74);}return _0x5afc1c[_0x9eb1('0x1e')](_0x389d74)['end']();};}function respondWithResult(_0x41e4a6,_0x454fd7){_0x454fd7=_0x454fd7||0xc8;return function(_0x42d7ce){if(_0x42d7ce){return _0x41e4a6[_0x9eb1('0x1e')](_0x454fd7)[_0x9eb1('0x1f')](_0x42d7ce);}};}function respondWithFilteredResult(_0x359983,_0xeb84fe){return function(_0x5ea477){if(_0x5ea477){var _0x26532f=typeof _0xeb84fe[_0x9eb1('0x20')]===_0x9eb1('0x21')&&typeof _0xeb84fe[_0x9eb1('0x22')]===_0x9eb1('0x21');var _0x44a7da=_0x5ea477[_0x9eb1('0x23')];var _0x5a7ab0=_0x26532f?0x0:_0xeb84fe[_0x9eb1('0x20')];var _0x1b9d55=_0x26532f?_0x5ea477[_0x9eb1('0x23')]:_0xeb84fe[_0x9eb1('0x20')]+_0xeb84fe[_0x9eb1('0x22')];var _0x233e5a;if(_0x1b9d55>=_0x44a7da){_0x1b9d55=_0x44a7da;_0x233e5a=0xc8;}else{_0x233e5a=0xce;}_0x359983[_0x9eb1('0x1e')](_0x233e5a);return _0x359983['set'](_0x9eb1('0x24'),_0x5a7ab0+'-'+_0x1b9d55+'/'+_0x44a7da)[_0x9eb1('0x1f')](_0x5ea477);}return null;};}function patchUpdates(_0x1ff109){return function(_0x432b33){try{jsonpatch[_0x9eb1('0x25')](_0x432b33,_0x1ff109,!![]);}catch(_0x5723b8){return BPromise[_0x9eb1('0x26')](_0x5723b8);}return _0x432b33[_0x9eb1('0x27')]();};}function saveUpdates(_0x455472,_0x33b3db){return function(_0x5e1c65){if(_0x5e1c65){return _0x5e1c65['update'](_0x455472)['then'](function(_0x4db916){return _0x4db916;});}return null;};}function removeEntity(_0x186b7b,_0xf948ab){return function(_0x2d0903){if(_0x2d0903){return _0x2d0903['destroy']()[_0x9eb1('0x28')](function(){var _0x10cd18=_0x2d0903[_0x9eb1('0x29')]({'plain':!![]});var _0x27fc4d=_0x9eb1('0x2a');return db[_0x9eb1('0x2b')]['destroy']({'where':{'type':_0x27fc4d,'resourceId':_0x10cd18['id']}})[_0x9eb1('0x28')](function(){return _0x2d0903;});})[_0x9eb1('0x28')](function(){_0x186b7b[_0x9eb1('0x1e')](0xcc)[_0x9eb1('0x2c')]();});}};}function handleEntityNotFound(_0x37950b,_0x1eac12){return function(_0x28d5bf){if(!_0x28d5bf){_0x37950b[_0x9eb1('0x1d')](0x194);}return _0x28d5bf;};}function handleError(_0x178670,_0x10b5be){_0x10b5be=_0x10b5be||0x1f4;return function(_0x23f41a){logger[_0x9eb1('0x2d')](_0x23f41a[_0x9eb1('0x2e')]);if(_0x23f41a[_0x9eb1('0x2f')]){delete _0x23f41a['name'];}_0x178670['status'](_0x10b5be)[_0x9eb1('0x30')](_0x23f41a);};}exports[_0x9eb1('0x31')]=function(_0x42c87a,_0x19861a){var _0x285997={},_0x46a3b3={},_0xa0e27f={'count':0x0,'rows':[]};var _0x19fba1=_['map'](db[_0x9eb1('0x32')][_0x9eb1('0x33')],function(_0x535f97){return{'name':_0x535f97[_0x9eb1('0x34')],'type':_0x535f97[_0x9eb1('0x35')]['key']};});_0x46a3b3[_0x9eb1('0x36')]=_[_0x9eb1('0x37')](_0x19fba1,'name');_0x46a3b3[_0x9eb1('0x38')]=_[_0x9eb1('0x39')](_0x42c87a[_0x9eb1('0x38')]);_0x46a3b3[_0x9eb1('0x3a')]=_[_0x9eb1('0x3b')](_0x46a3b3[_0x9eb1('0x36')],_0x46a3b3[_0x9eb1('0x38')]);_0x285997[_0x9eb1('0x3c')]=_['intersection'](_0x46a3b3[_0x9eb1('0x36')],qs[_0x9eb1('0x3d')](_0x42c87a[_0x9eb1('0x38')][_0x9eb1('0x3d')]));_0x285997[_0x9eb1('0x3c')]=_0x285997[_0x9eb1('0x3c')][_0x9eb1('0x3e')]?_0x285997['attributes']:_0x46a3b3[_0x9eb1('0x36')];if(!_0x42c87a[_0x9eb1('0x38')]['hasOwnProperty'](_0x9eb1('0x3f'))){_0x285997['limit']=qs[_0x9eb1('0x22')](_0x42c87a[_0x9eb1('0x38')][_0x9eb1('0x22')]);_0x285997[_0x9eb1('0x20')]=qs['offset'](_0x42c87a[_0x9eb1('0x38')][_0x9eb1('0x20')]);}_0x285997[_0x9eb1('0x40')]=qs['sort'](_0x42c87a['query']['sort']);_0x285997[_0x9eb1('0x41')]=qs['filters'](_[_0x9eb1('0x42')](_0x42c87a[_0x9eb1('0x38')],_0x46a3b3['filters']),_0x19fba1);if(_0x42c87a[_0x9eb1('0x38')][_0x9eb1('0x43')]){_0x285997['where']=_[_0x9eb1('0x44')](_0x285997['where'],{'$or':[{'key':{'$like':'%'+_0x42c87a['query'][_0x9eb1('0x43')]+'%'}},{'value':{'$like':'%'+_0x42c87a[_0x9eb1('0x38')][_0x9eb1('0x43')]+'%'}}]});}_0x285997=_[_0x9eb1('0x44')]({},_0x285997,_0x42c87a[_0x9eb1('0x45')]);var _0x194b45={'where':_0x285997[_0x9eb1('0x41')]};return db[_0x9eb1('0x32')]['count'](_0x194b45)['then'](function(_0x4c4c58){_0xa0e27f['count']=_0x4c4c58;if(_0x42c87a[_0x9eb1('0x38')][_0x9eb1('0x46')]){_0x285997[_0x9eb1('0x47')]=[{'all':!![]}];}return db[_0x9eb1('0x32')][_0x9eb1('0x48')](_0x285997);})[_0x9eb1('0x28')](function(_0x5b7ce1){_0xa0e27f[_0x9eb1('0x49')]=_0x5b7ce1;return _0xa0e27f;})[_0x9eb1('0x28')](respondWithFilteredResult(_0x19861a,_0x285997))[_0x9eb1('0x4a')](handleError(_0x19861a,null));};exports['show']=function(_0x282592,_0x3e91c1){var _0x230cca={'raw':!![],'where':{'id':_0x282592[_0x9eb1('0x4b')]['id']}},_0x19db26={};_0x19db26['model']=_[_0x9eb1('0x39')](db[_0x9eb1('0x32')]['rawAttributes']);_0x19db26[_0x9eb1('0x38')]=_[_0x9eb1('0x39')](_0x282592['query']);_0x19db26[_0x9eb1('0x3a')]=_[_0x9eb1('0x3b')](_0x19db26[_0x9eb1('0x36')],_0x19db26['query']);_0x230cca[_0x9eb1('0x3c')]=_[_0x9eb1('0x3b')](_0x19db26[_0x9eb1('0x36')],qs['fields'](_0x282592[_0x9eb1('0x38')][_0x9eb1('0x3d')]));_0x230cca[_0x9eb1('0x3c')]=_0x230cca['attributes']['length']?_0x230cca[_0x9eb1('0x3c')]:_0x19db26['model'];if(_0x282592[_0x9eb1('0x38')][_0x9eb1('0x46')]){_0x230cca['include']=[{'all':!![]}];}_0x230cca=_[_0x9eb1('0x44')]({},_0x230cca,_0x282592[_0x9eb1('0x45')]);return db[_0x9eb1('0x32')][_0x9eb1('0x4c')](_0x230cca)['then'](handleEntityNotFound(_0x3e91c1,null))[_0x9eb1('0x28')](respondWithResult(_0x3e91c1,null))[_0x9eb1('0x4a')](handleError(_0x3e91c1,null));};exports[_0x9eb1('0x4d')]=function(_0x52b4ab,_0x11635f){if(_0x52b4ab[_0x9eb1('0x4e')]['id']){delete _0x52b4ab[_0x9eb1('0x4e')]['id'];}return db[_0x9eb1('0x32')]['find']({'where':{'id':_0x52b4ab[_0x9eb1('0x4b')]['id']}})['then'](handleEntityNotFound(_0x11635f,null))['then'](saveUpdates(_0x52b4ab[_0x9eb1('0x4e')],null))[_0x9eb1('0x28')](respondWithResult(_0x11635f,null))['catch'](handleError(_0x11635f,null));};exports['destroy']=function(_0x892d12,_0xfc8016){return db[_0x9eb1('0x32')][_0x9eb1('0x4c')]({'where':{'id':_0x892d12[_0x9eb1('0x4b')]['id']}})[_0x9eb1('0x28')](handleEntityNotFound(_0xfc8016,null))['then'](removeEntity(_0xfc8016,null))['catch'](handleError(_0xfc8016,null));};exports[_0x9eb1('0x4f')]=function(_0x17f8ce,_0x1b75f0){var _0x1fbf03={'key':_0x17f8ce[_0x9eb1('0x4e')][_0x9eb1('0x50')]};if(_0x17f8ce[_0x9eb1('0x4e')][_0x9eb1('0x51')]){_0x1fbf03[_0x9eb1('0x51')]=_0x17f8ce[_0x9eb1('0x4e')]['MailAccountId'];}else if(_0x17f8ce[_0x9eb1('0x4e')][_0x9eb1('0x52')]){_0x1fbf03[_0x9eb1('0x52')]=_0x17f8ce[_0x9eb1('0x4e')][_0x9eb1('0x52')];}else if(_0x17f8ce[_0x9eb1('0x4e')][_0x9eb1('0x53')]){_0x1fbf03['OpenchannelAccountId']=_0x17f8ce['body'][_0x9eb1('0x53')];}else if(_0x17f8ce[_0x9eb1('0x4e')][_0x9eb1('0x54')]){_0x1fbf03[_0x9eb1('0x54')]=_0x17f8ce[_0x9eb1('0x4e')]['ChatWebsiteId'];}return db[_0x9eb1('0x32')][_0x9eb1('0x4c')]({'where':_0x1fbf03})[_0x9eb1('0x28')](function(_0xff2305){if(_0xff2305){throw new db['Sequelize'][(_0x9eb1('0x55'))](_0x9eb1('0x56'));}return db['CannedAnswer'][_0x9eb1('0x4f')](_0x17f8ce[_0x9eb1('0x4e')]);})[_0x9eb1('0x28')](function(_0x41fc49){var _0x62ccd=_0x17f8ce[_0x9eb1('0x57')][_0x9eb1('0x29')]({'plain':!![]});if(!_0x62ccd)throw new Error(_0x9eb1('0x58'));if(_0x62ccd['role']==='user'){var _0xa619bb=_0x41fc49[_0x9eb1('0x29')]({'plain':!![]});return db['UserProfileSection'][_0x9eb1('0x4c')]({'where':{'name':'CannedAnswers','userProfileId':_0x62ccd[_0x9eb1('0x59')]},'raw':!![]})[_0x9eb1('0x28')](function(_0x4fca89){if(_0x4fca89&&_0x4fca89['autoAssociation']===0x0){return db[_0x9eb1('0x2b')][_0x9eb1('0x4f')]({'name':_0xa619bb['name'],'resourceId':_0xa619bb['id'],'type':_0x4fca89[_0x9eb1('0x2f')],'sectionId':_0x4fca89['id']},{})['then'](function(){return _0x41fc49;});}else{return _0x41fc49;}})['catch'](function(_0xdeb372){logger[_0x9eb1('0x2d')](_0x9eb1('0x5a'),_0xdeb372);throw _0xdeb372;});}return _0x41fc49;})['then'](respondWithResult(_0x1b75f0,0xc9))[_0x9eb1('0x4a')](handleError(_0x1b75f0,null));};