73511e6d71cf66079481d4e27d60f03fe26535db
[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 _0xa123=['keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','CannedAnswer','includeAll','findAll','rows','show','params','include','options','find','catch','body','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','apply','reject','save','update','then','destroy','get','CannedAnswers','UserProfileResource','error','name','map','rawAttributes','type','key','query'];(function(_0x559d14,_0x3a0215){var _0x595aed=function(_0x56fdb9){while(--_0x56fdb9){_0x559d14['push'](_0x559d14['shift']());}};_0x595aed(++_0x3a0215);}(_0xa123,0x7f));var _0x3a12=function(_0x495857,_0x4c04b2){_0x495857=_0x495857-0x0;var _0x252d16=_0xa123[_0x495857];return _0x252d16;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3a12('0x0'));var zipdir=require(_0x3a12('0x1'));var jsonpatch=require(_0x3a12('0x2'));var rp=require(_0x3a12('0x3'));var moment=require(_0x3a12('0x4'));var BPromise=require(_0x3a12('0x5'));var Mustache=require(_0x3a12('0x6'));var util=require(_0x3a12('0x7'));var path=require(_0x3a12('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x3a12('0x9'));var fs=require('fs');var fs_extra=require(_0x3a12('0xa'));var _=require(_0x3a12('0xb'));var squel=require(_0x3a12('0xc'));var crypto=require('crypto');var jsforce=require(_0x3a12('0xd'));var deskjs=require(_0x3a12('0xe'));var toCsv=require('to-csv');var querystring=require(_0x3a12('0xf'));var Papa=require(_0x3a12('0x10'));var Redis=require(_0x3a12('0x11'));var authService=require(_0x3a12('0x12'));var qs=require(_0x3a12('0x13'));var as=require(_0x3a12('0x14'));var hardwareService=require(_0x3a12('0x15'));var logger=require(_0x3a12('0x16'))(_0x3a12('0x17'));var utils=require(_0x3a12('0x18'));var config=require(_0x3a12('0x19'));var licenseUtil=require(_0x3a12('0x1a'));var db=require(_0x3a12('0x1b'))['db'];function respondWithStatusCode(_0x20cce2,_0x361696){_0x361696=_0x361696||0xcc;return function(_0x4871f6){if(_0x4871f6){return _0x20cce2[_0x3a12('0x1c')](_0x361696);}return _0x20cce2[_0x3a12('0x1d')](_0x361696)[_0x3a12('0x1e')]();};}function respondWithResult(_0x4177f4,_0x109fb8){_0x109fb8=_0x109fb8||0xc8;return function(_0x1998e2){if(_0x1998e2){return _0x4177f4['status'](_0x109fb8)[_0x3a12('0x1f')](_0x1998e2);}};}function respondWithFilteredResult(_0x42f70b,_0x4a79a0){return function(_0x3c3805){if(_0x3c3805){var _0x296f76=typeof _0x4a79a0['offset']===_0x3a12('0x20')&&typeof _0x4a79a0[_0x3a12('0x21')]===_0x3a12('0x20');var _0x1b0d55=_0x3c3805[_0x3a12('0x22')];var _0x4fc76f=_0x296f76?0x0:_0x4a79a0[_0x3a12('0x23')];var _0x41e2c9=_0x296f76?_0x3c3805[_0x3a12('0x22')]:_0x4a79a0[_0x3a12('0x23')]+_0x4a79a0[_0x3a12('0x21')];var _0x38ccd2;if(_0x41e2c9>=_0x1b0d55){_0x41e2c9=_0x1b0d55;_0x38ccd2=0xc8;}else{_0x38ccd2=0xce;}_0x42f70b[_0x3a12('0x1d')](_0x38ccd2);return _0x42f70b[_0x3a12('0x24')]('Content-Range',_0x4fc76f+'-'+_0x41e2c9+'/'+_0x1b0d55)['json'](_0x3c3805);}return null;};}function patchUpdates(_0x3b1de0){return function(_0x2f932f){try{jsonpatch[_0x3a12('0x25')](_0x2f932f,_0x3b1de0,!![]);}catch(_0x5c10cf){return BPromise[_0x3a12('0x26')](_0x5c10cf);}return _0x2f932f[_0x3a12('0x27')]();};}function saveUpdates(_0x394fe1,_0x1f88ee){return function(_0x26e014){if(_0x26e014){return _0x26e014[_0x3a12('0x28')](_0x394fe1)[_0x3a12('0x29')](function(_0x5c0089){return _0x5c0089;});}return null;};}function removeEntity(_0x5b2ca1,_0x1ddb2e){return function(_0x28eec7){if(_0x28eec7){return _0x28eec7[_0x3a12('0x2a')]()[_0x3a12('0x29')](function(){var _0xd3611=_0x28eec7[_0x3a12('0x2b')]({'plain':!![]});var _0x39648d=_0x3a12('0x2c');return db[_0x3a12('0x2d')][_0x3a12('0x2a')]({'where':{'type':_0x39648d,'resourceId':_0xd3611['id']}})['then'](function(){return _0x28eec7;});})[_0x3a12('0x29')](function(){_0x5b2ca1[_0x3a12('0x1d')](0xcc)[_0x3a12('0x1e')]();});}};}function handleEntityNotFound(_0x26a5d4,_0x3fb260){return function(_0xc8dbbf){if(!_0xc8dbbf){_0x26a5d4[_0x3a12('0x1c')](0x194);}return _0xc8dbbf;};}function handleError(_0x349c1c,_0x36afbf){_0x36afbf=_0x36afbf||0x1f4;return function(_0x499371){logger[_0x3a12('0x2e')](_0x499371['stack']);if(_0x499371['name']){delete _0x499371[_0x3a12('0x2f')];}_0x349c1c['status'](_0x36afbf)['send'](_0x499371);};}exports['index']=function(_0xf9a097,_0x59dbe5){var _0x3f4f9d={},_0x3bcaab={},_0x5acc5b={'count':0x0,'rows':[]};var _0x4d94d5=_[_0x3a12('0x30')](db['CannedAnswer'][_0x3a12('0x31')],function(_0x1f2920){return{'name':_0x1f2920['fieldName'],'type':_0x1f2920[_0x3a12('0x32')][_0x3a12('0x33')]};});_0x3bcaab['model']=_[_0x3a12('0x30')](_0x4d94d5,_0x3a12('0x2f'));_0x3bcaab[_0x3a12('0x34')]=_[_0x3a12('0x35')](_0xf9a097[_0x3a12('0x34')]);_0x3bcaab[_0x3a12('0x36')]=_[_0x3a12('0x37')](_0x3bcaab[_0x3a12('0x38')],_0x3bcaab[_0x3a12('0x34')]);_0x3f4f9d[_0x3a12('0x39')]=_[_0x3a12('0x37')](_0x3bcaab[_0x3a12('0x38')],qs[_0x3a12('0x3a')](_0xf9a097[_0x3a12('0x34')][_0x3a12('0x3a')]));_0x3f4f9d['attributes']=_0x3f4f9d[_0x3a12('0x39')]['length']?_0x3f4f9d[_0x3a12('0x39')]:_0x3bcaab[_0x3a12('0x38')];if(!_0xf9a097[_0x3a12('0x34')][_0x3a12('0x3b')](_0x3a12('0x3c'))){_0x3f4f9d[_0x3a12('0x21')]=qs['limit'](_0xf9a097[_0x3a12('0x34')]['limit']);_0x3f4f9d['offset']=qs[_0x3a12('0x23')](_0xf9a097['query'][_0x3a12('0x23')]);}_0x3f4f9d[_0x3a12('0x3d')]=qs[_0x3a12('0x3e')](_0xf9a097[_0x3a12('0x34')][_0x3a12('0x3e')]);_0x3f4f9d[_0x3a12('0x3f')]=qs[_0x3a12('0x36')](_[_0x3a12('0x40')](_0xf9a097[_0x3a12('0x34')],_0x3bcaab[_0x3a12('0x36')]),_0x4d94d5);if(_0xf9a097[_0x3a12('0x34')][_0x3a12('0x41')]){_0x3f4f9d['where']=_[_0x3a12('0x42')](_0x3f4f9d['where'],{'$or':[{'key':{'$like':'%'+_0xf9a097[_0x3a12('0x34')]['filter']+'%'}},{'value':{'$like':'%'+_0xf9a097[_0x3a12('0x34')][_0x3a12('0x41')]+'%'}}]});}_0x3f4f9d=_[_0x3a12('0x42')]({},_0x3f4f9d,_0xf9a097['options']);var _0x368572={'where':_0x3f4f9d['where']};return db[_0x3a12('0x43')][_0x3a12('0x22')](_0x368572)[_0x3a12('0x29')](function(_0x3861bd){_0x5acc5b['count']=_0x3861bd;if(_0xf9a097[_0x3a12('0x34')][_0x3a12('0x44')]){_0x3f4f9d['include']=[{'all':!![]}];}return db[_0x3a12('0x43')][_0x3a12('0x45')](_0x3f4f9d);})[_0x3a12('0x29')](function(_0x3e1d74){_0x5acc5b[_0x3a12('0x46')]=_0x3e1d74;return _0x5acc5b;})[_0x3a12('0x29')](respondWithFilteredResult(_0x59dbe5,_0x3f4f9d))['catch'](handleError(_0x59dbe5,null));};exports[_0x3a12('0x47')]=function(_0x3dbd8b,_0x524843){var _0x33fd2f={'raw':!![],'where':{'id':_0x3dbd8b[_0x3a12('0x48')]['id']}},_0x5e1020={};_0x5e1020[_0x3a12('0x38')]=_[_0x3a12('0x35')](db[_0x3a12('0x43')]['rawAttributes']);_0x5e1020[_0x3a12('0x34')]=_['keys'](_0x3dbd8b[_0x3a12('0x34')]);_0x5e1020['filters']=_[_0x3a12('0x37')](_0x5e1020['model'],_0x5e1020[_0x3a12('0x34')]);_0x33fd2f['attributes']=_[_0x3a12('0x37')](_0x5e1020[_0x3a12('0x38')],qs[_0x3a12('0x3a')](_0x3dbd8b['query']['fields']));_0x33fd2f[_0x3a12('0x39')]=_0x33fd2f[_0x3a12('0x39')]['length']?_0x33fd2f['attributes']:_0x5e1020[_0x3a12('0x38')];if(_0x3dbd8b[_0x3a12('0x34')][_0x3a12('0x44')]){_0x33fd2f[_0x3a12('0x49')]=[{'all':!![]}];}_0x33fd2f=_['merge']({},_0x33fd2f,_0x3dbd8b[_0x3a12('0x4a')]);return db[_0x3a12('0x43')][_0x3a12('0x4b')](_0x33fd2f)['then'](handleEntityNotFound(_0x524843,null))[_0x3a12('0x29')](respondWithResult(_0x524843,null))[_0x3a12('0x4c')](handleError(_0x524843,null));};exports[_0x3a12('0x28')]=function(_0x3b692c,_0xfa62){if(_0x3b692c[_0x3a12('0x4d')]['id']){delete _0x3b692c[_0x3a12('0x4d')]['id'];}return db[_0x3a12('0x43')][_0x3a12('0x4b')]({'where':{'id':_0x3b692c[_0x3a12('0x48')]['id']}})[_0x3a12('0x29')](handleEntityNotFound(_0xfa62,null))[_0x3a12('0x29')](saveUpdates(_0x3b692c[_0x3a12('0x4d')],null))[_0x3a12('0x29')](respondWithResult(_0xfa62,null))[_0x3a12('0x4c')](handleError(_0xfa62,null));};exports[_0x3a12('0x2a')]=function(_0x4f38c6,_0x27c13f){return db['CannedAnswer'][_0x3a12('0x4b')]({'where':{'id':_0x4f38c6['params']['id']}})[_0x3a12('0x29')](handleEntityNotFound(_0x27c13f,null))[_0x3a12('0x29')](removeEntity(_0x27c13f,null))['catch'](handleError(_0x27c13f,null));};exports[_0x3a12('0x4e')]=function(_0x109584,_0xefee9b){var _0x5e1647={'key':_0x109584[_0x3a12('0x4d')][_0x3a12('0x33')]};if(_0x109584[_0x3a12('0x4d')][_0x3a12('0x4f')]){_0x5e1647[_0x3a12('0x4f')]=_0x109584[_0x3a12('0x4d')][_0x3a12('0x4f')];}else if(_0x109584['body']['SmsAccountId']){_0x5e1647['SmsAccountId']=_0x109584['body'][_0x3a12('0x50')];}else if(_0x109584[_0x3a12('0x4d')]['OpenchannelAccountId']){_0x5e1647[_0x3a12('0x51')]=_0x109584[_0x3a12('0x4d')]['OpenchannelAccountId'];}else if(_0x109584[_0x3a12('0x4d')][_0x3a12('0x52')]){_0x5e1647[_0x3a12('0x52')]=_0x109584[_0x3a12('0x4d')]['ChatWebsiteId'];}return db[_0x3a12('0x43')][_0x3a12('0x4b')]({'where':_0x5e1647})['then'](function(_0x18a909){if(_0x18a909){throw new db[(_0x3a12('0x53'))][(_0x3a12('0x54'))]('The\x20inserted\x20key\x20already\x20exists.');}return db[_0x3a12('0x43')][_0x3a12('0x4e')](_0x109584[_0x3a12('0x4d')]);})['then'](function(_0x102205){var _0x5f1631=_0x109584['user'][_0x3a12('0x2b')]({'plain':!![]});if(!_0x5f1631)throw new Error(_0x3a12('0x55'));if(_0x5f1631[_0x3a12('0x56')]===_0x3a12('0x57')){var _0x3a691c=_0x102205[_0x3a12('0x2b')]({'plain':!![]});return db[_0x3a12('0x58')][_0x3a12('0x4b')]({'where':{'name':_0x3a12('0x2c'),'userProfileId':_0x5f1631['userProfileId']},'raw':!![]})['then'](function(_0xd2a945){if(_0xd2a945&&_0xd2a945['autoAssociation']===0x0){return db[_0x3a12('0x2d')][_0x3a12('0x4e')]({'name':_0x3a691c[_0x3a12('0x2f')],'resourceId':_0x3a691c['id'],'type':_0xd2a945[_0x3a12('0x2f')],'sectionId':_0xd2a945['id']},{})[_0x3a12('0x29')](function(){return _0x102205;});}else{return _0x102205;}})[_0x3a12('0x4c')](function(_0x4c1100){logger[_0x3a12('0x2e')](_0x3a12('0x59'),_0x4c1100);throw _0x4c1100;});}return _0x102205;})[_0x3a12('0x29')](respondWithResult(_0xefee9b,0xc9))['catch'](handleError(_0xefee9b,null));};