30a9bb4a4e22e6549369dd62e01da3c4df521dbf
[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 _0x6bc0=['ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/license/util','status','end','json','undefined','limit','count','offset','apply','update','then','destroy','get','CannedAnswers','UserProfileResource','sendStatus','error','name','send','map','CannedAnswer','rawAttributes','model','query','keys','filters','intersection','attributes','length','nolimit','order','sort','pick','filter','where','merge','options','includeAll','include','findAll','rows','catch','show','params','fields','find','body','create','key','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','to-csv','squel','crypto','jsforce','desk.js','papaparse'];(function(_0x17fa6c,_0x1f7264){var _0x4c4af2=function(_0x7c4438){while(--_0x7c4438){_0x17fa6c['push'](_0x17fa6c['shift']());}};_0x4c4af2(++_0x1f7264);}(_0x6bc0,0x132));var _0x06bc=function(_0x38bfb3,_0x355363){_0x38bfb3=_0x38bfb3-0x0;var _0x1fbffc=_0x6bc0[_0x38bfb3];return _0x1fbffc;};'use strict';var emlformat=require(_0x06bc('0x0'));var rimraf=require(_0x06bc('0x1'));var zipdir=require(_0x06bc('0x2'));var jsonpatch=require(_0x06bc('0x3'));var rp=require('request-promise');var moment=require(_0x06bc('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x06bc('0x5'));var util=require(_0x06bc('0x6'));var path=require(_0x06bc('0x7'));var sox=require('sox');var csv=require(_0x06bc('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x06bc('0x9'));var crypto=require(_0x06bc('0xa'));var jsforce=require(_0x06bc('0xb'));var deskjs=require(_0x06bc('0xc'));var toCsv=require(_0x06bc('0x8'));var querystring=require('querystring');var Papa=require(_0x06bc('0xd'));var Redis=require(_0x06bc('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x06bc('0xf'));var as=require(_0x06bc('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x06bc('0x11'))(_0x06bc('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x06bc('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x256fd5,_0x17c7f1){_0x17c7f1=_0x17c7f1||0xcc;return function(_0x1deff6){if(_0x1deff6){return _0x256fd5['sendStatus'](_0x17c7f1);}return _0x256fd5[_0x06bc('0x14')](_0x17c7f1)[_0x06bc('0x15')]();};}function respondWithResult(_0x34f889,_0x3304fe){_0x3304fe=_0x3304fe||0xc8;return function(_0x2cccc2){if(_0x2cccc2){return _0x34f889[_0x06bc('0x14')](_0x3304fe)[_0x06bc('0x16')](_0x2cccc2);}};}function respondWithFilteredResult(_0x5a2de8,_0x3f3256){return function(_0x8cc143){if(_0x8cc143){var _0x4ea251=typeof _0x3f3256['offset']===_0x06bc('0x17')&&typeof _0x3f3256[_0x06bc('0x18')]===_0x06bc('0x17');var _0x508496=_0x8cc143[_0x06bc('0x19')];var _0x3a3f54=_0x4ea251?0x0:_0x3f3256[_0x06bc('0x1a')];var _0x11d3d6=_0x4ea251?_0x8cc143[_0x06bc('0x19')]:_0x3f3256['offset']+_0x3f3256[_0x06bc('0x18')];var _0x425063;if(_0x11d3d6>=_0x508496){_0x11d3d6=_0x508496;_0x425063=0xc8;}else{_0x425063=0xce;}_0x5a2de8[_0x06bc('0x14')](_0x425063);return _0x5a2de8['set']('Content-Range',_0x3a3f54+'-'+_0x11d3d6+'/'+_0x508496)['json'](_0x8cc143);}return null;};}function patchUpdates(_0x56b40f){return function(_0x126993){try{jsonpatch[_0x06bc('0x1b')](_0x126993,_0x56b40f,!![]);}catch(_0x81811b){return BPromise['reject'](_0x81811b);}return _0x126993['save']();};}function saveUpdates(_0x9e1c00,_0xf2c32d){return function(_0x4f3167){if(_0x4f3167){return _0x4f3167[_0x06bc('0x1c')](_0x9e1c00)[_0x06bc('0x1d')](function(_0x12113d){return _0x12113d;});}return null;};}function removeEntity(_0x26f139,_0x3be4b5){return function(_0x424ce6){if(_0x424ce6){return _0x424ce6[_0x06bc('0x1e')]()[_0x06bc('0x1d')](function(){var _0x148ce9=_0x424ce6[_0x06bc('0x1f')]({'plain':!![]});var _0x4e23fd=_0x06bc('0x20');return db[_0x06bc('0x21')][_0x06bc('0x1e')]({'where':{'type':_0x4e23fd,'resourceId':_0x148ce9['id']}})[_0x06bc('0x1d')](function(){return _0x424ce6;});})[_0x06bc('0x1d')](function(){_0x26f139[_0x06bc('0x14')](0xcc)[_0x06bc('0x15')]();});}};}function handleEntityNotFound(_0x2cb44a,_0x7b2bd1){return function(_0x2cfb7a){if(!_0x2cfb7a){_0x2cb44a[_0x06bc('0x22')](0x194);}return _0x2cfb7a;};}function handleError(_0x1d1adc,_0x115342){_0x115342=_0x115342||0x1f4;return function(_0x1dd837){logger[_0x06bc('0x23')](_0x1dd837['stack']);if(_0x1dd837[_0x06bc('0x24')]){delete _0x1dd837[_0x06bc('0x24')];}_0x1d1adc['status'](_0x115342)[_0x06bc('0x25')](_0x1dd837);};}exports['index']=function(_0x3ed9d9,_0x316365){var _0x4cbf8a={},_0x175d35={},_0x29bcde={'count':0x0,'rows':[]};var _0x2dc241=_[_0x06bc('0x26')](db[_0x06bc('0x27')][_0x06bc('0x28')],function(_0x531b08){return{'name':_0x531b08['fieldName'],'type':_0x531b08['type']['key']};});_0x175d35[_0x06bc('0x29')]=_['map'](_0x2dc241,_0x06bc('0x24'));_0x175d35[_0x06bc('0x2a')]=_[_0x06bc('0x2b')](_0x3ed9d9[_0x06bc('0x2a')]);_0x175d35[_0x06bc('0x2c')]=_['intersection'](_0x175d35[_0x06bc('0x29')],_0x175d35['query']);_0x4cbf8a['attributes']=_[_0x06bc('0x2d')](_0x175d35[_0x06bc('0x29')],qs['fields'](_0x3ed9d9[_0x06bc('0x2a')]['fields']));_0x4cbf8a[_0x06bc('0x2e')]=_0x4cbf8a[_0x06bc('0x2e')][_0x06bc('0x2f')]?_0x4cbf8a[_0x06bc('0x2e')]:_0x175d35[_0x06bc('0x29')];if(!_0x3ed9d9['query']['hasOwnProperty'](_0x06bc('0x30'))){_0x4cbf8a[_0x06bc('0x18')]=qs[_0x06bc('0x18')](_0x3ed9d9['query']['limit']);_0x4cbf8a[_0x06bc('0x1a')]=qs[_0x06bc('0x1a')](_0x3ed9d9[_0x06bc('0x2a')][_0x06bc('0x1a')]);}_0x4cbf8a[_0x06bc('0x31')]=qs[_0x06bc('0x32')](_0x3ed9d9['query'][_0x06bc('0x32')]);_0x4cbf8a['where']=qs[_0x06bc('0x2c')](_[_0x06bc('0x33')](_0x3ed9d9[_0x06bc('0x2a')],_0x175d35[_0x06bc('0x2c')]),_0x2dc241);if(_0x3ed9d9[_0x06bc('0x2a')][_0x06bc('0x34')]){_0x4cbf8a[_0x06bc('0x35')]=_['merge'](_0x4cbf8a[_0x06bc('0x35')],{'$or':[{'key':{'$like':'%'+_0x3ed9d9[_0x06bc('0x2a')][_0x06bc('0x34')]+'%'}},{'value':{'$like':'%'+_0x3ed9d9[_0x06bc('0x2a')][_0x06bc('0x34')]+'%'}}]});}_0x4cbf8a=_[_0x06bc('0x36')]({},_0x4cbf8a,_0x3ed9d9[_0x06bc('0x37')]);var _0x417872={'where':_0x4cbf8a['where']};return db['CannedAnswer'][_0x06bc('0x19')](_0x417872)[_0x06bc('0x1d')](function(_0x2debe1){_0x29bcde[_0x06bc('0x19')]=_0x2debe1;if(_0x3ed9d9['query'][_0x06bc('0x38')]){_0x4cbf8a[_0x06bc('0x39')]=[{'all':!![]}];}return db[_0x06bc('0x27')][_0x06bc('0x3a')](_0x4cbf8a);})[_0x06bc('0x1d')](function(_0x595e8c){_0x29bcde[_0x06bc('0x3b')]=_0x595e8c;return _0x29bcde;})['then'](respondWithFilteredResult(_0x316365,_0x4cbf8a))[_0x06bc('0x3c')](handleError(_0x316365,null));};exports[_0x06bc('0x3d')]=function(_0x12edef,_0x58130a){var _0x3fc9a2={'raw':!![],'where':{'id':_0x12edef[_0x06bc('0x3e')]['id']}},_0x8e9057={};_0x8e9057[_0x06bc('0x29')]=_['keys'](db[_0x06bc('0x27')][_0x06bc('0x28')]);_0x8e9057['query']=_[_0x06bc('0x2b')](_0x12edef[_0x06bc('0x2a')]);_0x8e9057[_0x06bc('0x2c')]=_[_0x06bc('0x2d')](_0x8e9057[_0x06bc('0x29')],_0x8e9057[_0x06bc('0x2a')]);_0x3fc9a2['attributes']=_[_0x06bc('0x2d')](_0x8e9057[_0x06bc('0x29')],qs[_0x06bc('0x3f')](_0x12edef['query'][_0x06bc('0x3f')]));_0x3fc9a2[_0x06bc('0x2e')]=_0x3fc9a2['attributes'][_0x06bc('0x2f')]?_0x3fc9a2[_0x06bc('0x2e')]:_0x8e9057[_0x06bc('0x29')];if(_0x12edef[_0x06bc('0x2a')][_0x06bc('0x38')]){_0x3fc9a2[_0x06bc('0x39')]=[{'all':!![]}];}_0x3fc9a2=_['merge']({},_0x3fc9a2,_0x12edef[_0x06bc('0x37')]);return db[_0x06bc('0x27')][_0x06bc('0x40')](_0x3fc9a2)['then'](handleEntityNotFound(_0x58130a,null))['then'](respondWithResult(_0x58130a,null))[_0x06bc('0x3c')](handleError(_0x58130a,null));};exports[_0x06bc('0x1c')]=function(_0x21ba95,_0x143d6c){if(_0x21ba95[_0x06bc('0x41')]['id']){delete _0x21ba95[_0x06bc('0x41')]['id'];}return db['CannedAnswer'][_0x06bc('0x40')]({'where':{'id':_0x21ba95[_0x06bc('0x3e')]['id']}})['then'](handleEntityNotFound(_0x143d6c,null))['then'](saveUpdates(_0x21ba95[_0x06bc('0x41')],null))[_0x06bc('0x1d')](respondWithResult(_0x143d6c,null))['catch'](handleError(_0x143d6c,null));};exports[_0x06bc('0x1e')]=function(_0x5b48fc,_0x4bddcf){return db[_0x06bc('0x27')][_0x06bc('0x40')]({'where':{'id':_0x5b48fc[_0x06bc('0x3e')]['id']}})[_0x06bc('0x1d')](handleEntityNotFound(_0x4bddcf,null))[_0x06bc('0x1d')](removeEntity(_0x4bddcf,null))[_0x06bc('0x3c')](handleError(_0x4bddcf,null));};exports[_0x06bc('0x42')]=function(_0xb069e3,_0x4fed76){var _0x1c00d9={'key':_0xb069e3['body'][_0x06bc('0x43')]};if(_0xb069e3[_0x06bc('0x41')][_0x06bc('0x44')]){_0x1c00d9[_0x06bc('0x44')]=_0xb069e3[_0x06bc('0x41')][_0x06bc('0x44')];}else if(_0xb069e3['body'][_0x06bc('0x45')]){_0x1c00d9[_0x06bc('0x45')]=_0xb069e3[_0x06bc('0x41')][_0x06bc('0x45')];}else if(_0xb069e3['body'][_0x06bc('0x46')]){_0x1c00d9[_0x06bc('0x46')]=_0xb069e3[_0x06bc('0x41')]['OpenchannelAccountId'];}else if(_0xb069e3[_0x06bc('0x41')][_0x06bc('0x47')]){_0x1c00d9[_0x06bc('0x47')]=_0xb069e3[_0x06bc('0x41')][_0x06bc('0x47')];}return db['CannedAnswer']['find']({'where':_0x1c00d9})[_0x06bc('0x1d')](function(_0x15df51){if(_0x15df51){throw new db[(_0x06bc('0x48'))][(_0x06bc('0x49'))](_0x06bc('0x4a'));}return db[_0x06bc('0x27')][_0x06bc('0x42')](_0xb069e3['body']);})['then'](function(_0x2b345b){var _0x29e2d6=_0xb069e3[_0x06bc('0x4b')]['get']({'plain':!![]});if(!_0x29e2d6)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x29e2d6[_0x06bc('0x4c')]===_0x06bc('0x4b')){var _0x2532de=_0x2b345b[_0x06bc('0x1f')]({'plain':!![]});return db['UserProfileSection'][_0x06bc('0x40')]({'where':{'name':_0x06bc('0x20'),'userProfileId':_0x29e2d6[_0x06bc('0x4d')]},'raw':!![]})[_0x06bc('0x1d')](function(_0x3c860c){if(_0x3c860c&&_0x3c860c[_0x06bc('0x4e')]===0x0){return db[_0x06bc('0x21')][_0x06bc('0x42')]({'name':_0x2532de['name'],'resourceId':_0x2532de['id'],'type':_0x3c860c[_0x06bc('0x24')],'sectionId':_0x3c860c['id']},{})[_0x06bc('0x1d')](function(){return _0x2b345b;});}else{return _0x2b345b;}})[_0x06bc('0x3c')](function(_0x55de83){logger[_0x06bc('0x23')](_0x06bc('0x4f'),_0x55de83);throw _0x55de83;});}return _0x2b345b;})[_0x06bc('0x1d')](respondWithResult(_0x4fed76,0xc9))[_0x06bc('0x3c')](handleError(_0x4fed76,null));};