Built motion from commit d5e4af8c.|2.6.23
[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 _0x3bb3=['to-csv','ejs','lodash','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','sendStatus','status','limit','undefined','count','offset','json','reject','update','then','destroy','get','CannedAnswers','error','name','send','index','map','CannedAnswer','rawAttributes','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','includeAll','include','findAll','rows','catch','show','options','body','find','params','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','zip-dir','fast-json-patch','moment','mustache','util','path','sox'];(function(_0x19b392,_0x1df894){var _0x29a9f4=function(_0x1d866f){while(--_0x1d866f){_0x19b392['push'](_0x19b392['shift']());}};_0x29a9f4(++_0x1df894);}(_0x3bb3,0xa0));var _0x33bb=function(_0x465a0c,_0x19d4d5){_0x465a0c=_0x465a0c-0x0;var _0x1e202e=_0x3bb3[_0x465a0c];return _0x1e202e;};'use strict';var emlformat=require(_0x33bb('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x33bb('0x1'));var jsonpatch=require(_0x33bb('0x2'));var rp=require('request-promise');var moment=require(_0x33bb('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x33bb('0x4'));var util=require(_0x33bb('0x5'));var path=require(_0x33bb('0x6'));var sox=require(_0x33bb('0x7'));var csv=require(_0x33bb('0x8'));var ejs=require(_0x33bb('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x33bb('0xa'));var squel=require(_0x33bb('0xb'));var crypto=require('crypto');var jsforce=require(_0x33bb('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x33bb('0x8'));var querystring=require(_0x33bb('0xd'));var Papa=require(_0x33bb('0xe'));var Redis=require('ioredis');var authService=require(_0x33bb('0xf'));var qs=require(_0x33bb('0x10'));var as=require(_0x33bb('0x11'));var hardwareService=require(_0x33bb('0x12'));var logger=require('../../config/logger')(_0x33bb('0x13'));var utils=require('../../config/utils');var config=require(_0x33bb('0x14'));var licenseUtil=require(_0x33bb('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x147bc4,_0x5376b4){_0x5376b4=_0x5376b4||0xcc;return function(_0x1830c3){if(_0x1830c3){return _0x147bc4[_0x33bb('0x16')](_0x5376b4);}return _0x147bc4[_0x33bb('0x17')](_0x5376b4)['end']();};}function respondWithResult(_0x394f17,_0x79da9){_0x79da9=_0x79da9||0xc8;return function(_0x5eae6a){if(_0x5eae6a){return _0x394f17[_0x33bb('0x17')](_0x79da9)['json'](_0x5eae6a);}};}function respondWithFilteredResult(_0x14dab5,_0x3ffcc5){return function(_0x2ac0c3){if(_0x2ac0c3){var _0x22c248=typeof _0x3ffcc5['offset']==='undefined'&&typeof _0x3ffcc5[_0x33bb('0x18')]===_0x33bb('0x19');var _0x55c6fc=_0x2ac0c3[_0x33bb('0x1a')];var _0x3c0f47=_0x22c248?0x0:_0x3ffcc5[_0x33bb('0x1b')];var _0x356e5e=_0x22c248?_0x2ac0c3[_0x33bb('0x1a')]:_0x3ffcc5[_0x33bb('0x1b')]+_0x3ffcc5[_0x33bb('0x18')];var _0x509084;if(_0x356e5e>=_0x55c6fc){_0x356e5e=_0x55c6fc;_0x509084=0xc8;}else{_0x509084=0xce;}_0x14dab5[_0x33bb('0x17')](_0x509084);return _0x14dab5['set']('Content-Range',_0x3c0f47+'-'+_0x356e5e+'/'+_0x55c6fc)[_0x33bb('0x1c')](_0x2ac0c3);}return null;};}function patchUpdates(_0x21e166){return function(_0x4a189a){try{jsonpatch['apply'](_0x4a189a,_0x21e166,!![]);}catch(_0x28cec9){return BPromise[_0x33bb('0x1d')](_0x28cec9);}return _0x4a189a['save']();};}function saveUpdates(_0x18b415,_0x4eff9b){return function(_0x5dc44d){if(_0x5dc44d){return _0x5dc44d[_0x33bb('0x1e')](_0x18b415)[_0x33bb('0x1f')](function(_0x3ca856){return _0x3ca856;});}return null;};}function removeEntity(_0x26054a,_0x49e4fe){return function(_0x5abf74){if(_0x5abf74){return _0x5abf74[_0x33bb('0x20')]()['then'](function(){var _0x5a915d=_0x5abf74[_0x33bb('0x21')]({'plain':!![]});var _0x1d585d=_0x33bb('0x22');return db['UserProfileResource']['destroy']({'where':{'type':_0x1d585d,'resourceId':_0x5a915d['id']}})[_0x33bb('0x1f')](function(){return _0x5abf74;});})[_0x33bb('0x1f')](function(){_0x26054a[_0x33bb('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3bbd6a,_0x98eae6){return function(_0x3d7064){if(!_0x3d7064){_0x3bbd6a['sendStatus'](0x194);}return _0x3d7064;};}function handleError(_0x4effe5,_0x1d489c){_0x1d489c=_0x1d489c||0x1f4;return function(_0x24e791){logger[_0x33bb('0x23')](_0x24e791['stack']);if(_0x24e791[_0x33bb('0x24')]){delete _0x24e791[_0x33bb('0x24')];}_0x4effe5[_0x33bb('0x17')](_0x1d489c)[_0x33bb('0x25')](_0x24e791);};}exports[_0x33bb('0x26')]=function(_0x51d0af,_0x2d4e8e){var _0x222a98={},_0x19a0da={},_0x4942de={'count':0x0,'rows':[]};var _0x148d89=_[_0x33bb('0x27')](db[_0x33bb('0x28')][_0x33bb('0x29')],function(_0x3c0f45){return{'name':_0x3c0f45['fieldName'],'type':_0x3c0f45['type'][_0x33bb('0x2a')]};});_0x19a0da['model']=_[_0x33bb('0x27')](_0x148d89,_0x33bb('0x24'));_0x19a0da[_0x33bb('0x2b')]=_[_0x33bb('0x2c')](_0x51d0af[_0x33bb('0x2b')]);_0x19a0da[_0x33bb('0x2d')]=_[_0x33bb('0x2e')](_0x19a0da[_0x33bb('0x2f')],_0x19a0da[_0x33bb('0x2b')]);_0x222a98[_0x33bb('0x30')]=_[_0x33bb('0x2e')](_0x19a0da[_0x33bb('0x2f')],qs['fields'](_0x51d0af[_0x33bb('0x2b')][_0x33bb('0x31')]));_0x222a98[_0x33bb('0x30')]=_0x222a98[_0x33bb('0x30')][_0x33bb('0x32')]?_0x222a98['attributes']:_0x19a0da[_0x33bb('0x2f')];if(!_0x51d0af[_0x33bb('0x2b')][_0x33bb('0x33')](_0x33bb('0x34'))){_0x222a98[_0x33bb('0x18')]=qs[_0x33bb('0x18')](_0x51d0af['query']['limit']);_0x222a98['offset']=qs['offset'](_0x51d0af['query'][_0x33bb('0x1b')]);}_0x222a98[_0x33bb('0x35')]=qs[_0x33bb('0x36')](_0x51d0af[_0x33bb('0x2b')]['sort']);_0x222a98[_0x33bb('0x37')]=qs[_0x33bb('0x2d')](_[_0x33bb('0x38')](_0x51d0af['query'],_0x19a0da[_0x33bb('0x2d')]),_0x148d89);if(_0x51d0af[_0x33bb('0x2b')][_0x33bb('0x39')]){_0x222a98['where']=_[_0x33bb('0x3a')](_0x222a98['where'],{'$or':[{'key':{'$like':'%'+_0x51d0af[_0x33bb('0x2b')][_0x33bb('0x39')]+'%'}},{'value':{'$like':'%'+_0x51d0af[_0x33bb('0x2b')][_0x33bb('0x39')]+'%'}}]});}_0x222a98=_[_0x33bb('0x3a')]({},_0x222a98,_0x51d0af['options']);var _0x831194={'where':_0x222a98[_0x33bb('0x37')]};return db[_0x33bb('0x28')][_0x33bb('0x1a')](_0x831194)[_0x33bb('0x1f')](function(_0x7c11ba){_0x4942de[_0x33bb('0x1a')]=_0x7c11ba;if(_0x51d0af[_0x33bb('0x2b')][_0x33bb('0x3b')]){_0x222a98[_0x33bb('0x3c')]=[{'all':!![]}];}return db['CannedAnswer'][_0x33bb('0x3d')](_0x222a98);})[_0x33bb('0x1f')](function(_0x1ff432){_0x4942de[_0x33bb('0x3e')]=_0x1ff432;return _0x4942de;})[_0x33bb('0x1f')](respondWithFilteredResult(_0x2d4e8e,_0x222a98))[_0x33bb('0x3f')](handleError(_0x2d4e8e,null));};exports[_0x33bb('0x40')]=function(_0x30c183,_0x3a1f57){var _0x19f715={'raw':!![],'where':{'id':_0x30c183['params']['id']}},_0x129653={};_0x129653['model']=_[_0x33bb('0x2c')](db[_0x33bb('0x28')][_0x33bb('0x29')]);_0x129653[_0x33bb('0x2b')]=_[_0x33bb('0x2c')](_0x30c183[_0x33bb('0x2b')]);_0x129653[_0x33bb('0x2d')]=_['intersection'](_0x129653[_0x33bb('0x2f')],_0x129653[_0x33bb('0x2b')]);_0x19f715['attributes']=_[_0x33bb('0x2e')](_0x129653[_0x33bb('0x2f')],qs[_0x33bb('0x31')](_0x30c183[_0x33bb('0x2b')][_0x33bb('0x31')]));_0x19f715[_0x33bb('0x30')]=_0x19f715[_0x33bb('0x30')][_0x33bb('0x32')]?_0x19f715[_0x33bb('0x30')]:_0x129653[_0x33bb('0x2f')];if(_0x30c183[_0x33bb('0x2b')]['includeAll']){_0x19f715['include']=[{'all':!![]}];}_0x19f715=_['merge']({},_0x19f715,_0x30c183[_0x33bb('0x41')]);return db[_0x33bb('0x28')]['find'](_0x19f715)[_0x33bb('0x1f')](handleEntityNotFound(_0x3a1f57,null))[_0x33bb('0x1f')](respondWithResult(_0x3a1f57,null))['catch'](handleError(_0x3a1f57,null));};exports[_0x33bb('0x1e')]=function(_0x163b59,_0x37d7e5){if(_0x163b59[_0x33bb('0x42')]['id']){delete _0x163b59['body']['id'];}return db['CannedAnswer'][_0x33bb('0x43')]({'where':{'id':_0x163b59[_0x33bb('0x44')]['id']}})[_0x33bb('0x1f')](handleEntityNotFound(_0x37d7e5,null))[_0x33bb('0x1f')](saveUpdates(_0x163b59[_0x33bb('0x42')],null))['then'](respondWithResult(_0x37d7e5,null))[_0x33bb('0x3f')](handleError(_0x37d7e5,null));};exports[_0x33bb('0x20')]=function(_0x2bc743,_0x2c1ced){return db[_0x33bb('0x28')][_0x33bb('0x43')]({'where':{'id':_0x2bc743['params']['id']}})['then'](handleEntityNotFound(_0x2c1ced,null))[_0x33bb('0x1f')](removeEntity(_0x2c1ced,null))[_0x33bb('0x3f')](handleError(_0x2c1ced,null));};exports[_0x33bb('0x45')]=function(_0x53ae5f,_0x1fec4a){var _0x5e3a40={'key':_0x53ae5f[_0x33bb('0x42')][_0x33bb('0x2a')]};if(_0x53ae5f[_0x33bb('0x42')][_0x33bb('0x46')]){_0x5e3a40['MailAccountId']=_0x53ae5f[_0x33bb('0x42')]['MailAccountId'];}else if(_0x53ae5f[_0x33bb('0x42')][_0x33bb('0x47')]){_0x5e3a40['SmsAccountId']=_0x53ae5f[_0x33bb('0x42')][_0x33bb('0x47')];}else if(_0x53ae5f[_0x33bb('0x42')][_0x33bb('0x48')]){_0x5e3a40['OpenchannelAccountId']=_0x53ae5f[_0x33bb('0x42')][_0x33bb('0x48')];}else if(_0x53ae5f[_0x33bb('0x42')]['ChatWebsiteId']){_0x5e3a40[_0x33bb('0x49')]=_0x53ae5f[_0x33bb('0x42')][_0x33bb('0x49')];}return db[_0x33bb('0x28')][_0x33bb('0x43')]({'where':_0x5e3a40})['then'](function(_0x3bcd6a){if(_0x3bcd6a){throw new db[(_0x33bb('0x4a'))][(_0x33bb('0x4b'))](_0x33bb('0x4c'));}return db[_0x33bb('0x28')][_0x33bb('0x45')](_0x53ae5f[_0x33bb('0x42')]);})[_0x33bb('0x1f')](function(_0x2cc4e5){var _0x78653d=_0x53ae5f[_0x33bb('0x4d')][_0x33bb('0x21')]({'plain':!![]});if(!_0x78653d)throw new Error(_0x33bb('0x4e'));if(_0x78653d['role']===_0x33bb('0x4d')){var _0x371494=_0x2cc4e5[_0x33bb('0x21')]({'plain':!![]});return db[_0x33bb('0x4f')][_0x33bb('0x43')]({'where':{'name':_0x33bb('0x22'),'userProfileId':_0x78653d[_0x33bb('0x50')]},'raw':!![]})[_0x33bb('0x1f')](function(_0x3d6ba9){if(_0x3d6ba9&&_0x3d6ba9[_0x33bb('0x51')]===0x0){return db[_0x33bb('0x52')][_0x33bb('0x45')]({'name':_0x371494['name'],'resourceId':_0x371494['id'],'type':_0x3d6ba9[_0x33bb('0x24')],'sectionId':_0x3d6ba9['id']},{})[_0x33bb('0x1f')](function(){return _0x2cc4e5;});}else{return _0x2cc4e5;}})['catch'](function(_0x5c2915){logger[_0x33bb('0x23')](_0x33bb('0x53'),_0x5c2915);throw _0x5c2915;});}return _0x2cc4e5;})[_0x33bb('0x1f')](respondWithResult(_0x1fec4a,0xc9))[_0x33bb('0x3f')](handleError(_0x1fec4a,null));};