Built motion from commit a61a4a20.|2.5.46
[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 _0xf7d8=['request-promise','moment','mustache','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','save','then','destroy','get','CannedAnswers','error','send','index','CannedAnswer','rawAttributes','fieldName','key','map','query','keys','filters','attributes','intersection','fields','length','model','hasOwnProperty','sort','where','pick','filter','merge','includeAll','include','findAll','rows','params','options','catch','update','body','find','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','role','userProfileId','autoAssociation','UserProfileResource','name','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','zip-dir','fast-json-patch'];(function(_0x1247e8,_0x1d9374){var _0x3bbb92=function(_0x5b1e46){while(--_0x5b1e46){_0x1247e8['push'](_0x1247e8['shift']());}};_0x3bbb92(++_0x1d9374);}(_0xf7d8,0x19d));var _0x8f7d=function(_0x34b1b8,_0x54c9bf){_0x34b1b8=_0x34b1b8-0x0;var _0x542dd8=_0xf7d8[_0x34b1b8];return _0x542dd8;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x8f7d('0x0'));var jsonpatch=require(_0x8f7d('0x1'));var rp=require(_0x8f7d('0x2'));var moment=require(_0x8f7d('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x8f7d('0x4'));var util=require('util');var path=require('path');var sox=require(_0x8f7d('0x5'));var csv=require(_0x8f7d('0x6'));var ejs=require(_0x8f7d('0x7'));var fs=require('fs');var fs_extra=require(_0x8f7d('0x8'));var _=require(_0x8f7d('0x9'));var squel=require('squel');var crypto=require(_0x8f7d('0xa'));var jsforce=require(_0x8f7d('0xb'));var deskjs=require(_0x8f7d('0xc'));var toCsv=require(_0x8f7d('0x6'));var querystring=require('querystring');var Papa=require(_0x8f7d('0xd'));var Redis=require('ioredis');var authService=require(_0x8f7d('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x8f7d('0xf'));var hardwareService=require(_0x8f7d('0x10'));var logger=require(_0x8f7d('0x11'))(_0x8f7d('0x12'));var utils=require('../../config/utils');var config=require(_0x8f7d('0x13'));var licenseUtil=require(_0x8f7d('0x14'));var db=require(_0x8f7d('0x15'))['db'];function respondWithStatusCode(_0x711fb3,_0x2c1030){_0x2c1030=_0x2c1030||0xcc;return function(_0x2a3cb6){if(_0x2a3cb6){return _0x711fb3[_0x8f7d('0x16')](_0x2c1030);}return _0x711fb3[_0x8f7d('0x17')](_0x2c1030)[_0x8f7d('0x18')]();};}function respondWithResult(_0x420c82,_0x34730f){_0x34730f=_0x34730f||0xc8;return function(_0x31d19a){if(_0x31d19a){return _0x420c82[_0x8f7d('0x17')](_0x34730f)[_0x8f7d('0x19')](_0x31d19a);}};}function respondWithFilteredResult(_0x1e4247,_0x417d56){return function(_0x1d1224){if(_0x1d1224){var _0x386989=typeof _0x417d56[_0x8f7d('0x1a')]===_0x8f7d('0x1b')&&typeof _0x417d56[_0x8f7d('0x1c')]===_0x8f7d('0x1b');var _0x74fec5=_0x1d1224['count'];var _0x272862=_0x386989?0x0:_0x417d56['offset'];var _0x471488=_0x386989?_0x1d1224[_0x8f7d('0x1d')]:_0x417d56[_0x8f7d('0x1a')]+_0x417d56[_0x8f7d('0x1c')];var _0x1dfa7b;if(_0x471488>=_0x74fec5){_0x471488=_0x74fec5;_0x1dfa7b=0xc8;}else{_0x1dfa7b=0xce;}_0x1e4247[_0x8f7d('0x17')](_0x1dfa7b);return _0x1e4247[_0x8f7d('0x1e')]('Content-Range',_0x272862+'-'+_0x471488+'/'+_0x74fec5)[_0x8f7d('0x19')](_0x1d1224);}return null;};}function patchUpdates(_0x565182){return function(_0x2197bd){try{jsonpatch[_0x8f7d('0x1f')](_0x2197bd,_0x565182,!![]);}catch(_0x5baa1e){return BPromise['reject'](_0x5baa1e);}return _0x2197bd[_0x8f7d('0x20')]();};}function saveUpdates(_0xc1d96c,_0x3f57d8){return function(_0x38e61b){if(_0x38e61b){return _0x38e61b['update'](_0xc1d96c)[_0x8f7d('0x21')](function(_0x5d6353){return _0x5d6353;});}return null;};}function removeEntity(_0x486e44,_0x586130){return function(_0x5e00de){if(_0x5e00de){return _0x5e00de[_0x8f7d('0x22')]()['then'](function(){var _0x5d1986=_0x5e00de[_0x8f7d('0x23')]({'plain':!![]});var _0xcc26fe=_0x8f7d('0x24');return db['UserProfileResource']['destroy']({'where':{'type':_0xcc26fe,'resourceId':_0x5d1986['id']}})[_0x8f7d('0x21')](function(){return _0x5e00de;});})['then'](function(){_0x486e44['status'](0xcc)[_0x8f7d('0x18')]();});}};}function handleEntityNotFound(_0x37fca7,_0x1a184a){return function(_0x48154c){if(!_0x48154c){_0x37fca7[_0x8f7d('0x16')](0x194);}return _0x48154c;};}function handleError(_0x436933,_0x57fb4f){_0x57fb4f=_0x57fb4f||0x1f4;return function(_0x1e3cf2){logger[_0x8f7d('0x25')](_0x1e3cf2['stack']);if(_0x1e3cf2['name']){delete _0x1e3cf2['name'];}_0x436933[_0x8f7d('0x17')](_0x57fb4f)[_0x8f7d('0x26')](_0x1e3cf2);};}exports[_0x8f7d('0x27')]=function(_0x530f8a,_0x28a518){var _0x1d8932={},_0x323644={},_0x305252={'count':0x0,'rows':[]};var _0x27e984=_['map'](db[_0x8f7d('0x28')][_0x8f7d('0x29')],function(_0x169187){return{'name':_0x169187[_0x8f7d('0x2a')],'type':_0x169187['type'][_0x8f7d('0x2b')]};});_0x323644['model']=_[_0x8f7d('0x2c')](_0x27e984,'name');_0x323644[_0x8f7d('0x2d')]=_[_0x8f7d('0x2e')](_0x530f8a[_0x8f7d('0x2d')]);_0x323644[_0x8f7d('0x2f')]=_['intersection'](_0x323644['model'],_0x323644['query']);_0x1d8932[_0x8f7d('0x30')]=_[_0x8f7d('0x31')](_0x323644['model'],qs['fields'](_0x530f8a[_0x8f7d('0x2d')][_0x8f7d('0x32')]));_0x1d8932[_0x8f7d('0x30')]=_0x1d8932[_0x8f7d('0x30')][_0x8f7d('0x33')]?_0x1d8932[_0x8f7d('0x30')]:_0x323644[_0x8f7d('0x34')];if(!_0x530f8a[_0x8f7d('0x2d')][_0x8f7d('0x35')]('nolimit')){_0x1d8932[_0x8f7d('0x1c')]=qs[_0x8f7d('0x1c')](_0x530f8a[_0x8f7d('0x2d')][_0x8f7d('0x1c')]);_0x1d8932['offset']=qs[_0x8f7d('0x1a')](_0x530f8a[_0x8f7d('0x2d')][_0x8f7d('0x1a')]);}_0x1d8932['order']=qs[_0x8f7d('0x36')](_0x530f8a[_0x8f7d('0x2d')][_0x8f7d('0x36')]);_0x1d8932[_0x8f7d('0x37')]=qs[_0x8f7d('0x2f')](_[_0x8f7d('0x38')](_0x530f8a[_0x8f7d('0x2d')],_0x323644[_0x8f7d('0x2f')]),_0x27e984);if(_0x530f8a[_0x8f7d('0x2d')][_0x8f7d('0x39')]){_0x1d8932['where']=_[_0x8f7d('0x3a')](_0x1d8932['where'],{'$or':[{'key':{'$like':'%'+_0x530f8a[_0x8f7d('0x2d')]['filter']+'%'}},{'value':{'$like':'%'+_0x530f8a['query'][_0x8f7d('0x39')]+'%'}}]});}_0x1d8932=_['merge']({},_0x1d8932,_0x530f8a['options']);var _0x2855fa={'where':_0x1d8932[_0x8f7d('0x37')]};return db['CannedAnswer'][_0x8f7d('0x1d')](_0x2855fa)[_0x8f7d('0x21')](function(_0xa78781){_0x305252['count']=_0xa78781;if(_0x530f8a[_0x8f7d('0x2d')][_0x8f7d('0x3b')]){_0x1d8932[_0x8f7d('0x3c')]=[{'all':!![]}];}return db[_0x8f7d('0x28')][_0x8f7d('0x3d')](_0x1d8932);})['then'](function(_0xf086b2){_0x305252[_0x8f7d('0x3e')]=_0xf086b2;return _0x305252;})[_0x8f7d('0x21')](respondWithFilteredResult(_0x28a518,_0x1d8932))['catch'](handleError(_0x28a518,null));};exports['show']=function(_0x5c2008,_0x5ff79b){var _0x35952a={'raw':!![],'where':{'id':_0x5c2008[_0x8f7d('0x3f')]['id']}},_0x2043f7={};_0x2043f7[_0x8f7d('0x34')]=_[_0x8f7d('0x2e')](db[_0x8f7d('0x28')]['rawAttributes']);_0x2043f7[_0x8f7d('0x2d')]=_[_0x8f7d('0x2e')](_0x5c2008[_0x8f7d('0x2d')]);_0x2043f7['filters']=_[_0x8f7d('0x31')](_0x2043f7[_0x8f7d('0x34')],_0x2043f7[_0x8f7d('0x2d')]);_0x35952a[_0x8f7d('0x30')]=_['intersection'](_0x2043f7[_0x8f7d('0x34')],qs[_0x8f7d('0x32')](_0x5c2008[_0x8f7d('0x2d')][_0x8f7d('0x32')]));_0x35952a[_0x8f7d('0x30')]=_0x35952a[_0x8f7d('0x30')][_0x8f7d('0x33')]?_0x35952a[_0x8f7d('0x30')]:_0x2043f7[_0x8f7d('0x34')];if(_0x5c2008[_0x8f7d('0x2d')][_0x8f7d('0x3b')]){_0x35952a[_0x8f7d('0x3c')]=[{'all':!![]}];}_0x35952a=_[_0x8f7d('0x3a')]({},_0x35952a,_0x5c2008[_0x8f7d('0x40')]);return db[_0x8f7d('0x28')]['find'](_0x35952a)[_0x8f7d('0x21')](handleEntityNotFound(_0x5ff79b,null))[_0x8f7d('0x21')](respondWithResult(_0x5ff79b,null))[_0x8f7d('0x41')](handleError(_0x5ff79b,null));};exports[_0x8f7d('0x42')]=function(_0x367710,_0x28ecd9){if(_0x367710['body']['id']){delete _0x367710[_0x8f7d('0x43')]['id'];}return db[_0x8f7d('0x28')]['find']({'where':{'id':_0x367710['params']['id']}})[_0x8f7d('0x21')](handleEntityNotFound(_0x28ecd9,null))[_0x8f7d('0x21')](saveUpdates(_0x367710['body'],null))[_0x8f7d('0x21')](respondWithResult(_0x28ecd9,null))[_0x8f7d('0x41')](handleError(_0x28ecd9,null));};exports['destroy']=function(_0x2f5b81,_0x4fbae9){return db[_0x8f7d('0x28')][_0x8f7d('0x44')]({'where':{'id':_0x2f5b81[_0x8f7d('0x3f')]['id']}})['then'](handleEntityNotFound(_0x4fbae9,null))[_0x8f7d('0x21')](removeEntity(_0x4fbae9,null))['catch'](handleError(_0x4fbae9,null));};exports[_0x8f7d('0x45')]=function(_0x173ebd,_0x559735){var _0x5f5afb={'key':_0x173ebd[_0x8f7d('0x43')]['key']};if(_0x173ebd[_0x8f7d('0x43')][_0x8f7d('0x46')]){_0x5f5afb[_0x8f7d('0x46')]=_0x173ebd[_0x8f7d('0x43')]['MailAccountId'];}else if(_0x173ebd[_0x8f7d('0x43')][_0x8f7d('0x47')]){_0x5f5afb[_0x8f7d('0x47')]=_0x173ebd[_0x8f7d('0x43')][_0x8f7d('0x47')];}else if(_0x173ebd[_0x8f7d('0x43')][_0x8f7d('0x48')]){_0x5f5afb[_0x8f7d('0x48')]=_0x173ebd[_0x8f7d('0x43')][_0x8f7d('0x48')];}else if(_0x173ebd['body'][_0x8f7d('0x49')]){_0x5f5afb[_0x8f7d('0x49')]=_0x173ebd['body'][_0x8f7d('0x49')];}return db[_0x8f7d('0x28')][_0x8f7d('0x44')]({'where':_0x5f5afb})[_0x8f7d('0x21')](function(_0x5b00e3){if(_0x5b00e3){throw new db['Sequelize'][(_0x8f7d('0x4a'))](_0x8f7d('0x4b'));}return db['CannedAnswer'][_0x8f7d('0x45')](_0x173ebd[_0x8f7d('0x43')]);})[_0x8f7d('0x21')](function(_0x19f21c){var _0x3661a9=_0x173ebd[_0x8f7d('0x4c')][_0x8f7d('0x23')]({'plain':!![]});if(!_0x3661a9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3661a9[_0x8f7d('0x4d')]===_0x8f7d('0x4c')){var _0x111958=_0x19f21c['get']({'plain':!![]});return db['UserProfileSection'][_0x8f7d('0x44')]({'where':{'name':_0x8f7d('0x24'),'userProfileId':_0x3661a9[_0x8f7d('0x4e')]},'raw':!![]})['then'](function(_0x4692b0){if(_0x4692b0&&_0x4692b0[_0x8f7d('0x4f')]===0x0){return db[_0x8f7d('0x50')]['create']({'name':_0x111958['name'],'resourceId':_0x111958['id'],'type':_0x4692b0[_0x8f7d('0x51')],'sectionId':_0x4692b0['id']},{})[_0x8f7d('0x21')](function(){return _0x19f21c;});}else{return _0x19f21c;}})[_0x8f7d('0x41')](function(_0x49af2f){logger['error'](_0x8f7d('0x52'),_0x49af2f);throw _0x49af2f;});}return _0x19f21c;})['then'](respondWithResult(_0x559735,0xc9))[_0x8f7d('0x41')](handleError(_0x559735,null));};