Built motion from commit 616d3211.|2.6.4
[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 _0x5330=['end','error','stack','index','map','rawAttributes','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','pick','filter','where','merge','options','CannedAnswer','include','findAll','catch','show','params','includeAll','find','body','MailAccountId','SmsAccountId','ChatWebsiteId','The\x20inserted\x20key\x20already\x20exists.','create','user','CannedAnswers','userProfileId','autoAssociation','name','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','count','set','json','apply','reject','save','update','then','destroy','get','UserProfileResource'];(function(_0x5d6ec7,_0xc353f7){var _0x435caa=function(_0x436aec){while(--_0x436aec){_0x5d6ec7['push'](_0x5d6ec7['shift']());}};_0x435caa(++_0xc353f7);}(_0x5330,0x82));var _0x0533=function(_0x99a782,_0x409518){_0x99a782=_0x99a782-0x0;var _0x1a6608=_0x5330[_0x99a782];return _0x1a6608;};'use strict';var emlformat=require(_0x0533('0x0'));var rimraf=require(_0x0533('0x1'));var zipdir=require(_0x0533('0x2'));var jsonpatch=require(_0x0533('0x3'));var rp=require(_0x0533('0x4'));var moment=require('moment');var BPromise=require(_0x0533('0x5'));var Mustache=require(_0x0533('0x6'));var util=require('util');var path=require(_0x0533('0x7'));var sox=require('sox');var csv=require(_0x0533('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0533('0x9'));var _=require(_0x0533('0xa'));var squel=require(_0x0533('0xb'));var crypto=require(_0x0533('0xc'));var jsforce=require(_0x0533('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x0533('0xe'));var Papa=require(_0x0533('0xf'));var Redis=require(_0x0533('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x0533('0x11'));var as=require(_0x0533('0x12'));var hardwareService=require(_0x0533('0x13'));var logger=require(_0x0533('0x14'))(_0x0533('0x15'));var utils=require(_0x0533('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x0533('0x17'));var db=require(_0x0533('0x18'))['db'];function respondWithStatusCode(_0x27f191,_0x504a78){_0x504a78=_0x504a78||0xcc;return function(_0x24e1c4){if(_0x24e1c4){return _0x27f191[_0x0533('0x19')](_0x504a78);}return _0x27f191['status'](_0x504a78)['end']();};}function respondWithResult(_0x48a4f1,_0x8305ef){_0x8305ef=_0x8305ef||0xc8;return function(_0x25c5b4){if(_0x25c5b4){return _0x48a4f1[_0x0533('0x1a')](_0x8305ef)['json'](_0x25c5b4);}};}function respondWithFilteredResult(_0x308422,_0x49b6cf){return function(_0x1e2e7b){if(_0x1e2e7b){var _0xd3eee9=typeof _0x49b6cf[_0x0533('0x1b')]===_0x0533('0x1c')&&typeof _0x49b6cf['limit']===_0x0533('0x1c');var _0x4b83ca=_0x1e2e7b[_0x0533('0x1d')];var _0x251f9c=_0xd3eee9?0x0:_0x49b6cf[_0x0533('0x1b')];var _0x4a1d1c=_0xd3eee9?_0x1e2e7b['count']:_0x49b6cf[_0x0533('0x1b')]+_0x49b6cf['limit'];var _0x28dd96;if(_0x4a1d1c>=_0x4b83ca){_0x4a1d1c=_0x4b83ca;_0x28dd96=0xc8;}else{_0x28dd96=0xce;}_0x308422[_0x0533('0x1a')](_0x28dd96);return _0x308422[_0x0533('0x1e')]('Content-Range',_0x251f9c+'-'+_0x4a1d1c+'/'+_0x4b83ca)[_0x0533('0x1f')](_0x1e2e7b);}return null;};}function patchUpdates(_0x302bbd){return function(_0x34f184){try{jsonpatch[_0x0533('0x20')](_0x34f184,_0x302bbd,!![]);}catch(_0x5367b7){return BPromise[_0x0533('0x21')](_0x5367b7);}return _0x34f184[_0x0533('0x22')]();};}function saveUpdates(_0x3fd75c,_0x1f9e1b){return function(_0x307da3){if(_0x307da3){return _0x307da3[_0x0533('0x23')](_0x3fd75c)[_0x0533('0x24')](function(_0x19867b){return _0x19867b;});}return null;};}function removeEntity(_0x502894,_0x4eefbe){return function(_0x2d758b){if(_0x2d758b){return _0x2d758b[_0x0533('0x25')]()[_0x0533('0x24')](function(){var _0x3a2cae=_0x2d758b[_0x0533('0x26')]({'plain':!![]});var _0x24493f='CannedAnswers';return db[_0x0533('0x27')][_0x0533('0x25')]({'where':{'type':_0x24493f,'resourceId':_0x3a2cae['id']}})['then'](function(){return _0x2d758b;});})['then'](function(){_0x502894[_0x0533('0x1a')](0xcc)[_0x0533('0x28')]();});}};}function handleEntityNotFound(_0x35704a,_0x2dd6d7){return function(_0x2151c3){if(!_0x2151c3){_0x35704a[_0x0533('0x19')](0x194);}return _0x2151c3;};}function handleError(_0x4b0f0f,_0x29f389){_0x29f389=_0x29f389||0x1f4;return function(_0x4a22b4){logger[_0x0533('0x29')](_0x4a22b4[_0x0533('0x2a')]);if(_0x4a22b4['name']){delete _0x4a22b4['name'];}_0x4b0f0f['status'](_0x29f389)['send'](_0x4a22b4);};}exports[_0x0533('0x2b')]=function(_0x3f190,_0x474f6c){var _0xd40499={},_0x51349c={},_0x315c2d={'count':0x0,'rows':[]};var _0x169cf7=_[_0x0533('0x2c')](db['CannedAnswer'][_0x0533('0x2d')],function(_0x55a768){return{'name':_0x55a768['fieldName'],'type':_0x55a768['type'][_0x0533('0x2e')]};});_0x51349c[_0x0533('0x2f')]=_['map'](_0x169cf7,'name');_0x51349c[_0x0533('0x30')]=_[_0x0533('0x31')](_0x3f190[_0x0533('0x30')]);_0x51349c[_0x0533('0x32')]=_[_0x0533('0x33')](_0x51349c[_0x0533('0x2f')],_0x51349c[_0x0533('0x30')]);_0xd40499[_0x0533('0x34')]=_[_0x0533('0x33')](_0x51349c[_0x0533('0x2f')],qs['fields'](_0x3f190[_0x0533('0x30')][_0x0533('0x35')]));_0xd40499[_0x0533('0x34')]=_0xd40499[_0x0533('0x34')][_0x0533('0x36')]?_0xd40499['attributes']:_0x51349c[_0x0533('0x2f')];if(!_0x3f190['query'][_0x0533('0x37')](_0x0533('0x38'))){_0xd40499['limit']=qs[_0x0533('0x39')](_0x3f190[_0x0533('0x30')]['limit']);_0xd40499['offset']=qs[_0x0533('0x1b')](_0x3f190[_0x0533('0x30')][_0x0533('0x1b')]);}_0xd40499[_0x0533('0x3a')]=qs[_0x0533('0x3b')](_0x3f190[_0x0533('0x30')][_0x0533('0x3b')]);_0xd40499['where']=qs[_0x0533('0x32')](_[_0x0533('0x3c')](_0x3f190[_0x0533('0x30')],_0x51349c[_0x0533('0x32')]),_0x169cf7);if(_0x3f190[_0x0533('0x30')][_0x0533('0x3d')]){_0xd40499[_0x0533('0x3e')]=_[_0x0533('0x3f')](_0xd40499[_0x0533('0x3e')],{'$or':[{'key':{'$like':'%'+_0x3f190[_0x0533('0x30')][_0x0533('0x3d')]+'%'}},{'value':{'$like':'%'+_0x3f190[_0x0533('0x30')]['filter']+'%'}}]});}_0xd40499=_[_0x0533('0x3f')]({},_0xd40499,_0x3f190[_0x0533('0x40')]);var _0x82e0c4={'where':_0xd40499[_0x0533('0x3e')]};return db[_0x0533('0x41')][_0x0533('0x1d')](_0x82e0c4)[_0x0533('0x24')](function(_0x16d513){_0x315c2d['count']=_0x16d513;if(_0x3f190[_0x0533('0x30')]['includeAll']){_0xd40499[_0x0533('0x42')]=[{'all':!![]}];}return db[_0x0533('0x41')][_0x0533('0x43')](_0xd40499);})[_0x0533('0x24')](function(_0x1ef60c){_0x315c2d['rows']=_0x1ef60c;return _0x315c2d;})[_0x0533('0x24')](respondWithFilteredResult(_0x474f6c,_0xd40499))[_0x0533('0x44')](handleError(_0x474f6c,null));};exports[_0x0533('0x45')]=function(_0x581897,_0x439236){var _0x18e866={'raw':!![],'where':{'id':_0x581897[_0x0533('0x46')]['id']}},_0x55d746={};_0x55d746[_0x0533('0x2f')]=_[_0x0533('0x31')](db[_0x0533('0x41')]['rawAttributes']);_0x55d746[_0x0533('0x30')]=_[_0x0533('0x31')](_0x581897['query']);_0x55d746[_0x0533('0x32')]=_[_0x0533('0x33')](_0x55d746['model'],_0x55d746[_0x0533('0x30')]);_0x18e866['attributes']=_[_0x0533('0x33')](_0x55d746[_0x0533('0x2f')],qs[_0x0533('0x35')](_0x581897[_0x0533('0x30')][_0x0533('0x35')]));_0x18e866['attributes']=_0x18e866['attributes'][_0x0533('0x36')]?_0x18e866[_0x0533('0x34')]:_0x55d746[_0x0533('0x2f')];if(_0x581897[_0x0533('0x30')][_0x0533('0x47')]){_0x18e866[_0x0533('0x42')]=[{'all':!![]}];}_0x18e866=_[_0x0533('0x3f')]({},_0x18e866,_0x581897[_0x0533('0x40')]);return db[_0x0533('0x41')][_0x0533('0x48')](_0x18e866)['then'](handleEntityNotFound(_0x439236,null))[_0x0533('0x24')](respondWithResult(_0x439236,null))[_0x0533('0x44')](handleError(_0x439236,null));};exports[_0x0533('0x23')]=function(_0x4aa99f,_0xd3cb72){if(_0x4aa99f[_0x0533('0x49')]['id']){delete _0x4aa99f[_0x0533('0x49')]['id'];}return db['CannedAnswer']['find']({'where':{'id':_0x4aa99f[_0x0533('0x46')]['id']}})[_0x0533('0x24')](handleEntityNotFound(_0xd3cb72,null))[_0x0533('0x24')](saveUpdates(_0x4aa99f[_0x0533('0x49')],null))['then'](respondWithResult(_0xd3cb72,null))[_0x0533('0x44')](handleError(_0xd3cb72,null));};exports[_0x0533('0x25')]=function(_0x3fd224,_0x4a8858){return db[_0x0533('0x41')]['find']({'where':{'id':_0x3fd224['params']['id']}})['then'](handleEntityNotFound(_0x4a8858,null))[_0x0533('0x24')](removeEntity(_0x4a8858,null))[_0x0533('0x44')](handleError(_0x4a8858,null));};exports['create']=function(_0xebd983,_0x277c34){var _0x47c3ca={'key':_0xebd983['body'][_0x0533('0x2e')]};if(_0xebd983['body'][_0x0533('0x4a')]){_0x47c3ca[_0x0533('0x4a')]=_0xebd983[_0x0533('0x49')][_0x0533('0x4a')];}else if(_0xebd983[_0x0533('0x49')][_0x0533('0x4b')]){_0x47c3ca[_0x0533('0x4b')]=_0xebd983[_0x0533('0x49')]['SmsAccountId'];}else if(_0xebd983[_0x0533('0x49')]['OpenchannelAccountId']){_0x47c3ca['OpenchannelAccountId']=_0xebd983[_0x0533('0x49')]['OpenchannelAccountId'];}else if(_0xebd983[_0x0533('0x49')][_0x0533('0x4c')]){_0x47c3ca[_0x0533('0x4c')]=_0xebd983[_0x0533('0x49')][_0x0533('0x4c')];}return db[_0x0533('0x41')]['find']({'where':_0x47c3ca})[_0x0533('0x24')](function(_0x2fcedc){if(_0x2fcedc){throw new db['Sequelize']['ValidationError'](_0x0533('0x4d'));}return db[_0x0533('0x41')][_0x0533('0x4e')](_0xebd983['body']);})[_0x0533('0x24')](function(_0x561b8b){var _0xd49b3e=_0xebd983[_0x0533('0x4f')][_0x0533('0x26')]({'plain':!![]});if(!_0xd49b3e)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xd49b3e['role']===_0x0533('0x4f')){var _0x1080c1=_0x561b8b['get']({'plain':!![]});return db['UserProfileSection'][_0x0533('0x48')]({'where':{'name':_0x0533('0x50'),'userProfileId':_0xd49b3e[_0x0533('0x51')]},'raw':!![]})[_0x0533('0x24')](function(_0xad987c){if(_0xad987c&&_0xad987c[_0x0533('0x52')]===0x0){return db['UserProfileResource']['create']({'name':_0x1080c1['name'],'resourceId':_0x1080c1['id'],'type':_0xad987c[_0x0533('0x53')],'sectionId':_0xad987c['id']},{})[_0x0533('0x24')](function(){return _0x561b8b;});}else{return _0x561b8b;}})['catch'](function(_0x51e67f){logger[_0x0533('0x29')](_0x0533('0x54'),_0x51e67f);throw _0x51e67f;});}return _0x561b8b;})[_0x0533('0x24')](respondWithResult(_0x277c34,0xc9))[_0x0533('0x44')](handleError(_0x277c34,null));};