0fad67dc89e99d7c123c001f6934e428cb51e724
[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 _0x490b=['fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','find','body','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','The\x20inserted\x20key\x20already\x20exists.','user','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','sox','ejs','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','Content-Range','apply','reject','save','update','destroy','get','CannedAnswers','then','error','name','send','map','CannedAnswer','key','model','query','keys','filters','intersection','attributes'];(function(_0x43b3e5,_0xf9a63){var _0x52307c=function(_0x5612cf){while(--_0x5612cf){_0x43b3e5['push'](_0x43b3e5['shift']());}};_0x52307c(++_0xf9a63);}(_0x490b,0x1c3));var _0xb490=function(_0x151418,_0x2cbffa){_0x151418=_0x151418-0x0;var _0x40e29a=_0x490b[_0x151418];return _0x40e29a;};'use strict';var emlformat=require(_0xb490('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb490('0x1'));var jsonpatch=require(_0xb490('0x2'));var rp=require(_0xb490('0x3'));var moment=require(_0xb490('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xb490('0x5'));var path=require('path');var sox=require(_0xb490('0x6'));var csv=require('to-csv');var ejs=require(_0xb490('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb490('0x8'));var squel=require(_0xb490('0x9'));var crypto=require(_0xb490('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xb490('0xb'));var toCsv=require(_0xb490('0xc'));var querystring=require(_0xb490('0xd'));var Papa=require(_0xb490('0xe'));var Redis=require(_0xb490('0xf'));var authService=require(_0xb490('0x10'));var qs=require(_0xb490('0x11'));var as=require(_0xb490('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb490('0x13'))(_0xb490('0x14'));var utils=require(_0xb490('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xb490('0x16'));var db=require(_0xb490('0x17'))['db'];function respondWithStatusCode(_0x467ea4,_0x21af1e){_0x21af1e=_0x21af1e||0xcc;return function(_0x2d2522){if(_0x2d2522){return _0x467ea4[_0xb490('0x18')](_0x21af1e);}return _0x467ea4[_0xb490('0x19')](_0x21af1e)[_0xb490('0x1a')]();};}function respondWithResult(_0x215d5e,_0x57dc3e){_0x57dc3e=_0x57dc3e||0xc8;return function(_0x38bc71){if(_0x38bc71){return _0x215d5e[_0xb490('0x19')](_0x57dc3e)[_0xb490('0x1b')](_0x38bc71);}};}function respondWithFilteredResult(_0x543f46,_0x26c3aa){return function(_0x311a1f){if(_0x311a1f){var _0x145429=typeof _0x26c3aa[_0xb490('0x1c')]==='undefined'&&typeof _0x26c3aa[_0xb490('0x1d')]===_0xb490('0x1e');var _0x5253af=_0x311a1f[_0xb490('0x1f')];var _0x4901d1=_0x145429?0x0:_0x26c3aa[_0xb490('0x1c')];var _0x3bc713=_0x145429?_0x311a1f['count']:_0x26c3aa[_0xb490('0x1c')]+_0x26c3aa[_0xb490('0x1d')];var _0xa7a066;if(_0x3bc713>=_0x5253af){_0x3bc713=_0x5253af;_0xa7a066=0xc8;}else{_0xa7a066=0xce;}_0x543f46[_0xb490('0x19')](_0xa7a066);return _0x543f46['set'](_0xb490('0x20'),_0x4901d1+'-'+_0x3bc713+'/'+_0x5253af)[_0xb490('0x1b')](_0x311a1f);}return null;};}function patchUpdates(_0x140301){return function(_0x5d22c7){try{jsonpatch[_0xb490('0x21')](_0x5d22c7,_0x140301,!![]);}catch(_0x3bfb26){return BPromise[_0xb490('0x22')](_0x3bfb26);}return _0x5d22c7[_0xb490('0x23')]();};}function saveUpdates(_0x7d96a0,_0x439229){return function(_0x5f0874){if(_0x5f0874){return _0x5f0874[_0xb490('0x24')](_0x7d96a0)['then'](function(_0x485afb){return _0x485afb;});}return null;};}function removeEntity(_0x2327dd,_0x55785e){return function(_0x6cf490){if(_0x6cf490){return _0x6cf490[_0xb490('0x25')]()['then'](function(){var _0x365911=_0x6cf490[_0xb490('0x26')]({'plain':!![]});var _0x423634=_0xb490('0x27');return db['UserProfileResource']['destroy']({'where':{'type':_0x423634,'resourceId':_0x365911['id']}})[_0xb490('0x28')](function(){return _0x6cf490;});})[_0xb490('0x28')](function(){_0x2327dd[_0xb490('0x19')](0xcc)[_0xb490('0x1a')]();});}};}function handleEntityNotFound(_0x3ec8ea,_0x2c5c24){return function(_0x386ea1){if(!_0x386ea1){_0x3ec8ea[_0xb490('0x18')](0x194);}return _0x386ea1;};}function handleError(_0xeeb396,_0x24b9f8){_0x24b9f8=_0x24b9f8||0x1f4;return function(_0x39d6c6){logger[_0xb490('0x29')](_0x39d6c6['stack']);if(_0x39d6c6[_0xb490('0x2a')]){delete _0x39d6c6[_0xb490('0x2a')];}_0xeeb396['status'](_0x24b9f8)[_0xb490('0x2b')](_0x39d6c6);};}exports['index']=function(_0x169672,_0x2932c0){var _0x547b47={},_0x3cd019={},_0x44ec12={'count':0x0,'rows':[]};var _0x547f14=_[_0xb490('0x2c')](db[_0xb490('0x2d')]['rawAttributes'],function(_0x230b3c){return{'name':_0x230b3c['fieldName'],'type':_0x230b3c['type'][_0xb490('0x2e')]};});_0x3cd019[_0xb490('0x2f')]=_[_0xb490('0x2c')](_0x547f14,_0xb490('0x2a'));_0x3cd019[_0xb490('0x30')]=_[_0xb490('0x31')](_0x169672[_0xb490('0x30')]);_0x3cd019[_0xb490('0x32')]=_[_0xb490('0x33')](_0x3cd019[_0xb490('0x2f')],_0x3cd019['query']);_0x547b47[_0xb490('0x34')]=_['intersection'](_0x3cd019[_0xb490('0x2f')],qs[_0xb490('0x35')](_0x169672[_0xb490('0x30')]['fields']));_0x547b47[_0xb490('0x34')]=_0x547b47[_0xb490('0x34')]['length']?_0x547b47[_0xb490('0x34')]:_0x3cd019[_0xb490('0x2f')];if(!_0x169672[_0xb490('0x30')][_0xb490('0x36')](_0xb490('0x37'))){_0x547b47[_0xb490('0x1d')]=qs[_0xb490('0x1d')](_0x169672[_0xb490('0x30')][_0xb490('0x1d')]);_0x547b47['offset']=qs[_0xb490('0x1c')](_0x169672['query'][_0xb490('0x1c')]);}_0x547b47[_0xb490('0x38')]=qs[_0xb490('0x39')](_0x169672[_0xb490('0x30')]['sort']);_0x547b47[_0xb490('0x3a')]=qs[_0xb490('0x32')](_[_0xb490('0x3b')](_0x169672[_0xb490('0x30')],_0x3cd019[_0xb490('0x32')]),_0x547f14);if(_0x169672[_0xb490('0x30')][_0xb490('0x3c')]){_0x547b47[_0xb490('0x3a')]=_['merge'](_0x547b47[_0xb490('0x3a')],{'$or':[{'key':{'$like':'%'+_0x169672['query'][_0xb490('0x3c')]+'%'}},{'value':{'$like':'%'+_0x169672[_0xb490('0x30')]['filter']+'%'}}]});}_0x547b47=_['merge']({},_0x547b47,_0x169672[_0xb490('0x3d')]);var _0x5b8f6b={'where':_0x547b47[_0xb490('0x3a')]};return db[_0xb490('0x2d')][_0xb490('0x1f')](_0x5b8f6b)[_0xb490('0x28')](function(_0x20b5be){_0x44ec12['count']=_0x20b5be;if(_0x169672[_0xb490('0x30')][_0xb490('0x3e')]){_0x547b47[_0xb490('0x3f')]=[{'all':!![]}];}return db['CannedAnswer'][_0xb490('0x40')](_0x547b47);})[_0xb490('0x28')](function(_0x355bd3){_0x44ec12[_0xb490('0x41')]=_0x355bd3;return _0x44ec12;})[_0xb490('0x28')](respondWithFilteredResult(_0x2932c0,_0x547b47))[_0xb490('0x42')](handleError(_0x2932c0,null));};exports[_0xb490('0x43')]=function(_0x36a867,_0x366d74){var _0x59a5e9={'raw':!![],'where':{'id':_0x36a867[_0xb490('0x44')]['id']}},_0x24eea3={};_0x24eea3[_0xb490('0x2f')]=_[_0xb490('0x31')](db[_0xb490('0x2d')][_0xb490('0x45')]);_0x24eea3[_0xb490('0x30')]=_['keys'](_0x36a867[_0xb490('0x30')]);_0x24eea3[_0xb490('0x32')]=_[_0xb490('0x33')](_0x24eea3[_0xb490('0x2f')],_0x24eea3['query']);_0x59a5e9[_0xb490('0x34')]=_['intersection'](_0x24eea3[_0xb490('0x2f')],qs[_0xb490('0x35')](_0x36a867[_0xb490('0x30')][_0xb490('0x35')]));_0x59a5e9[_0xb490('0x34')]=_0x59a5e9[_0xb490('0x34')]['length']?_0x59a5e9[_0xb490('0x34')]:_0x24eea3['model'];if(_0x36a867[_0xb490('0x30')]['includeAll']){_0x59a5e9['include']=[{'all':!![]}];}_0x59a5e9=_['merge']({},_0x59a5e9,_0x36a867[_0xb490('0x3d')]);return db['CannedAnswer'][_0xb490('0x46')](_0x59a5e9)[_0xb490('0x28')](handleEntityNotFound(_0x366d74,null))['then'](respondWithResult(_0x366d74,null))[_0xb490('0x42')](handleError(_0x366d74,null));};exports[_0xb490('0x24')]=function(_0x415256,_0x10bf15){if(_0x415256['body']['id']){delete _0x415256[_0xb490('0x47')]['id'];}return db[_0xb490('0x2d')][_0xb490('0x46')]({'where':{'id':_0x415256['params']['id']}})[_0xb490('0x28')](handleEntityNotFound(_0x10bf15,null))[_0xb490('0x28')](saveUpdates(_0x415256[_0xb490('0x47')],null))[_0xb490('0x28')](respondWithResult(_0x10bf15,null))['catch'](handleError(_0x10bf15,null));};exports[_0xb490('0x25')]=function(_0x6e4802,_0x1070bc){return db[_0xb490('0x2d')]['find']({'where':{'id':_0x6e4802[_0xb490('0x44')]['id']}})['then'](handleEntityNotFound(_0x1070bc,null))['then'](removeEntity(_0x1070bc,null))['catch'](handleError(_0x1070bc,null));};exports[_0xb490('0x48')]=function(_0x2a5236,_0xaec795){var _0x37c435={'key':_0x2a5236[_0xb490('0x47')][_0xb490('0x2e')]};if(_0x2a5236['body'][_0xb490('0x49')]){_0x37c435['MailAccountId']=_0x2a5236[_0xb490('0x47')][_0xb490('0x49')];}else if(_0x2a5236[_0xb490('0x47')][_0xb490('0x4a')]){_0x37c435['SmsAccountId']=_0x2a5236['body'][_0xb490('0x4a')];}else if(_0x2a5236[_0xb490('0x47')][_0xb490('0x4b')]){_0x37c435[_0xb490('0x4b')]=_0x2a5236[_0xb490('0x47')][_0xb490('0x4b')];}else if(_0x2a5236['body'][_0xb490('0x4c')]){_0x37c435[_0xb490('0x4c')]=_0x2a5236['body']['ChatWebsiteId'];}return db['CannedAnswer'][_0xb490('0x46')]({'where':_0x37c435})[_0xb490('0x28')](function(_0x37fdcb){if(_0x37fdcb){throw new db[(_0xb490('0x4d'))]['ValidationError'](_0xb490('0x4e'));}return db[_0xb490('0x2d')][_0xb490('0x48')](_0x2a5236[_0xb490('0x47')]);})[_0xb490('0x28')](function(_0x331a61){var _0x29aca5=_0x2a5236['user']['get']({'plain':!![]});if(!_0x29aca5)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x29aca5['role']===_0xb490('0x4f')){var _0x49731d=_0x331a61[_0xb490('0x26')]({'plain':!![]});return db[_0xb490('0x50')][_0xb490('0x46')]({'where':{'name':_0xb490('0x27'),'userProfileId':_0x29aca5[_0xb490('0x51')]},'raw':!![]})[_0xb490('0x28')](function(_0x5d1539){if(_0x5d1539&&_0x5d1539['autoAssociation']===0x0){return db[_0xb490('0x52')][_0xb490('0x48')]({'name':_0x49731d[_0xb490('0x2a')],'resourceId':_0x49731d['id'],'type':_0x5d1539['name'],'sectionId':_0x5d1539['id']},{})['then'](function(){return _0x331a61;});}else{return _0x331a61;}})[_0xb490('0x42')](function(_0x3bfa97){logger['error'](_0xb490('0x53'),_0x3bfa97);throw _0x3bfa97;});}return _0x331a61;})[_0xb490('0x28')](respondWithResult(_0xaec795,0xc9))['catch'](handleError(_0xaec795,null));};