682e7f54f6be706c9bee41d3f56f8d6beda1b2eb
[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 _0x16c4=['html-pdf','rimraf','zip-dir','moment','path','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','count','offset','limit','set','Content-Range','json','apply','reject','save','update','then','UserProfileResource','destroy','end','error','stack','name','index','map','CannedAnswer','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','VIRTUAL','options','includeAll','include','findAll','rows','params','intersection','find','catch','body','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','The\x20inserted\x20key\x20already\x20exists.','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s'];(function(_0x2de81b,_0x322f1d){var _0x3df553=function(_0x551338){while(--_0x551338){_0x2de81b['push'](_0x2de81b['shift']());}};_0x3df553(++_0x322f1d);}(_0x16c4,0xa0));var _0x416c=function(_0x175a55,_0x4082fd){_0x175a55=_0x175a55-0x0;var _0x167adf=_0x16c4[_0x175a55];return _0x167adf;};'use strict';var pdf=require(_0x416c('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x416c('0x1'));var zipdir=require(_0x416c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x416c('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x416c('0x4'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x416c('0x5'));var fs=require('fs');var _=require(_0x416c('0x6'));var squel=require(_0x416c('0x7'));var crypto=require(_0x416c('0x8'));var jsforce=require(_0x416c('0x9'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x416c('0xa'));var Papa=require(_0x416c('0xb'));var Redis=require(_0x416c('0xc'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x416c('0xd'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x416c('0xe'))('api');var utils=require(_0x416c('0xf'));var config=require(_0x416c('0x10'));var db=require(_0x416c('0x11'))['db'];function respondWithStatusCode(_0x3436ca,_0x35e189){_0x35e189=_0x35e189||0xcc;return function(_0x2f62e3){if(_0x2f62e3){return _0x3436ca[_0x416c('0x12')](_0x35e189);}return _0x3436ca[_0x416c('0x13')](_0x35e189)['end']();};}function respondWithResult(_0x12e22d,_0x511b04){_0x511b04=_0x511b04||0xc8;return function(_0x572e2d){if(_0x572e2d){return _0x12e22d['status'](_0x511b04)['json'](_0x572e2d);}};}function respondWithFilteredResult(_0x22e1d4,_0x1cd444){return function(_0x4e939b){if(_0x4e939b){var _0x17fd8a=_0x4e939b[_0x416c('0x14')],_0x133650=_0x1cd444['offset'],_0x32817d=_0x1cd444[_0x416c('0x15')]+_0x1cd444[_0x416c('0x16')],_0x5953d4;if(_0x32817d>=_0x17fd8a){_0x32817d=_0x17fd8a;_0x5953d4=0xc8;}else{_0x5953d4=0xce;}_0x22e1d4['status'](_0x5953d4);return _0x22e1d4[_0x416c('0x17')](_0x416c('0x18'),_0x133650+'-'+_0x32817d+'/'+_0x17fd8a)[_0x416c('0x19')](_0x4e939b);}return null;};}function patchUpdates(_0x506bf7){return function(_0x443f8f){try{jsonpatch[_0x416c('0x1a')](_0x443f8f,_0x506bf7,!![]);}catch(_0x45da4c){return BPromise[_0x416c('0x1b')](_0x45da4c);}return _0x443f8f[_0x416c('0x1c')]();};}function saveUpdates(_0x47d3ac,_0x1735b0){return function(_0x2ac196){if(_0x2ac196){return _0x2ac196[_0x416c('0x1d')](_0x47d3ac)[_0x416c('0x1e')](function(_0x5eed83){return _0x5eed83;});}return null;};}function removeEntity(_0x1a12ac,_0x3cab23){return function(_0x5ab23f){if(_0x5ab23f){return _0x5ab23f['destroy']()[_0x416c('0x1e')](function(){var _0x32b8b4=_0x5ab23f['get']({'plain':!![]});var _0x10be45='CannedAnswers';return db[_0x416c('0x1f')][_0x416c('0x20')]({'where':{'type':_0x10be45,'resourceId':_0x32b8b4['id']}})[_0x416c('0x1e')](function(){return _0x5ab23f;});})['then'](function(){_0x1a12ac[_0x416c('0x13')](0xcc)[_0x416c('0x21')]();});}};}function handleEntityNotFound(_0x4217d0,_0x12f3ac){return function(_0x4d6b69){if(!_0x4d6b69){_0x4217d0['sendStatus'](0x194);}return _0x4d6b69;};}function handleError(_0x2eabf2,_0x3f9ca2){_0x3f9ca2=_0x3f9ca2||0x1f4;return function(_0x1c747a){logger[_0x416c('0x22')](_0x1c747a[_0x416c('0x23')]);if(_0x1c747a['name']){delete _0x1c747a[_0x416c('0x24')];}_0x2eabf2['status'](_0x3f9ca2)['send'](_0x1c747a);};}exports[_0x416c('0x25')]=function(_0x369880,_0x22ce2c){var _0x1268fb={},_0x9d3bee={},_0x229d04={'count':0x0,'rows':[]};var _0x2176a9=_[_0x416c('0x26')](db[_0x416c('0x27')][_0x416c('0x28')],function(_0x4ea2de){return{'name':_0x4ea2de[_0x416c('0x29')],'type':_0x4ea2de[_0x416c('0x2a')][_0x416c('0x2b')]};});_0x9d3bee[_0x416c('0x2c')]=_[_0x416c('0x26')](_0x2176a9,_0x416c('0x24'));_0x9d3bee[_0x416c('0x2d')]=_[_0x416c('0x2e')](_0x369880[_0x416c('0x2d')]);_0x9d3bee[_0x416c('0x2f')]=_['intersection'](_0x9d3bee['model'],_0x9d3bee[_0x416c('0x2d')]);_0x1268fb[_0x416c('0x30')]=_['intersection'](_0x9d3bee[_0x416c('0x2c')],qs['fields'](_0x369880[_0x416c('0x2d')][_0x416c('0x31')]));_0x1268fb[_0x416c('0x30')]=_0x1268fb[_0x416c('0x30')][_0x416c('0x32')]?_0x1268fb[_0x416c('0x30')]:_0x9d3bee[_0x416c('0x2c')];if(!_0x369880['query'][_0x416c('0x33')]('nolimit')){_0x1268fb[_0x416c('0x16')]=qs['limit'](_0x369880[_0x416c('0x2d')][_0x416c('0x16')]);_0x1268fb[_0x416c('0x15')]=qs[_0x416c('0x15')](_0x369880[_0x416c('0x2d')][_0x416c('0x15')]);}_0x1268fb['order']=qs[_0x416c('0x34')](_0x369880[_0x416c('0x2d')][_0x416c('0x34')]);_0x1268fb[_0x416c('0x35')]=qs[_0x416c('0x2f')](_[_0x416c('0x36')](_0x369880[_0x416c('0x2d')],_0x9d3bee[_0x416c('0x2f')]),_0x2176a9);if(_0x369880[_0x416c('0x2d')][_0x416c('0x37')]){_0x1268fb['where']=_['merge'](_0x1268fb['where'],{'$or':_[_0x416c('0x26')](_0x2176a9,function(_0x13aaaf){if(_0x13aaaf['type']!==_0x416c('0x38')){var _0x12e2d8={};_0x12e2d8[_0x13aaaf[_0x416c('0x24')]]={'$like':'%'+_0x369880['query'][_0x416c('0x37')]+'%'};return _0x12e2d8;}})});}_0x1268fb=_['merge']({},_0x1268fb,_0x369880[_0x416c('0x39')]);var _0x46ad3a={'where':_0x1268fb[_0x416c('0x35')]};return db[_0x416c('0x27')][_0x416c('0x14')](_0x46ad3a)['then'](function(_0x3cf9dd){_0x229d04[_0x416c('0x14')]=_0x3cf9dd;if(_0x369880['query'][_0x416c('0x3a')]){_0x1268fb[_0x416c('0x3b')]=[{'all':!![]}];}return db[_0x416c('0x27')][_0x416c('0x3c')](_0x1268fb);})[_0x416c('0x1e')](function(_0x357f11){_0x229d04[_0x416c('0x3d')]=_0x357f11;return _0x229d04;})[_0x416c('0x1e')](respondWithFilteredResult(_0x22ce2c,_0x1268fb))['catch'](handleError(_0x22ce2c,null));};exports['show']=function(_0x17f7d4,_0x1492e2){var _0x2dc53d={'raw':!![],'where':{'id':_0x17f7d4[_0x416c('0x3e')]['id']}},_0x46c01b={};_0x46c01b[_0x416c('0x2c')]=_[_0x416c('0x2e')](db[_0x416c('0x27')]['rawAttributes']);_0x46c01b['query']=_['keys'](_0x17f7d4[_0x416c('0x2d')]);_0x46c01b['filters']=_[_0x416c('0x3f')](_0x46c01b['model'],_0x46c01b['query']);_0x2dc53d[_0x416c('0x30')]=_[_0x416c('0x3f')](_0x46c01b[_0x416c('0x2c')],qs['fields'](_0x17f7d4['query']['fields']));_0x2dc53d['attributes']=_0x2dc53d[_0x416c('0x30')]['length']?_0x2dc53d[_0x416c('0x30')]:_0x46c01b[_0x416c('0x2c')];if(_0x17f7d4[_0x416c('0x2d')][_0x416c('0x3a')]){_0x2dc53d['include']=[{'all':!![]}];}_0x2dc53d=_['merge']({},_0x2dc53d,_0x17f7d4[_0x416c('0x39')]);return db[_0x416c('0x27')][_0x416c('0x40')](_0x2dc53d)[_0x416c('0x1e')](handleEntityNotFound(_0x1492e2,null))['then'](respondWithResult(_0x1492e2,null))[_0x416c('0x41')](handleError(_0x1492e2,null));};exports['update']=function(_0x51fe94,_0x155070){if(_0x51fe94['body']['id']){delete _0x51fe94['body']['id'];}return db[_0x416c('0x27')][_0x416c('0x40')]({'where':{'id':_0x51fe94[_0x416c('0x3e')]['id']}})[_0x416c('0x1e')](handleEntityNotFound(_0x155070,null))['then'](saveUpdates(_0x51fe94[_0x416c('0x42')],null))['then'](respondWithResult(_0x155070,null))[_0x416c('0x41')](handleError(_0x155070,null));};exports[_0x416c('0x20')]=function(_0x27101d,_0x6efc71){return db[_0x416c('0x27')][_0x416c('0x40')]({'where':{'id':_0x27101d['params']['id']}})['then'](handleEntityNotFound(_0x6efc71,null))[_0x416c('0x1e')](removeEntity(_0x6efc71,null))[_0x416c('0x41')](handleError(_0x6efc71,null));};exports['create']=function(_0x2c1f74,_0x98cdc1){var _0xcf2d75={'key':_0x2c1f74[_0x416c('0x42')][_0x416c('0x2b')]};if(_0x2c1f74[_0x416c('0x42')][_0x416c('0x43')]){_0xcf2d75[_0x416c('0x43')]=_0x2c1f74['body'][_0x416c('0x43')];}else if(_0x2c1f74['body'][_0x416c('0x44')]){_0xcf2d75[_0x416c('0x44')]=_0x2c1f74[_0x416c('0x42')][_0x416c('0x44')];}else if(_0x2c1f74[_0x416c('0x42')][_0x416c('0x45')]){_0xcf2d75[_0x416c('0x45')]=_0x2c1f74[_0x416c('0x42')][_0x416c('0x45')];}else if(_0x2c1f74['body'][_0x416c('0x46')]){_0xcf2d75['ChatWebsiteId']=_0x2c1f74[_0x416c('0x42')][_0x416c('0x46')];}return db[_0x416c('0x27')]['find']({'where':_0xcf2d75})['then'](function(_0x5d89dc){if(_0x5d89dc){throw new db['Sequelize']['ValidationError'](_0x416c('0x47'));}return db[_0x416c('0x27')][_0x416c('0x48')](_0x2c1f74[_0x416c('0x42')]);})['then'](function(_0x5915d2){var _0x1dbc86=_0x2c1f74[_0x416c('0x49')][_0x416c('0x4a')]({'plain':!![]});if(!_0x1dbc86)throw new Error(_0x416c('0x4b'));if(_0x1dbc86[_0x416c('0x4c')]===_0x416c('0x49')){var _0x573340=_0x5915d2['get']({'plain':!![]});return db['UserProfileSection'][_0x416c('0x40')]({'where':{'name':'CannedAnswers','userProfileId':_0x1dbc86[_0x416c('0x4d')]},'raw':!![]})[_0x416c('0x1e')](function(_0xaffcd4){if(_0xaffcd4&&_0xaffcd4[_0x416c('0x4e')]===0x0){return db['UserProfileResource']['create']({'name':_0x573340[_0x416c('0x24')],'resourceId':_0x573340['id'],'type':_0xaffcd4[_0x416c('0x24')],'sectionId':_0xaffcd4['id']},{})[_0x416c('0x1e')](function(){return _0x5915d2;});}else{return _0x5915d2;}})[_0x416c('0x41')](function(_0x120266){logger[_0x416c('0x22')](_0x416c('0x4f'),_0x120266);throw _0x120266;});}return _0x5915d2;})[_0x416c('0x1e')](respondWithResult(_0x98cdc1,0xc9))[_0x416c('0x41')](handleError(_0x98cdc1,null));};