Built motion from commit da617fac.|2.6.6
[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 _0xa5fa=['order','sort','where','filter','merge','options','includeAll','include','findAll','catch','show','params','keys','find','body','key','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','CannedAnswers','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','fs-extra','squel','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','error','stack','name','send','index','map','CannedAnswer','rawAttributes','fieldName','filters','intersection','model','query','attributes','fields','length','nolimit'];(function(_0x80f331,_0x49a354){var _0x41f184=function(_0x1aa518){while(--_0x1aa518){_0x80f331['push'](_0x80f331['shift']());}};_0x41f184(++_0x49a354);}(_0xa5fa,0x73));var _0xaa5f=function(_0x1bdda0,_0x29dedf){_0x1bdda0=_0x1bdda0-0x0;var _0x269a8f=_0xa5fa[_0x1bdda0];return _0x269a8f;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xaa5f('0x0'));var jsonpatch=require(_0xaa5f('0x1'));var rp=require(_0xaa5f('0x2'));var moment=require(_0xaa5f('0x3'));var BPromise=require(_0xaa5f('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0xaa5f('0x5'));var sox=require(_0xaa5f('0x6'));var csv=require(_0xaa5f('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xaa5f('0x8'));var _=require('lodash');var squel=require(_0xaa5f('0x9'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xaa5f('0xa'));var toCsv=require(_0xaa5f('0x7'));var querystring=require(_0xaa5f('0xb'));var Papa=require('papaparse');var Redis=require(_0xaa5f('0xc'));var authService=require(_0xaa5f('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0xaa5f('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xaa5f('0xf'))('api');var utils=require(_0xaa5f('0x10'));var config=require(_0xaa5f('0x11'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2608bf,_0x2c1676){_0x2c1676=_0x2c1676||0xcc;return function(_0x4ba398){if(_0x4ba398){return _0x2608bf[_0xaa5f('0x12')](_0x2c1676);}return _0x2608bf[_0xaa5f('0x13')](_0x2c1676)[_0xaa5f('0x14')]();};}function respondWithResult(_0x36ce3a,_0xa5de96){_0xa5de96=_0xa5de96||0xc8;return function(_0x3ccc8b){if(_0x3ccc8b){return _0x36ce3a[_0xaa5f('0x13')](_0xa5de96)[_0xaa5f('0x15')](_0x3ccc8b);}};}function respondWithFilteredResult(_0x1d672e,_0x28fa45){return function(_0x5d1d12){if(_0x5d1d12){var _0x25be5f=typeof _0x28fa45[_0xaa5f('0x16')]==='undefined'&&typeof _0x28fa45[_0xaa5f('0x17')]===_0xaa5f('0x18');var _0x3c66f9=_0x5d1d12[_0xaa5f('0x19')];var _0x5a6a14=_0x25be5f?0x0:_0x28fa45['offset'];var _0xefd006=_0x25be5f?_0x5d1d12['count']:_0x28fa45[_0xaa5f('0x16')]+_0x28fa45['limit'];var _0x5b46f5;if(_0xefd006>=_0x3c66f9){_0xefd006=_0x3c66f9;_0x5b46f5=0xc8;}else{_0x5b46f5=0xce;}_0x1d672e['status'](_0x5b46f5);return _0x1d672e[_0xaa5f('0x1a')](_0xaa5f('0x1b'),_0x5a6a14+'-'+_0xefd006+'/'+_0x3c66f9)[_0xaa5f('0x15')](_0x5d1d12);}return null;};}function patchUpdates(_0x3805ea){return function(_0x5b2699){try{jsonpatch[_0xaa5f('0x1c')](_0x5b2699,_0x3805ea,!![]);}catch(_0x5958c7){return BPromise[_0xaa5f('0x1d')](_0x5958c7);}return _0x5b2699[_0xaa5f('0x1e')]();};}function saveUpdates(_0x26e74b,_0x9c0fd){return function(_0x473783){if(_0x473783){return _0x473783[_0xaa5f('0x1f')](_0x26e74b)[_0xaa5f('0x20')](function(_0x3e4933){return _0x3e4933;});}return null;};}function removeEntity(_0x546b6c,_0x4378a2){return function(_0x16b52c){if(_0x16b52c){return _0x16b52c[_0xaa5f('0x21')]()[_0xaa5f('0x20')](function(){var _0x28afde=_0x16b52c[_0xaa5f('0x22')]({'plain':!![]});var _0x15c022='CannedAnswers';return db[_0xaa5f('0x23')][_0xaa5f('0x21')]({'where':{'type':_0x15c022,'resourceId':_0x28afde['id']}})[_0xaa5f('0x20')](function(){return _0x16b52c;});})[_0xaa5f('0x20')](function(){_0x546b6c[_0xaa5f('0x13')](0xcc)[_0xaa5f('0x14')]();});}};}function handleEntityNotFound(_0x1bbce6,_0x1a32cb){return function(_0x5a3ccf){if(!_0x5a3ccf){_0x1bbce6['sendStatus'](0x194);}return _0x5a3ccf;};}function handleError(_0x5652b2,_0xff81f1){_0xff81f1=_0xff81f1||0x1f4;return function(_0x5532e4){logger[_0xaa5f('0x24')](_0x5532e4[_0xaa5f('0x25')]);if(_0x5532e4['name']){delete _0x5532e4[_0xaa5f('0x26')];}_0x5652b2[_0xaa5f('0x13')](_0xff81f1)[_0xaa5f('0x27')](_0x5532e4);};}exports[_0xaa5f('0x28')]=function(_0x2f3d68,_0x3ddaa1){var _0xaa08fb={},_0x181ddc={},_0x269411={'count':0x0,'rows':[]};var _0x2bd8ec=_[_0xaa5f('0x29')](db[_0xaa5f('0x2a')][_0xaa5f('0x2b')],function(_0x4201bd){return{'name':_0x4201bd[_0xaa5f('0x2c')],'type':_0x4201bd['type']['key']};});_0x181ddc['model']=_[_0xaa5f('0x29')](_0x2bd8ec,_0xaa5f('0x26'));_0x181ddc['query']=_['keys'](_0x2f3d68['query']);_0x181ddc[_0xaa5f('0x2d')]=_[_0xaa5f('0x2e')](_0x181ddc[_0xaa5f('0x2f')],_0x181ddc[_0xaa5f('0x30')]);_0xaa08fb[_0xaa5f('0x31')]=_[_0xaa5f('0x2e')](_0x181ddc[_0xaa5f('0x2f')],qs[_0xaa5f('0x32')](_0x2f3d68[_0xaa5f('0x30')][_0xaa5f('0x32')]));_0xaa08fb[_0xaa5f('0x31')]=_0xaa08fb[_0xaa5f('0x31')][_0xaa5f('0x33')]?_0xaa08fb[_0xaa5f('0x31')]:_0x181ddc['model'];if(!_0x2f3d68[_0xaa5f('0x30')]['hasOwnProperty'](_0xaa5f('0x34'))){_0xaa08fb[_0xaa5f('0x17')]=qs[_0xaa5f('0x17')](_0x2f3d68[_0xaa5f('0x30')]['limit']);_0xaa08fb[_0xaa5f('0x16')]=qs[_0xaa5f('0x16')](_0x2f3d68[_0xaa5f('0x30')]['offset']);}_0xaa08fb[_0xaa5f('0x35')]=qs[_0xaa5f('0x36')](_0x2f3d68['query']['sort']);_0xaa08fb[_0xaa5f('0x37')]=qs[_0xaa5f('0x2d')](_['pick'](_0x2f3d68['query'],_0x181ddc[_0xaa5f('0x2d')]),_0x2bd8ec);if(_0x2f3d68['query'][_0xaa5f('0x38')]){_0xaa08fb[_0xaa5f('0x37')]=_[_0xaa5f('0x39')](_0xaa08fb[_0xaa5f('0x37')],{'$or':[{'key':{'$like':'%'+_0x2f3d68[_0xaa5f('0x30')][_0xaa5f('0x38')]+'%'}},{'value':{'$like':'%'+_0x2f3d68[_0xaa5f('0x30')][_0xaa5f('0x38')]+'%'}}]});}_0xaa08fb=_[_0xaa5f('0x39')]({},_0xaa08fb,_0x2f3d68[_0xaa5f('0x3a')]);var _0xb57091={'where':_0xaa08fb[_0xaa5f('0x37')]};return db['CannedAnswer']['count'](_0xb57091)[_0xaa5f('0x20')](function(_0x301d0b){_0x269411[_0xaa5f('0x19')]=_0x301d0b;if(_0x2f3d68[_0xaa5f('0x30')][_0xaa5f('0x3b')]){_0xaa08fb[_0xaa5f('0x3c')]=[{'all':!![]}];}return db[_0xaa5f('0x2a')][_0xaa5f('0x3d')](_0xaa08fb);})[_0xaa5f('0x20')](function(_0x241223){_0x269411['rows']=_0x241223;return _0x269411;})[_0xaa5f('0x20')](respondWithFilteredResult(_0x3ddaa1,_0xaa08fb))[_0xaa5f('0x3e')](handleError(_0x3ddaa1,null));};exports[_0xaa5f('0x3f')]=function(_0x1491b6,_0xf45aa9){var _0x765dc4={'raw':!![],'where':{'id':_0x1491b6[_0xaa5f('0x40')]['id']}},_0x5f4dbd={};_0x5f4dbd['model']=_[_0xaa5f('0x41')](db[_0xaa5f('0x2a')]['rawAttributes']);_0x5f4dbd['query']=_['keys'](_0x1491b6['query']);_0x5f4dbd[_0xaa5f('0x2d')]=_['intersection'](_0x5f4dbd[_0xaa5f('0x2f')],_0x5f4dbd[_0xaa5f('0x30')]);_0x765dc4[_0xaa5f('0x31')]=_[_0xaa5f('0x2e')](_0x5f4dbd[_0xaa5f('0x2f')],qs[_0xaa5f('0x32')](_0x1491b6['query'][_0xaa5f('0x32')]));_0x765dc4[_0xaa5f('0x31')]=_0x765dc4['attributes'][_0xaa5f('0x33')]?_0x765dc4[_0xaa5f('0x31')]:_0x5f4dbd['model'];if(_0x1491b6[_0xaa5f('0x30')]['includeAll']){_0x765dc4[_0xaa5f('0x3c')]=[{'all':!![]}];}_0x765dc4=_['merge']({},_0x765dc4,_0x1491b6[_0xaa5f('0x3a')]);return db[_0xaa5f('0x2a')][_0xaa5f('0x42')](_0x765dc4)[_0xaa5f('0x20')](handleEntityNotFound(_0xf45aa9,null))[_0xaa5f('0x20')](respondWithResult(_0xf45aa9,null))[_0xaa5f('0x3e')](handleError(_0xf45aa9,null));};exports['update']=function(_0x325169,_0x49c3b8){if(_0x325169[_0xaa5f('0x43')]['id']){delete _0x325169['body']['id'];}return db[_0xaa5f('0x2a')][_0xaa5f('0x42')]({'where':{'id':_0x325169[_0xaa5f('0x40')]['id']}})[_0xaa5f('0x20')](handleEntityNotFound(_0x49c3b8,null))['then'](saveUpdates(_0x325169[_0xaa5f('0x43')],null))[_0xaa5f('0x20')](respondWithResult(_0x49c3b8,null))['catch'](handleError(_0x49c3b8,null));};exports['destroy']=function(_0x443a3d,_0xf32077){return db[_0xaa5f('0x2a')][_0xaa5f('0x42')]({'where':{'id':_0x443a3d[_0xaa5f('0x40')]['id']}})[_0xaa5f('0x20')](handleEntityNotFound(_0xf32077,null))[_0xaa5f('0x20')](removeEntity(_0xf32077,null))[_0xaa5f('0x3e')](handleError(_0xf32077,null));};exports['create']=function(_0x38cdbf,_0x246fd5){var _0x2d9d52={'key':_0x38cdbf['body'][_0xaa5f('0x44')]};if(_0x38cdbf[_0xaa5f('0x43')][_0xaa5f('0x45')]){_0x2d9d52['MailAccountId']=_0x38cdbf[_0xaa5f('0x43')]['MailAccountId'];}else if(_0x38cdbf[_0xaa5f('0x43')]['SmsAccountId']){_0x2d9d52[_0xaa5f('0x46')]=_0x38cdbf[_0xaa5f('0x43')][_0xaa5f('0x46')];}else if(_0x38cdbf[_0xaa5f('0x43')][_0xaa5f('0x47')]){_0x2d9d52[_0xaa5f('0x47')]=_0x38cdbf[_0xaa5f('0x43')][_0xaa5f('0x47')];}else if(_0x38cdbf['body'][_0xaa5f('0x48')]){_0x2d9d52[_0xaa5f('0x48')]=_0x38cdbf[_0xaa5f('0x43')]['ChatWebsiteId'];}return db[_0xaa5f('0x2a')]['find']({'where':_0x2d9d52})[_0xaa5f('0x20')](function(_0x3252ed){if(_0x3252ed){throw new db[(_0xaa5f('0x49'))][(_0xaa5f('0x4a'))](_0xaa5f('0x4b'));}return db[_0xaa5f('0x2a')]['create'](_0x38cdbf[_0xaa5f('0x43')]);})[_0xaa5f('0x20')](function(_0x4082e7){var _0x388bc2=_0x38cdbf['user'][_0xaa5f('0x22')]({'plain':!![]});if(!_0x388bc2)throw new Error(_0xaa5f('0x4c'));if(_0x388bc2[_0xaa5f('0x4d')]===_0xaa5f('0x4e')){var _0x26fe32=_0x4082e7['get']({'plain':!![]});return db[_0xaa5f('0x4f')][_0xaa5f('0x42')]({'where':{'name':_0xaa5f('0x50'),'userProfileId':_0x388bc2['userProfileId']},'raw':!![]})['then'](function(_0x54d8b8){if(_0x54d8b8&&_0x54d8b8[_0xaa5f('0x51')]===0x0){return db[_0xaa5f('0x23')][_0xaa5f('0x52')]({'name':_0x26fe32['name'],'resourceId':_0x26fe32['id'],'type':_0x54d8b8[_0xaa5f('0x26')],'sectionId':_0x54d8b8['id']},{})[_0xaa5f('0x20')](function(){return _0x4082e7;});}else{return _0x4082e7;}})['catch'](function(_0x36adf1){logger[_0xaa5f('0x24')](_0xaa5f('0x53'),_0x36adf1);throw _0x36adf1;});}return _0x4082e7;})[_0xaa5f('0x20')](respondWithResult(_0x246fd5,0xc9))[_0xaa5f('0x3e')](handleError(_0x246fd5,null));};