Built motion from commit 10af8726.|2.6.34
[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 _0x208c=['create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','zip-dir','request-promise','moment','bluebird','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','update','then','destroy','get','CannedAnswers','UserProfileResource','error','stack','name','send','index','map','CannedAnswer','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','merge','filter','options','include','findAll','rows','catch','params','includeAll','body','find'];(function(_0x5a7739,_0x526463){var _0x4d5805=function(_0x2361c9){while(--_0x2361c9){_0x5a7739['push'](_0x5a7739['shift']());}};_0x4d5805(++_0x526463);}(_0x208c,0x1ba));var _0xc208=function(_0x50ecde,_0x4f318f){_0x50ecde=_0x50ecde-0x0;var _0x30b2cb=_0x208c[_0x50ecde];return _0x30b2cb;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc208('0x0'));var zipdir=require(_0xc208('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc208('0x2'));var moment=require(_0xc208('0x3'));var BPromise=require(_0xc208('0x4'));var Mustache=require('mustache');var util=require(_0xc208('0x5'));var path=require('path');var sox=require(_0xc208('0x6'));var csv=require(_0xc208('0x7'));var ejs=require(_0xc208('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc208('0x9'));var squel=require(_0xc208('0xa'));var crypto=require(_0xc208('0xb'));var jsforce=require(_0xc208('0xc'));var deskjs=require(_0xc208('0xd'));var toCsv=require(_0xc208('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xc208('0xe'));var authService=require(_0xc208('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xc208('0x10'));var utils=require(_0xc208('0x11'));var config=require(_0xc208('0x12'));var licenseUtil=require(_0xc208('0x13'));var db=require(_0xc208('0x14'))['db'];function respondWithStatusCode(_0x31d712,_0x320e5a){_0x320e5a=_0x320e5a||0xcc;return function(_0x16f216){if(_0x16f216){return _0x31d712[_0xc208('0x15')](_0x320e5a);}return _0x31d712[_0xc208('0x16')](_0x320e5a)[_0xc208('0x17')]();};}function respondWithResult(_0x5be84a,_0x42c81d){_0x42c81d=_0x42c81d||0xc8;return function(_0x2bf48c){if(_0x2bf48c){return _0x5be84a['status'](_0x42c81d)['json'](_0x2bf48c);}};}function respondWithFilteredResult(_0x312213,_0x287084){return function(_0x83e48){if(_0x83e48){var _0x516f2c=typeof _0x287084[_0xc208('0x18')]===_0xc208('0x19')&&typeof _0x287084[_0xc208('0x1a')]===_0xc208('0x19');var _0x5b17b8=_0x83e48[_0xc208('0x1b')];var _0xd930d6=_0x516f2c?0x0:_0x287084['offset'];var _0x378859=_0x516f2c?_0x83e48[_0xc208('0x1b')]:_0x287084[_0xc208('0x18')]+_0x287084[_0xc208('0x1a')];var _0x4f9782;if(_0x378859>=_0x5b17b8){_0x378859=_0x5b17b8;_0x4f9782=0xc8;}else{_0x4f9782=0xce;}_0x312213[_0xc208('0x16')](_0x4f9782);return _0x312213[_0xc208('0x1c')](_0xc208('0x1d'),_0xd930d6+'-'+_0x378859+'/'+_0x5b17b8)[_0xc208('0x1e')](_0x83e48);}return null;};}function patchUpdates(_0x456a95){return function(_0x3bd244){try{jsonpatch[_0xc208('0x1f')](_0x3bd244,_0x456a95,!![]);}catch(_0x1a32fa){return BPromise[_0xc208('0x20')](_0x1a32fa);}return _0x3bd244['save']();};}function saveUpdates(_0xbd36a7,_0x4bd3e4){return function(_0x1e6034){if(_0x1e6034){return _0x1e6034[_0xc208('0x21')](_0xbd36a7)[_0xc208('0x22')](function(_0x56b592){return _0x56b592;});}return null;};}function removeEntity(_0x4b6d9a,_0x1ca1d2){return function(_0x5b5836){if(_0x5b5836){return _0x5b5836[_0xc208('0x23')]()['then'](function(){var _0x3de393=_0x5b5836[_0xc208('0x24')]({'plain':!![]});var _0x2d9ca6=_0xc208('0x25');return db[_0xc208('0x26')][_0xc208('0x23')]({'where':{'type':_0x2d9ca6,'resourceId':_0x3de393['id']}})[_0xc208('0x22')](function(){return _0x5b5836;});})['then'](function(){_0x4b6d9a[_0xc208('0x16')](0xcc)[_0xc208('0x17')]();});}};}function handleEntityNotFound(_0x270f4e,_0x5edfe6){return function(_0x3640cb){if(!_0x3640cb){_0x270f4e['sendStatus'](0x194);}return _0x3640cb;};}function handleError(_0xb3d8df,_0x4f2005){_0x4f2005=_0x4f2005||0x1f4;return function(_0x2be4a0){logger[_0xc208('0x27')](_0x2be4a0[_0xc208('0x28')]);if(_0x2be4a0[_0xc208('0x29')]){delete _0x2be4a0[_0xc208('0x29')];}_0xb3d8df['status'](_0x4f2005)[_0xc208('0x2a')](_0x2be4a0);};}exports[_0xc208('0x2b')]=function(_0x13f404,_0x30db78){var _0xb9376d={},_0x2576f9={},_0x25691a={'count':0x0,'rows':[]};var _0x12916c=_[_0xc208('0x2c')](db[_0xc208('0x2d')][_0xc208('0x2e')],function(_0x4a60d6){return{'name':_0x4a60d6[_0xc208('0x2f')],'type':_0x4a60d6[_0xc208('0x30')][_0xc208('0x31')]};});_0x2576f9[_0xc208('0x32')]=_[_0xc208('0x2c')](_0x12916c,_0xc208('0x29'));_0x2576f9[_0xc208('0x33')]=_[_0xc208('0x34')](_0x13f404[_0xc208('0x33')]);_0x2576f9[_0xc208('0x35')]=_['intersection'](_0x2576f9[_0xc208('0x32')],_0x2576f9[_0xc208('0x33')]);_0xb9376d['attributes']=_[_0xc208('0x36')](_0x2576f9[_0xc208('0x32')],qs[_0xc208('0x37')](_0x13f404[_0xc208('0x33')][_0xc208('0x37')]));_0xb9376d[_0xc208('0x38')]=_0xb9376d[_0xc208('0x38')][_0xc208('0x39')]?_0xb9376d[_0xc208('0x38')]:_0x2576f9[_0xc208('0x32')];if(!_0x13f404['query'][_0xc208('0x3a')]('nolimit')){_0xb9376d[_0xc208('0x1a')]=qs[_0xc208('0x1a')](_0x13f404[_0xc208('0x33')]['limit']);_0xb9376d['offset']=qs['offset'](_0x13f404[_0xc208('0x33')][_0xc208('0x18')]);}_0xb9376d[_0xc208('0x3b')]=qs[_0xc208('0x3c')](_0x13f404[_0xc208('0x33')][_0xc208('0x3c')]);_0xb9376d[_0xc208('0x3d')]=qs[_0xc208('0x35')](_[_0xc208('0x3e')](_0x13f404[_0xc208('0x33')],_0x2576f9['filters']),_0x12916c);if(_0x13f404[_0xc208('0x33')]['filter']){_0xb9376d[_0xc208('0x3d')]=_[_0xc208('0x3f')](_0xb9376d[_0xc208('0x3d')],{'$or':[{'key':{'$like':'%'+_0x13f404[_0xc208('0x33')][_0xc208('0x40')]+'%'}},{'value':{'$like':'%'+_0x13f404['query'][_0xc208('0x40')]+'%'}}]});}_0xb9376d=_[_0xc208('0x3f')]({},_0xb9376d,_0x13f404[_0xc208('0x41')]);var _0x1a1e2c={'where':_0xb9376d[_0xc208('0x3d')]};return db[_0xc208('0x2d')][_0xc208('0x1b')](_0x1a1e2c)[_0xc208('0x22')](function(_0x5b16b0){_0x25691a[_0xc208('0x1b')]=_0x5b16b0;if(_0x13f404[_0xc208('0x33')]['includeAll']){_0xb9376d[_0xc208('0x42')]=[{'all':!![]}];}return db[_0xc208('0x2d')][_0xc208('0x43')](_0xb9376d);})[_0xc208('0x22')](function(_0xe4dcd6){_0x25691a[_0xc208('0x44')]=_0xe4dcd6;return _0x25691a;})[_0xc208('0x22')](respondWithFilteredResult(_0x30db78,_0xb9376d))[_0xc208('0x45')](handleError(_0x30db78,null));};exports['show']=function(_0x14e0e9,_0x313c62){var _0x4912ea={'raw':!![],'where':{'id':_0x14e0e9[_0xc208('0x46')]['id']}},_0x42755e={};_0x42755e[_0xc208('0x32')]=_[_0xc208('0x34')](db['CannedAnswer']['rawAttributes']);_0x42755e[_0xc208('0x33')]=_[_0xc208('0x34')](_0x14e0e9['query']);_0x42755e['filters']=_[_0xc208('0x36')](_0x42755e[_0xc208('0x32')],_0x42755e['query']);_0x4912ea[_0xc208('0x38')]=_[_0xc208('0x36')](_0x42755e['model'],qs[_0xc208('0x37')](_0x14e0e9[_0xc208('0x33')][_0xc208('0x37')]));_0x4912ea['attributes']=_0x4912ea[_0xc208('0x38')]['length']?_0x4912ea[_0xc208('0x38')]:_0x42755e[_0xc208('0x32')];if(_0x14e0e9[_0xc208('0x33')][_0xc208('0x47')]){_0x4912ea[_0xc208('0x42')]=[{'all':!![]}];}_0x4912ea=_[_0xc208('0x3f')]({},_0x4912ea,_0x14e0e9[_0xc208('0x41')]);return db[_0xc208('0x2d')]['find'](_0x4912ea)['then'](handleEntityNotFound(_0x313c62,null))['then'](respondWithResult(_0x313c62,null))[_0xc208('0x45')](handleError(_0x313c62,null));};exports[_0xc208('0x21')]=function(_0x43f352,_0x1a869b){if(_0x43f352[_0xc208('0x48')]['id']){delete _0x43f352[_0xc208('0x48')]['id'];}return db[_0xc208('0x2d')]['find']({'where':{'id':_0x43f352['params']['id']}})[_0xc208('0x22')](handleEntityNotFound(_0x1a869b,null))[_0xc208('0x22')](saveUpdates(_0x43f352[_0xc208('0x48')],null))['then'](respondWithResult(_0x1a869b,null))[_0xc208('0x45')](handleError(_0x1a869b,null));};exports[_0xc208('0x23')]=function(_0x3c7bf7,_0x17a7b2){return db[_0xc208('0x2d')][_0xc208('0x49')]({'where':{'id':_0x3c7bf7['params']['id']}})[_0xc208('0x22')](handleEntityNotFound(_0x17a7b2,null))[_0xc208('0x22')](removeEntity(_0x17a7b2,null))[_0xc208('0x45')](handleError(_0x17a7b2,null));};exports[_0xc208('0x4a')]=function(_0x16dd3e,_0x1c18c1){var _0x58f62b={'key':_0x16dd3e[_0xc208('0x48')][_0xc208('0x31')]};if(_0x16dd3e[_0xc208('0x48')][_0xc208('0x4b')]){_0x58f62b[_0xc208('0x4b')]=_0x16dd3e[_0xc208('0x48')][_0xc208('0x4b')];}else if(_0x16dd3e['body'][_0xc208('0x4c')]){_0x58f62b[_0xc208('0x4c')]=_0x16dd3e['body'][_0xc208('0x4c')];}else if(_0x16dd3e['body'][_0xc208('0x4d')]){_0x58f62b[_0xc208('0x4d')]=_0x16dd3e[_0xc208('0x48')][_0xc208('0x4d')];}else if(_0x16dd3e[_0xc208('0x48')][_0xc208('0x4e')]){_0x58f62b[_0xc208('0x4e')]=_0x16dd3e[_0xc208('0x48')][_0xc208('0x4e')];}return db[_0xc208('0x2d')]['find']({'where':_0x58f62b})[_0xc208('0x22')](function(_0x7ba95d){if(_0x7ba95d){throw new db[(_0xc208('0x4f'))]['ValidationError'](_0xc208('0x50'));}return db[_0xc208('0x2d')]['create'](_0x16dd3e[_0xc208('0x48')]);})['then'](function(_0xa28ab2){var _0x2f7806=_0x16dd3e[_0xc208('0x51')][_0xc208('0x24')]({'plain':!![]});if(!_0x2f7806)throw new Error(_0xc208('0x52'));if(_0x2f7806['role']===_0xc208('0x51')){var _0x115d81=_0xa28ab2[_0xc208('0x24')]({'plain':!![]});return db['UserProfileSection'][_0xc208('0x49')]({'where':{'name':_0xc208('0x25'),'userProfileId':_0x2f7806[_0xc208('0x53')]},'raw':!![]})[_0xc208('0x22')](function(_0x2814be){if(_0x2814be&&_0x2814be[_0xc208('0x54')]===0x0){return db[_0xc208('0x26')][_0xc208('0x4a')]({'name':_0x115d81['name'],'resourceId':_0x115d81['id'],'type':_0x2814be[_0xc208('0x29')],'sectionId':_0x2814be['id']},{})['then'](function(){return _0xa28ab2;});}else{return _0xa28ab2;}})[_0xc208('0x45')](function(_0x3307ee){logger[_0xc208('0x27')](_0xc208('0x55'),_0x3307ee);throw _0x3307ee;});}return _0xa28ab2;})['then'](respondWithResult(_0x1c18c1,0xc9))['catch'](handleError(_0x1c18c1,null));};