Built motion from commit 85328c08.|2.5.50
[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 _0x9396=['CannedAnswer','rawAttributes','type','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','options','includeAll','include','findAll','rows','catch','show','params','merge','find','body','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','count','limit','Content-Range','json','apply','reject','update','destroy','then','get','CannedAnswers','UserProfileResource','name','send','index','map'];(function(_0x435c43,_0x518e4b){var _0x44c67e=function(_0x2e0dbf){while(--_0x2e0dbf){_0x435c43['push'](_0x435c43['shift']());}};_0x44c67e(++_0x518e4b);}(_0x9396,0x144));var _0x6939=function(_0x49ad02,_0x1367dc){_0x49ad02=_0x49ad02-0x0;var _0x34506f=_0x9396[_0x49ad02];return _0x34506f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6939('0x0'));var zipdir=require(_0x6939('0x1'));var jsonpatch=require(_0x6939('0x2'));var rp=require(_0x6939('0x3'));var moment=require(_0x6939('0x4'));var BPromise=require(_0x6939('0x5'));var Mustache=require(_0x6939('0x6'));var util=require(_0x6939('0x7'));var path=require(_0x6939('0x8'));var sox=require(_0x6939('0x9'));var csv=require(_0x6939('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6939('0xb'));var _=require(_0x6939('0xc'));var squel=require('squel');var crypto=require(_0x6939('0xd'));var jsforce=require(_0x6939('0xe'));var deskjs=require(_0x6939('0xf'));var toCsv=require(_0x6939('0xa'));var querystring=require(_0x6939('0x10'));var Papa=require(_0x6939('0x11'));var Redis=require(_0x6939('0x12'));var authService=require(_0x6939('0x13'));var qs=require(_0x6939('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6939('0x15'));var logger=require(_0x6939('0x16'))(_0x6939('0x17'));var utils=require('../../config/utils');var config=require(_0x6939('0x18'));var licenseUtil=require(_0x6939('0x19'));var db=require(_0x6939('0x1a'))['db'];function respondWithStatusCode(_0x21b2db,_0xdd4cd0){_0xdd4cd0=_0xdd4cd0||0xcc;return function(_0x25e8c){if(_0x25e8c){return _0x21b2db[_0x6939('0x1b')](_0xdd4cd0);}return _0x21b2db[_0x6939('0x1c')](_0xdd4cd0)[_0x6939('0x1d')]();};}function respondWithResult(_0x1fdcb3,_0x3d2ef4){_0x3d2ef4=_0x3d2ef4||0xc8;return function(_0x2fad0b){if(_0x2fad0b){return _0x1fdcb3[_0x6939('0x1c')](_0x3d2ef4)['json'](_0x2fad0b);}};}function respondWithFilteredResult(_0x371af2,_0x3f9292){return function(_0x225905){if(_0x225905){var _0x47cac7=typeof _0x3f9292[_0x6939('0x1e')]===_0x6939('0x1f')&&typeof _0x3f9292['limit']===_0x6939('0x1f');var _0x327c6=_0x225905['count'];var _0x5832dc=_0x47cac7?0x0:_0x3f9292['offset'];var _0x6bbc4d=_0x47cac7?_0x225905[_0x6939('0x20')]:_0x3f9292[_0x6939('0x1e')]+_0x3f9292[_0x6939('0x21')];var _0x44b1f7;if(_0x6bbc4d>=_0x327c6){_0x6bbc4d=_0x327c6;_0x44b1f7=0xc8;}else{_0x44b1f7=0xce;}_0x371af2['status'](_0x44b1f7);return _0x371af2['set'](_0x6939('0x22'),_0x5832dc+'-'+_0x6bbc4d+'/'+_0x327c6)[_0x6939('0x23')](_0x225905);}return null;};}function patchUpdates(_0x4b2fcf){return function(_0x3fdc59){try{jsonpatch[_0x6939('0x24')](_0x3fdc59,_0x4b2fcf,!![]);}catch(_0x18e615){return BPromise[_0x6939('0x25')](_0x18e615);}return _0x3fdc59['save']();};}function saveUpdates(_0x3e7862,_0x45206d){return function(_0x4343a2){if(_0x4343a2){return _0x4343a2[_0x6939('0x26')](_0x3e7862)['then'](function(_0x3e99e6){return _0x3e99e6;});}return null;};}function removeEntity(_0x17c553,_0x213180){return function(_0x395133){if(_0x395133){return _0x395133[_0x6939('0x27')]()[_0x6939('0x28')](function(){var _0x27d5b3=_0x395133[_0x6939('0x29')]({'plain':!![]});var _0x2be33b=_0x6939('0x2a');return db[_0x6939('0x2b')][_0x6939('0x27')]({'where':{'type':_0x2be33b,'resourceId':_0x27d5b3['id']}})['then'](function(){return _0x395133;});})[_0x6939('0x28')](function(){_0x17c553[_0x6939('0x1c')](0xcc)[_0x6939('0x1d')]();});}};}function handleEntityNotFound(_0x3c9717,_0x385caf){return function(_0x17df41){if(!_0x17df41){_0x3c9717[_0x6939('0x1b')](0x194);}return _0x17df41;};}function handleError(_0x1b796d,_0xdb12cd){_0xdb12cd=_0xdb12cd||0x1f4;return function(_0x4fb1f7){logger['error'](_0x4fb1f7['stack']);if(_0x4fb1f7[_0x6939('0x2c')]){delete _0x4fb1f7[_0x6939('0x2c')];}_0x1b796d[_0x6939('0x1c')](_0xdb12cd)[_0x6939('0x2d')](_0x4fb1f7);};}exports[_0x6939('0x2e')]=function(_0x5750d8,_0x3f21eb){var _0x4eed6c={},_0x56a843={},_0x58234a={'count':0x0,'rows':[]};var _0x3ea729=_[_0x6939('0x2f')](db[_0x6939('0x30')][_0x6939('0x31')],function(_0x387ae8){return{'name':_0x387ae8['fieldName'],'type':_0x387ae8[_0x6939('0x32')][_0x6939('0x33')]};});_0x56a843[_0x6939('0x34')]=_['map'](_0x3ea729,_0x6939('0x2c'));_0x56a843['query']=_[_0x6939('0x35')](_0x5750d8[_0x6939('0x36')]);_0x56a843[_0x6939('0x37')]=_[_0x6939('0x38')](_0x56a843[_0x6939('0x34')],_0x56a843[_0x6939('0x36')]);_0x4eed6c['attributes']=_['intersection'](_0x56a843[_0x6939('0x34')],qs[_0x6939('0x39')](_0x5750d8[_0x6939('0x36')][_0x6939('0x39')]));_0x4eed6c[_0x6939('0x3a')]=_0x4eed6c[_0x6939('0x3a')][_0x6939('0x3b')]?_0x4eed6c[_0x6939('0x3a')]:_0x56a843[_0x6939('0x34')];if(!_0x5750d8[_0x6939('0x36')][_0x6939('0x3c')](_0x6939('0x3d'))){_0x4eed6c[_0x6939('0x21')]=qs[_0x6939('0x21')](_0x5750d8[_0x6939('0x36')][_0x6939('0x21')]);_0x4eed6c[_0x6939('0x1e')]=qs[_0x6939('0x1e')](_0x5750d8[_0x6939('0x36')][_0x6939('0x1e')]);}_0x4eed6c[_0x6939('0x3e')]=qs[_0x6939('0x3f')](_0x5750d8['query'][_0x6939('0x3f')]);_0x4eed6c['where']=qs[_0x6939('0x37')](_[_0x6939('0x40')](_0x5750d8[_0x6939('0x36')],_0x56a843[_0x6939('0x37')]),_0x3ea729);if(_0x5750d8[_0x6939('0x36')][_0x6939('0x41')]){_0x4eed6c[_0x6939('0x42')]=_['merge'](_0x4eed6c[_0x6939('0x42')],{'$or':[{'key':{'$like':'%'+_0x5750d8[_0x6939('0x36')][_0x6939('0x41')]+'%'}},{'value':{'$like':'%'+_0x5750d8[_0x6939('0x36')]['filter']+'%'}}]});}_0x4eed6c=_['merge']({},_0x4eed6c,_0x5750d8[_0x6939('0x43')]);var _0x1c6c01={'where':_0x4eed6c['where']};return db[_0x6939('0x30')][_0x6939('0x20')](_0x1c6c01)[_0x6939('0x28')](function(_0x532568){_0x58234a[_0x6939('0x20')]=_0x532568;if(_0x5750d8[_0x6939('0x36')][_0x6939('0x44')]){_0x4eed6c[_0x6939('0x45')]=[{'all':!![]}];}return db[_0x6939('0x30')][_0x6939('0x46')](_0x4eed6c);})['then'](function(_0x4254b2){_0x58234a[_0x6939('0x47')]=_0x4254b2;return _0x58234a;})['then'](respondWithFilteredResult(_0x3f21eb,_0x4eed6c))[_0x6939('0x48')](handleError(_0x3f21eb,null));};exports[_0x6939('0x49')]=function(_0x3ebb83,_0x2506a7){var _0xcfd7d2={'raw':!![],'where':{'id':_0x3ebb83[_0x6939('0x4a')]['id']}},_0x366ff3={};_0x366ff3[_0x6939('0x34')]=_[_0x6939('0x35')](db[_0x6939('0x30')][_0x6939('0x31')]);_0x366ff3['query']=_[_0x6939('0x35')](_0x3ebb83[_0x6939('0x36')]);_0x366ff3[_0x6939('0x37')]=_[_0x6939('0x38')](_0x366ff3[_0x6939('0x34')],_0x366ff3[_0x6939('0x36')]);_0xcfd7d2[_0x6939('0x3a')]=_[_0x6939('0x38')](_0x366ff3[_0x6939('0x34')],qs[_0x6939('0x39')](_0x3ebb83[_0x6939('0x36')][_0x6939('0x39')]));_0xcfd7d2[_0x6939('0x3a')]=_0xcfd7d2[_0x6939('0x3a')][_0x6939('0x3b')]?_0xcfd7d2[_0x6939('0x3a')]:_0x366ff3[_0x6939('0x34')];if(_0x3ebb83[_0x6939('0x36')]['includeAll']){_0xcfd7d2[_0x6939('0x45')]=[{'all':!![]}];}_0xcfd7d2=_[_0x6939('0x4b')]({},_0xcfd7d2,_0x3ebb83[_0x6939('0x43')]);return db[_0x6939('0x30')][_0x6939('0x4c')](_0xcfd7d2)['then'](handleEntityNotFound(_0x2506a7,null))['then'](respondWithResult(_0x2506a7,null))[_0x6939('0x48')](handleError(_0x2506a7,null));};exports[_0x6939('0x26')]=function(_0x19b107,_0x339c81){if(_0x19b107['body']['id']){delete _0x19b107[_0x6939('0x4d')]['id'];}return db['CannedAnswer'][_0x6939('0x4c')]({'where':{'id':_0x19b107['params']['id']}})[_0x6939('0x28')](handleEntityNotFound(_0x339c81,null))[_0x6939('0x28')](saveUpdates(_0x19b107[_0x6939('0x4d')],null))[_0x6939('0x28')](respondWithResult(_0x339c81,null))['catch'](handleError(_0x339c81,null));};exports[_0x6939('0x27')]=function(_0x419387,_0x368125){return db[_0x6939('0x30')][_0x6939('0x4c')]({'where':{'id':_0x419387[_0x6939('0x4a')]['id']}})[_0x6939('0x28')](handleEntityNotFound(_0x368125,null))[_0x6939('0x28')](removeEntity(_0x368125,null))['catch'](handleError(_0x368125,null));};exports[_0x6939('0x4e')]=function(_0x2ff079,_0x2c98b6){var _0x3b979d={'key':_0x2ff079[_0x6939('0x4d')][_0x6939('0x33')]};if(_0x2ff079['body'][_0x6939('0x4f')]){_0x3b979d[_0x6939('0x4f')]=_0x2ff079[_0x6939('0x4d')][_0x6939('0x4f')];}else if(_0x2ff079[_0x6939('0x4d')][_0x6939('0x50')]){_0x3b979d['SmsAccountId']=_0x2ff079[_0x6939('0x4d')]['SmsAccountId'];}else if(_0x2ff079[_0x6939('0x4d')][_0x6939('0x51')]){_0x3b979d[_0x6939('0x51')]=_0x2ff079['body'][_0x6939('0x51')];}else if(_0x2ff079[_0x6939('0x4d')][_0x6939('0x52')]){_0x3b979d['ChatWebsiteId']=_0x2ff079[_0x6939('0x4d')]['ChatWebsiteId'];}return db['CannedAnswer'][_0x6939('0x4c')]({'where':_0x3b979d})['then'](function(_0x3b0515){if(_0x3b0515){throw new db[(_0x6939('0x53'))][(_0x6939('0x54'))](_0x6939('0x55'));}return db[_0x6939('0x30')][_0x6939('0x4e')](_0x2ff079['body']);})['then'](function(_0x12f061){var _0x94876d=_0x2ff079[_0x6939('0x56')][_0x6939('0x29')]({'plain':!![]});if(!_0x94876d)throw new Error(_0x6939('0x57'));if(_0x94876d[_0x6939('0x58')]===_0x6939('0x56')){var _0x485228=_0x12f061['get']({'plain':!![]});return db[_0x6939('0x59')][_0x6939('0x4c')]({'where':{'name':_0x6939('0x2a'),'userProfileId':_0x94876d['userProfileId']},'raw':!![]})[_0x6939('0x28')](function(_0x5d27dc){if(_0x5d27dc&&_0x5d27dc[_0x6939('0x5a')]===0x0){return db[_0x6939('0x2b')][_0x6939('0x4e')]({'name':_0x485228[_0x6939('0x2c')],'resourceId':_0x485228['id'],'type':_0x5d27dc[_0x6939('0x2c')],'sectionId':_0x5d27dc['id']},{})[_0x6939('0x28')](function(){return _0x12f061;});}else{return _0x12f061;}})[_0x6939('0x48')](function(_0x3a0be0){logger[_0x6939('0x5b')](_0x6939('0x5c'),_0x3a0be0);throw _0x3a0be0;});}return _0x12f061;})[_0x6939('0x28')](respondWithResult(_0x2c98b6,0xc9))[_0x6939('0x48')](handleError(_0x2c98b6,null));};