c914f968ff696828833c2b59a741823b9aa98300
[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 _0x9c20=['bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','offset','undefined','limit','count','status','set','Content-Range','apply','reject','save','update','then','destroy','get','CannedAnswers','UserProfileResource','error','stack','name','send','rawAttributes','fieldName','type','model','map','query','intersection','fields','attributes','hasOwnProperty','order','sort','where','filters','filter','options','CannedAnswer','includeAll','include','findAll','catch','show','keys','merge','find','body','params','create','key','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','role','UserProfileSection','userProfileId','eml-format','rimraf','fast-json-patch','moment'];(function(_0x34f7c8,_0x59b85b){var _0x7a84d3=function(_0x1142c9){while(--_0x1142c9){_0x34f7c8['push'](_0x34f7c8['shift']());}};_0x7a84d3(++_0x59b85b);}(_0x9c20,0xaa));var _0x09c2=function(_0x32be62,_0x22e6fd){_0x32be62=_0x32be62-0x0;var _0x1a37e9=_0x9c20[_0x32be62];return _0x1a37e9;};'use strict';var emlformat=require(_0x09c2('0x0'));var rimraf=require(_0x09c2('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x09c2('0x2'));var rp=require('request-promise');var moment=require(_0x09c2('0x3'));var BPromise=require(_0x09c2('0x4'));var Mustache=require(_0x09c2('0x5'));var util=require('util');var path=require(_0x09c2('0x6'));var sox=require(_0x09c2('0x7'));var csv=require(_0x09c2('0x8'));var ejs=require(_0x09c2('0x9'));var fs=require('fs');var fs_extra=require(_0x09c2('0xa'));var _=require(_0x09c2('0xb'));var squel=require(_0x09c2('0xc'));var crypto=require(_0x09c2('0xd'));var jsforce=require(_0x09c2('0xe'));var deskjs=require(_0x09c2('0xf'));var toCsv=require(_0x09c2('0x8'));var querystring=require('querystring');var Papa=require(_0x09c2('0x10'));var Redis=require(_0x09c2('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x09c2('0x12'));var as=require(_0x09c2('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x09c2('0x14'))(_0x09c2('0x15'));var utils=require(_0x09c2('0x16'));var config=require(_0x09c2('0x17'));var licenseUtil=require(_0x09c2('0x18'));var db=require(_0x09c2('0x19'))['db'];function respondWithStatusCode(_0x53adae,_0x2c5a07){_0x2c5a07=_0x2c5a07||0xcc;return function(_0x254890){if(_0x254890){return _0x53adae[_0x09c2('0x1a')](_0x2c5a07);}return _0x53adae['status'](_0x2c5a07)['end']();};}function respondWithResult(_0x574421,_0x3a2f5a){_0x3a2f5a=_0x3a2f5a||0xc8;return function(_0x49fe77){if(_0x49fe77){return _0x574421['status'](_0x3a2f5a)['json'](_0x49fe77);}};}function respondWithFilteredResult(_0x4a267e,_0x3c169b){return function(_0xed8f31){if(_0xed8f31){var _0x8ae97a=typeof _0x3c169b[_0x09c2('0x1b')]===_0x09c2('0x1c')&&typeof _0x3c169b[_0x09c2('0x1d')]==='undefined';var _0x15fca6=_0xed8f31['count'];var _0x16ebff=_0x8ae97a?0x0:_0x3c169b[_0x09c2('0x1b')];var _0x54e9d4=_0x8ae97a?_0xed8f31[_0x09c2('0x1e')]:_0x3c169b['offset']+_0x3c169b[_0x09c2('0x1d')];var _0x4569ce;if(_0x54e9d4>=_0x15fca6){_0x54e9d4=_0x15fca6;_0x4569ce=0xc8;}else{_0x4569ce=0xce;}_0x4a267e[_0x09c2('0x1f')](_0x4569ce);return _0x4a267e[_0x09c2('0x20')](_0x09c2('0x21'),_0x16ebff+'-'+_0x54e9d4+'/'+_0x15fca6)['json'](_0xed8f31);}return null;};}function patchUpdates(_0x19f261){return function(_0x250173){try{jsonpatch[_0x09c2('0x22')](_0x250173,_0x19f261,!![]);}catch(_0x3b7b39){return BPromise[_0x09c2('0x23')](_0x3b7b39);}return _0x250173[_0x09c2('0x24')]();};}function saveUpdates(_0x212734,_0x37a041){return function(_0x359744){if(_0x359744){return _0x359744[_0x09c2('0x25')](_0x212734)[_0x09c2('0x26')](function(_0x275946){return _0x275946;});}return null;};}function removeEntity(_0x7e0b3b,_0x59c47b){return function(_0x32883b){if(_0x32883b){return _0x32883b[_0x09c2('0x27')]()[_0x09c2('0x26')](function(){var _0x50c6d1=_0x32883b[_0x09c2('0x28')]({'plain':!![]});var _0x28c5b2=_0x09c2('0x29');return db[_0x09c2('0x2a')][_0x09c2('0x27')]({'where':{'type':_0x28c5b2,'resourceId':_0x50c6d1['id']}})[_0x09c2('0x26')](function(){return _0x32883b;});})[_0x09c2('0x26')](function(){_0x7e0b3b[_0x09c2('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4e3162,_0x1bbc08){return function(_0x325a8d){if(!_0x325a8d){_0x4e3162[_0x09c2('0x1a')](0x194);}return _0x325a8d;};}function handleError(_0x50c89a,_0x441228){_0x441228=_0x441228||0x1f4;return function(_0x4256dd){logger[_0x09c2('0x2b')](_0x4256dd[_0x09c2('0x2c')]);if(_0x4256dd[_0x09c2('0x2d')]){delete _0x4256dd[_0x09c2('0x2d')];}_0x50c89a[_0x09c2('0x1f')](_0x441228)[_0x09c2('0x2e')](_0x4256dd);};}exports['index']=function(_0x40ae29,_0x205d01){var _0x48b21d={},_0x4aad36={},_0x365159={'count':0x0,'rows':[]};var _0x199a95=_['map'](db['CannedAnswer'][_0x09c2('0x2f')],function(_0x56394f){return{'name':_0x56394f[_0x09c2('0x30')],'type':_0x56394f[_0x09c2('0x31')]['key']};});_0x4aad36[_0x09c2('0x32')]=_[_0x09c2('0x33')](_0x199a95,_0x09c2('0x2d'));_0x4aad36[_0x09c2('0x34')]=_['keys'](_0x40ae29['query']);_0x4aad36['filters']=_[_0x09c2('0x35')](_0x4aad36[_0x09c2('0x32')],_0x4aad36[_0x09c2('0x34')]);_0x48b21d['attributes']=_['intersection'](_0x4aad36[_0x09c2('0x32')],qs[_0x09c2('0x36')](_0x40ae29[_0x09c2('0x34')][_0x09c2('0x36')]));_0x48b21d[_0x09c2('0x37')]=_0x48b21d['attributes']['length']?_0x48b21d[_0x09c2('0x37')]:_0x4aad36[_0x09c2('0x32')];if(!_0x40ae29[_0x09c2('0x34')][_0x09c2('0x38')]('nolimit')){_0x48b21d[_0x09c2('0x1d')]=qs[_0x09c2('0x1d')](_0x40ae29[_0x09c2('0x34')][_0x09c2('0x1d')]);_0x48b21d[_0x09c2('0x1b')]=qs[_0x09c2('0x1b')](_0x40ae29[_0x09c2('0x34')]['offset']);}_0x48b21d[_0x09c2('0x39')]=qs['sort'](_0x40ae29[_0x09c2('0x34')][_0x09c2('0x3a')]);_0x48b21d[_0x09c2('0x3b')]=qs[_0x09c2('0x3c')](_['pick'](_0x40ae29['query'],_0x4aad36[_0x09c2('0x3c')]),_0x199a95);if(_0x40ae29[_0x09c2('0x34')][_0x09c2('0x3d')]){_0x48b21d[_0x09c2('0x3b')]=_['merge'](_0x48b21d['where'],{'$or':[{'key':{'$like':'%'+_0x40ae29[_0x09c2('0x34')][_0x09c2('0x3d')]+'%'}},{'value':{'$like':'%'+_0x40ae29['query'][_0x09c2('0x3d')]+'%'}}]});}_0x48b21d=_['merge']({},_0x48b21d,_0x40ae29[_0x09c2('0x3e')]);var _0x2ccc5f={'where':_0x48b21d['where']};return db[_0x09c2('0x3f')]['count'](_0x2ccc5f)[_0x09c2('0x26')](function(_0x4f3541){_0x365159[_0x09c2('0x1e')]=_0x4f3541;if(_0x40ae29[_0x09c2('0x34')][_0x09c2('0x40')]){_0x48b21d[_0x09c2('0x41')]=[{'all':!![]}];}return db['CannedAnswer'][_0x09c2('0x42')](_0x48b21d);})['then'](function(_0x317ac4){_0x365159['rows']=_0x317ac4;return _0x365159;})['then'](respondWithFilteredResult(_0x205d01,_0x48b21d))[_0x09c2('0x43')](handleError(_0x205d01,null));};exports[_0x09c2('0x44')]=function(_0x8462f4,_0x4e4299){var _0x28b744={'raw':!![],'where':{'id':_0x8462f4['params']['id']}},_0x4f9d94={};_0x4f9d94['model']=_['keys'](db[_0x09c2('0x3f')]['rawAttributes']);_0x4f9d94[_0x09c2('0x34')]=_[_0x09c2('0x45')](_0x8462f4[_0x09c2('0x34')]);_0x4f9d94['filters']=_[_0x09c2('0x35')](_0x4f9d94['model'],_0x4f9d94[_0x09c2('0x34')]);_0x28b744[_0x09c2('0x37')]=_['intersection'](_0x4f9d94['model'],qs['fields'](_0x8462f4[_0x09c2('0x34')][_0x09c2('0x36')]));_0x28b744[_0x09c2('0x37')]=_0x28b744[_0x09c2('0x37')]['length']?_0x28b744['attributes']:_0x4f9d94['model'];if(_0x8462f4['query'][_0x09c2('0x40')]){_0x28b744['include']=[{'all':!![]}];}_0x28b744=_[_0x09c2('0x46')]({},_0x28b744,_0x8462f4[_0x09c2('0x3e')]);return db['CannedAnswer'][_0x09c2('0x47')](_0x28b744)['then'](handleEntityNotFound(_0x4e4299,null))[_0x09c2('0x26')](respondWithResult(_0x4e4299,null))[_0x09c2('0x43')](handleError(_0x4e4299,null));};exports[_0x09c2('0x25')]=function(_0x9f56b8,_0x4ecd6a){if(_0x9f56b8[_0x09c2('0x48')]['id']){delete _0x9f56b8['body']['id'];}return db[_0x09c2('0x3f')][_0x09c2('0x47')]({'where':{'id':_0x9f56b8['params']['id']}})['then'](handleEntityNotFound(_0x4ecd6a,null))[_0x09c2('0x26')](saveUpdates(_0x9f56b8['body'],null))[_0x09c2('0x26')](respondWithResult(_0x4ecd6a,null))[_0x09c2('0x43')](handleError(_0x4ecd6a,null));};exports[_0x09c2('0x27')]=function(_0xc2b40a,_0x47b18d){return db['CannedAnswer'][_0x09c2('0x47')]({'where':{'id':_0xc2b40a[_0x09c2('0x49')]['id']}})['then'](handleEntityNotFound(_0x47b18d,null))[_0x09c2('0x26')](removeEntity(_0x47b18d,null))[_0x09c2('0x43')](handleError(_0x47b18d,null));};exports[_0x09c2('0x4a')]=function(_0x1f7806,_0x28fa06){var _0x347850={'key':_0x1f7806[_0x09c2('0x48')][_0x09c2('0x4b')]};if(_0x1f7806[_0x09c2('0x48')][_0x09c2('0x4c')]){_0x347850[_0x09c2('0x4c')]=_0x1f7806[_0x09c2('0x48')][_0x09c2('0x4c')];}else if(_0x1f7806['body'][_0x09c2('0x4d')]){_0x347850[_0x09c2('0x4d')]=_0x1f7806[_0x09c2('0x48')][_0x09c2('0x4d')];}else if(_0x1f7806[_0x09c2('0x48')][_0x09c2('0x4e')]){_0x347850[_0x09c2('0x4e')]=_0x1f7806[_0x09c2('0x48')][_0x09c2('0x4e')];}else if(_0x1f7806[_0x09c2('0x48')][_0x09c2('0x4f')]){_0x347850[_0x09c2('0x4f')]=_0x1f7806['body'][_0x09c2('0x4f')];}return db[_0x09c2('0x3f')][_0x09c2('0x47')]({'where':_0x347850})['then'](function(_0x292ec4){if(_0x292ec4){throw new db[(_0x09c2('0x50'))][(_0x09c2('0x51'))](_0x09c2('0x52'));}return db[_0x09c2('0x3f')][_0x09c2('0x4a')](_0x1f7806[_0x09c2('0x48')]);})[_0x09c2('0x26')](function(_0x50f4ef){var _0xdfec1c=_0x1f7806[_0x09c2('0x53')][_0x09c2('0x28')]({'plain':!![]});if(!_0xdfec1c)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xdfec1c[_0x09c2('0x54')]==='user'){var _0x5b9d09=_0x50f4ef['get']({'plain':!![]});return db[_0x09c2('0x55')][_0x09c2('0x47')]({'where':{'name':'CannedAnswers','userProfileId':_0xdfec1c[_0x09c2('0x56')]},'raw':!![]})[_0x09c2('0x26')](function(_0x4563e8){if(_0x4563e8&&_0x4563e8['autoAssociation']===0x0){return db[_0x09c2('0x2a')][_0x09c2('0x4a')]({'name':_0x5b9d09[_0x09c2('0x2d')],'resourceId':_0x5b9d09['id'],'type':_0x4563e8[_0x09c2('0x2d')],'sectionId':_0x4563e8['id']},{})[_0x09c2('0x26')](function(){return _0x50f4ef;});}else{return _0x50f4ef;}})[_0x09c2('0x43')](function(_0x2acf1c){logger[_0x09c2('0x2b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2acf1c);throw _0x2acf1c;});}return _0x50f4ef;})['then'](respondWithResult(_0x28fa06,0xc9))[_0x09c2('0x43')](handleError(_0x28fa06,null));};