Built motion from commit efa66e19.|2.6.22
[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 _0xeada=['stack','name','send','index','CannedAnswer','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','where','filter','merge','options','includeAll','include','findAll','rows','show','params','catch','body','find','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','moment','bluebird','mustache','util','sox','to-csv','fs-extra','lodash','squel','jsforce','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','CannedAnswers','UserProfileResource','error'];(function(_0x3054be,_0x1bdc8b){var _0x3df150=function(_0x56cfbf){while(--_0x56cfbf){_0x3054be['push'](_0x3054be['shift']());}};_0x3df150(++_0x1bdc8b);}(_0xeada,0x17b));var _0xaead=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0xeada[_0x2641f9];return _0x585741;};'use strict';var emlformat=require(_0xaead('0x0'));var rimraf=require(_0xaead('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xaead('0x2'));var BPromise=require(_0xaead('0x3'));var Mustache=require(_0xaead('0x4'));var util=require(_0xaead('0x5'));var path=require('path');var sox=require(_0xaead('0x6'));var csv=require(_0xaead('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xaead('0x8'));var _=require(_0xaead('0x9'));var squel=require(_0xaead('0xa'));var crypto=require('crypto');var jsforce=require(_0xaead('0xb'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xaead('0xc'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xaead('0xd'));var hardwareService=require(_0xaead('0xe'));var logger=require(_0xaead('0xf'))('api');var utils=require(_0xaead('0x10'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xaead('0x11'))['db'];function respondWithStatusCode(_0x3fff40,_0x51fa61){_0x51fa61=_0x51fa61||0xcc;return function(_0x1d0c20){if(_0x1d0c20){return _0x3fff40[_0xaead('0x12')](_0x51fa61);}return _0x3fff40[_0xaead('0x13')](_0x51fa61)[_0xaead('0x14')]();};}function respondWithResult(_0x321d9f,_0x5a78b6){_0x5a78b6=_0x5a78b6||0xc8;return function(_0x3ac8fb){if(_0x3ac8fb){return _0x321d9f[_0xaead('0x13')](_0x5a78b6)[_0xaead('0x15')](_0x3ac8fb);}};}function respondWithFilteredResult(_0x436b61,_0xa9ba0f){return function(_0x334b42){if(_0x334b42){var _0x2a079e=typeof _0xa9ba0f[_0xaead('0x16')]===_0xaead('0x17')&&typeof _0xa9ba0f['limit']===_0xaead('0x17');var _0x1ca25f=_0x334b42[_0xaead('0x18')];var _0x436896=_0x2a079e?0x0:_0xa9ba0f['offset'];var _0xa284c6=_0x2a079e?_0x334b42['count']:_0xa9ba0f[_0xaead('0x16')]+_0xa9ba0f[_0xaead('0x19')];var _0x4c2c3b;if(_0xa284c6>=_0x1ca25f){_0xa284c6=_0x1ca25f;_0x4c2c3b=0xc8;}else{_0x4c2c3b=0xce;}_0x436b61[_0xaead('0x13')](_0x4c2c3b);return _0x436b61[_0xaead('0x1a')](_0xaead('0x1b'),_0x436896+'-'+_0xa284c6+'/'+_0x1ca25f)['json'](_0x334b42);}return null;};}function patchUpdates(_0x3b1995){return function(_0x56a2da){try{jsonpatch['apply'](_0x56a2da,_0x3b1995,!![]);}catch(_0x2d309e){return BPromise[_0xaead('0x1c')](_0x2d309e);}return _0x56a2da[_0xaead('0x1d')]();};}function saveUpdates(_0x524d73,_0x499e6e){return function(_0x32e58d){if(_0x32e58d){return _0x32e58d[_0xaead('0x1e')](_0x524d73)[_0xaead('0x1f')](function(_0x3c890b){return _0x3c890b;});}return null;};}function removeEntity(_0x414cd4,_0x4c0d4a){return function(_0x95584f){if(_0x95584f){return _0x95584f[_0xaead('0x20')]()[_0xaead('0x1f')](function(){var _0x54e1e8=_0x95584f['get']({'plain':!![]});var _0x150a15=_0xaead('0x21');return db[_0xaead('0x22')]['destroy']({'where':{'type':_0x150a15,'resourceId':_0x54e1e8['id']}})[_0xaead('0x1f')](function(){return _0x95584f;});})[_0xaead('0x1f')](function(){_0x414cd4[_0xaead('0x13')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2459e4,_0x19bcf1){return function(_0x1e1385){if(!_0x1e1385){_0x2459e4[_0xaead('0x12')](0x194);}return _0x1e1385;};}function handleError(_0x3e3ffb,_0x89096b){_0x89096b=_0x89096b||0x1f4;return function(_0x47f8fe){logger[_0xaead('0x23')](_0x47f8fe[_0xaead('0x24')]);if(_0x47f8fe[_0xaead('0x25')]){delete _0x47f8fe['name'];}_0x3e3ffb[_0xaead('0x13')](_0x89096b)[_0xaead('0x26')](_0x47f8fe);};}exports[_0xaead('0x27')]=function(_0xdc22f4,_0x543a94){var _0x2d143e={},_0x54ee95={},_0x277303={'count':0x0,'rows':[]};var _0x2f5392=_['map'](db[_0xaead('0x28')][_0xaead('0x29')],function(_0x1c54bf){return{'name':_0x1c54bf[_0xaead('0x2a')],'type':_0x1c54bf[_0xaead('0x2b')][_0xaead('0x2c')]};});_0x54ee95[_0xaead('0x2d')]=_[_0xaead('0x2e')](_0x2f5392,_0xaead('0x25'));_0x54ee95[_0xaead('0x2f')]=_[_0xaead('0x30')](_0xdc22f4[_0xaead('0x2f')]);_0x54ee95[_0xaead('0x31')]=_[_0xaead('0x32')](_0x54ee95[_0xaead('0x2d')],_0x54ee95[_0xaead('0x2f')]);_0x2d143e[_0xaead('0x33')]=_[_0xaead('0x32')](_0x54ee95['model'],qs[_0xaead('0x34')](_0xdc22f4[_0xaead('0x2f')][_0xaead('0x34')]));_0x2d143e[_0xaead('0x33')]=_0x2d143e['attributes'][_0xaead('0x35')]?_0x2d143e[_0xaead('0x33')]:_0x54ee95['model'];if(!_0xdc22f4['query'][_0xaead('0x36')]('nolimit')){_0x2d143e['limit']=qs[_0xaead('0x19')](_0xdc22f4[_0xaead('0x2f')]['limit']);_0x2d143e['offset']=qs['offset'](_0xdc22f4[_0xaead('0x2f')][_0xaead('0x16')]);}_0x2d143e['order']=qs['sort'](_0xdc22f4[_0xaead('0x2f')]['sort']);_0x2d143e[_0xaead('0x37')]=qs[_0xaead('0x31')](_['pick'](_0xdc22f4[_0xaead('0x2f')],_0x54ee95['filters']),_0x2f5392);if(_0xdc22f4[_0xaead('0x2f')][_0xaead('0x38')]){_0x2d143e[_0xaead('0x37')]=_[_0xaead('0x39')](_0x2d143e[_0xaead('0x37')],{'$or':[{'key':{'$like':'%'+_0xdc22f4['query'][_0xaead('0x38')]+'%'}},{'value':{'$like':'%'+_0xdc22f4[_0xaead('0x2f')][_0xaead('0x38')]+'%'}}]});}_0x2d143e=_[_0xaead('0x39')]({},_0x2d143e,_0xdc22f4[_0xaead('0x3a')]);var _0x5c4e8e={'where':_0x2d143e[_0xaead('0x37')]};return db[_0xaead('0x28')][_0xaead('0x18')](_0x5c4e8e)[_0xaead('0x1f')](function(_0x2126e5){_0x277303[_0xaead('0x18')]=_0x2126e5;if(_0xdc22f4[_0xaead('0x2f')][_0xaead('0x3b')]){_0x2d143e[_0xaead('0x3c')]=[{'all':!![]}];}return db[_0xaead('0x28')][_0xaead('0x3d')](_0x2d143e);})[_0xaead('0x1f')](function(_0xfa4dc9){_0x277303[_0xaead('0x3e')]=_0xfa4dc9;return _0x277303;})['then'](respondWithFilteredResult(_0x543a94,_0x2d143e))['catch'](handleError(_0x543a94,null));};exports[_0xaead('0x3f')]=function(_0x225565,_0x2c2161){var _0x322849={'raw':!![],'where':{'id':_0x225565[_0xaead('0x40')]['id']}},_0x52a408={};_0x52a408[_0xaead('0x2d')]=_[_0xaead('0x30')](db[_0xaead('0x28')][_0xaead('0x29')]);_0x52a408[_0xaead('0x2f')]=_[_0xaead('0x30')](_0x225565[_0xaead('0x2f')]);_0x52a408[_0xaead('0x31')]=_[_0xaead('0x32')](_0x52a408[_0xaead('0x2d')],_0x52a408[_0xaead('0x2f')]);_0x322849['attributes']=_[_0xaead('0x32')](_0x52a408[_0xaead('0x2d')],qs[_0xaead('0x34')](_0x225565[_0xaead('0x2f')][_0xaead('0x34')]));_0x322849['attributes']=_0x322849[_0xaead('0x33')][_0xaead('0x35')]?_0x322849['attributes']:_0x52a408[_0xaead('0x2d')];if(_0x225565[_0xaead('0x2f')]['includeAll']){_0x322849['include']=[{'all':!![]}];}_0x322849=_[_0xaead('0x39')]({},_0x322849,_0x225565['options']);return db[_0xaead('0x28')]['find'](_0x322849)['then'](handleEntityNotFound(_0x2c2161,null))[_0xaead('0x1f')](respondWithResult(_0x2c2161,null))[_0xaead('0x41')](handleError(_0x2c2161,null));};exports[_0xaead('0x1e')]=function(_0x4730c9,_0x3bc71d){if(_0x4730c9[_0xaead('0x42')]['id']){delete _0x4730c9['body']['id'];}return db[_0xaead('0x28')]['find']({'where':{'id':_0x4730c9[_0xaead('0x40')]['id']}})[_0xaead('0x1f')](handleEntityNotFound(_0x3bc71d,null))['then'](saveUpdates(_0x4730c9[_0xaead('0x42')],null))['then'](respondWithResult(_0x3bc71d,null))[_0xaead('0x41')](handleError(_0x3bc71d,null));};exports[_0xaead('0x20')]=function(_0x3b8bec,_0x231687){return db[_0xaead('0x28')][_0xaead('0x43')]({'where':{'id':_0x3b8bec['params']['id']}})[_0xaead('0x1f')](handleEntityNotFound(_0x231687,null))[_0xaead('0x1f')](removeEntity(_0x231687,null))['catch'](handleError(_0x231687,null));};exports['create']=function(_0x1c103a,_0x296f3e){var _0x1cfe9f={'key':_0x1c103a[_0xaead('0x42')][_0xaead('0x2c')]};if(_0x1c103a[_0xaead('0x42')][_0xaead('0x44')]){_0x1cfe9f['MailAccountId']=_0x1c103a[_0xaead('0x42')][_0xaead('0x44')];}else if(_0x1c103a[_0xaead('0x42')][_0xaead('0x45')]){_0x1cfe9f[_0xaead('0x45')]=_0x1c103a[_0xaead('0x42')][_0xaead('0x45')];}else if(_0x1c103a[_0xaead('0x42')][_0xaead('0x46')]){_0x1cfe9f[_0xaead('0x46')]=_0x1c103a[_0xaead('0x42')][_0xaead('0x46')];}else if(_0x1c103a[_0xaead('0x42')]['ChatWebsiteId']){_0x1cfe9f[_0xaead('0x47')]=_0x1c103a[_0xaead('0x42')][_0xaead('0x47')];}return db['CannedAnswer']['find']({'where':_0x1cfe9f})['then'](function(_0x2f8c76){if(_0x2f8c76){throw new db[(_0xaead('0x48'))][(_0xaead('0x49'))](_0xaead('0x4a'));}return db['CannedAnswer'][_0xaead('0x4b')](_0x1c103a[_0xaead('0x42')]);})[_0xaead('0x1f')](function(_0x84b37b){var _0xc984f9=_0x1c103a[_0xaead('0x4c')][_0xaead('0x4d')]({'plain':!![]});if(!_0xc984f9)throw new Error(_0xaead('0x4e'));if(_0xc984f9[_0xaead('0x4f')]===_0xaead('0x4c')){var _0x54b671=_0x84b37b[_0xaead('0x4d')]({'plain':!![]});return db[_0xaead('0x50')][_0xaead('0x43')]({'where':{'name':_0xaead('0x21'),'userProfileId':_0xc984f9[_0xaead('0x51')]},'raw':!![]})[_0xaead('0x1f')](function(_0x23ad9b){if(_0x23ad9b&&_0x23ad9b['autoAssociation']===0x0){return db[_0xaead('0x22')][_0xaead('0x4b')]({'name':_0x54b671[_0xaead('0x25')],'resourceId':_0x54b671['id'],'type':_0x23ad9b[_0xaead('0x25')],'sectionId':_0x23ad9b['id']},{})[_0xaead('0x1f')](function(){return _0x84b37b;});}else{return _0x84b37b;}})['catch'](function(_0x107487){logger[_0xaead('0x23')](_0xaead('0x52'),_0x107487);throw _0x107487;});}return _0x84b37b;})['then'](respondWithResult(_0x296f3e,0xc9))[_0xaead('0x41')](handleError(_0x296f3e,null));};