38c751052ceffa02c410afc941c316501dbba874
[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 _0xc26d=['request-promise','bluebird','util','path','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','apply','save','then','destroy','get','CannedAnswers','error','stack','name','index','CannedAnswer','rawAttributes','type','key','model','map','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','offset','sort','pick','filters','filter','where','merge','options','findAll','catch','show','params','includeAll','include','find','update','body','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','ValidationError','The\x20inserted\x20key\x20already\x20exists.','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','UserProfileResource','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch'];(function(_0xc239fc,_0x24f786){var _0x21dc25=function(_0x3d6f15){while(--_0x3d6f15){_0xc239fc['push'](_0xc239fc['shift']());}};_0x21dc25(++_0x24f786);}(_0xc26d,0x148));var _0xdc26=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc26d[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xdc26('0x0'));var rimraf=require(_0xdc26('0x1'));var zipdir=require(_0xdc26('0x2'));var jsonpatch=require(_0xdc26('0x3'));var rp=require(_0xdc26('0x4'));var moment=require('moment');var BPromise=require(_0xdc26('0x5'));var Mustache=require('mustache');var util=require(_0xdc26('0x6'));var path=require(_0xdc26('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xdc26('0x8'));var squel=require(_0xdc26('0x9'));var crypto=require('crypto');var jsforce=require(_0xdc26('0xa'));var deskjs=require(_0xdc26('0xb'));var toCsv=require('to-csv');var querystring=require(_0xdc26('0xc'));var Papa=require(_0xdc26('0xd'));var Redis=require(_0xdc26('0xe'));var authService=require(_0xdc26('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xdc26('0x10'));var hardwareService=require(_0xdc26('0x11'));var logger=require(_0xdc26('0x12'))(_0xdc26('0x13'));var utils=require(_0xdc26('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xdc26('0x15'))['db'];function respondWithStatusCode(_0x186e59,_0x504baa){_0x504baa=_0x504baa||0xcc;return function(_0xb7f6cd){if(_0xb7f6cd){return _0x186e59[_0xdc26('0x16')](_0x504baa);}return _0x186e59[_0xdc26('0x17')](_0x504baa)[_0xdc26('0x18')]();};}function respondWithResult(_0x3ba678,_0x54dbc4){_0x54dbc4=_0x54dbc4||0xc8;return function(_0x1b261e){if(_0x1b261e){return _0x3ba678['status'](_0x54dbc4)[_0xdc26('0x19')](_0x1b261e);}};}function respondWithFilteredResult(_0x155b7c,_0x314bb0){return function(_0x314132){if(_0x314132){var _0xe435b=typeof _0x314bb0['offset']===_0xdc26('0x1a')&&typeof _0x314bb0[_0xdc26('0x1b')]===_0xdc26('0x1a');var _0x15dacf=_0x314132[_0xdc26('0x1c')];var _0x1608c2=_0xe435b?0x0:_0x314bb0['offset'];var _0x55380a=_0xe435b?_0x314132[_0xdc26('0x1c')]:_0x314bb0['offset']+_0x314bb0[_0xdc26('0x1b')];var _0x412e0e;if(_0x55380a>=_0x15dacf){_0x55380a=_0x15dacf;_0x412e0e=0xc8;}else{_0x412e0e=0xce;}_0x155b7c[_0xdc26('0x17')](_0x412e0e);return _0x155b7c['set']('Content-Range',_0x1608c2+'-'+_0x55380a+'/'+_0x15dacf)['json'](_0x314132);}return null;};}function patchUpdates(_0x5d7b88){return function(_0x593ac7){try{jsonpatch[_0xdc26('0x1d')](_0x593ac7,_0x5d7b88,!![]);}catch(_0x57970b){return BPromise['reject'](_0x57970b);}return _0x593ac7[_0xdc26('0x1e')]();};}function saveUpdates(_0x15c6dc,_0x1f1eea){return function(_0x48a7a7){if(_0x48a7a7){return _0x48a7a7['update'](_0x15c6dc)[_0xdc26('0x1f')](function(_0xc6ec37){return _0xc6ec37;});}return null;};}function removeEntity(_0x228c33,_0x57a249){return function(_0x2aa29a){if(_0x2aa29a){return _0x2aa29a[_0xdc26('0x20')]()[_0xdc26('0x1f')](function(){var _0x533266=_0x2aa29a[_0xdc26('0x21')]({'plain':!![]});var _0x4cf8ee=_0xdc26('0x22');return db['UserProfileResource']['destroy']({'where':{'type':_0x4cf8ee,'resourceId':_0x533266['id']}})[_0xdc26('0x1f')](function(){return _0x2aa29a;});})['then'](function(){_0x228c33['status'](0xcc)[_0xdc26('0x18')]();});}};}function handleEntityNotFound(_0x28c104,_0x398fd2){return function(_0x1748d5){if(!_0x1748d5){_0x28c104[_0xdc26('0x16')](0x194);}return _0x1748d5;};}function handleError(_0x2e2b5f,_0x1423f0){_0x1423f0=_0x1423f0||0x1f4;return function(_0x298403){logger[_0xdc26('0x23')](_0x298403[_0xdc26('0x24')]);if(_0x298403['name']){delete _0x298403[_0xdc26('0x25')];}_0x2e2b5f[_0xdc26('0x17')](_0x1423f0)['send'](_0x298403);};}exports[_0xdc26('0x26')]=function(_0x2265d3,_0x82d21e){var _0x5d272d={},_0x5ab6e6={},_0x5d1cf6={'count':0x0,'rows':[]};var _0x516927=_['map'](db[_0xdc26('0x27')][_0xdc26('0x28')],function(_0x536717){return{'name':_0x536717['fieldName'],'type':_0x536717[_0xdc26('0x29')][_0xdc26('0x2a')]};});_0x5ab6e6[_0xdc26('0x2b')]=_[_0xdc26('0x2c')](_0x516927,_0xdc26('0x25'));_0x5ab6e6[_0xdc26('0x2d')]=_[_0xdc26('0x2e')](_0x2265d3[_0xdc26('0x2d')]);_0x5ab6e6['filters']=_[_0xdc26('0x2f')](_0x5ab6e6[_0xdc26('0x2b')],_0x5ab6e6[_0xdc26('0x2d')]);_0x5d272d['attributes']=_['intersection'](_0x5ab6e6['model'],qs[_0xdc26('0x30')](_0x2265d3[_0xdc26('0x2d')][_0xdc26('0x30')]));_0x5d272d[_0xdc26('0x31')]=_0x5d272d[_0xdc26('0x31')][_0xdc26('0x32')]?_0x5d272d[_0xdc26('0x31')]:_0x5ab6e6[_0xdc26('0x2b')];if(!_0x2265d3[_0xdc26('0x2d')][_0xdc26('0x33')](_0xdc26('0x34'))){_0x5d272d['limit']=qs[_0xdc26('0x1b')](_0x2265d3['query'][_0xdc26('0x1b')]);_0x5d272d[_0xdc26('0x35')]=qs[_0xdc26('0x35')](_0x2265d3['query']['offset']);}_0x5d272d['order']=qs[_0xdc26('0x36')](_0x2265d3['query'][_0xdc26('0x36')]);_0x5d272d['where']=qs['filters'](_[_0xdc26('0x37')](_0x2265d3[_0xdc26('0x2d')],_0x5ab6e6[_0xdc26('0x38')]),_0x516927);if(_0x2265d3[_0xdc26('0x2d')][_0xdc26('0x39')]){_0x5d272d[_0xdc26('0x3a')]=_[_0xdc26('0x3b')](_0x5d272d['where'],{'$or':[{'key':{'$like':'%'+_0x2265d3[_0xdc26('0x2d')][_0xdc26('0x39')]+'%'}},{'value':{'$like':'%'+_0x2265d3[_0xdc26('0x2d')][_0xdc26('0x39')]+'%'}}]});}_0x5d272d=_[_0xdc26('0x3b')]({},_0x5d272d,_0x2265d3[_0xdc26('0x3c')]);var _0x262a3f={'where':_0x5d272d[_0xdc26('0x3a')]};return db[_0xdc26('0x27')][_0xdc26('0x1c')](_0x262a3f)['then'](function(_0x249438){_0x5d1cf6[_0xdc26('0x1c')]=_0x249438;if(_0x2265d3[_0xdc26('0x2d')]['includeAll']){_0x5d272d['include']=[{'all':!![]}];}return db[_0xdc26('0x27')][_0xdc26('0x3d')](_0x5d272d);})[_0xdc26('0x1f')](function(_0x265432){_0x5d1cf6['rows']=_0x265432;return _0x5d1cf6;})[_0xdc26('0x1f')](respondWithFilteredResult(_0x82d21e,_0x5d272d))[_0xdc26('0x3e')](handleError(_0x82d21e,null));};exports[_0xdc26('0x3f')]=function(_0x507ec4,_0x4bfffe){var _0x55fdcb={'raw':!![],'where':{'id':_0x507ec4[_0xdc26('0x40')]['id']}},_0x5af5ee={};_0x5af5ee[_0xdc26('0x2b')]=_[_0xdc26('0x2e')](db['CannedAnswer'][_0xdc26('0x28')]);_0x5af5ee[_0xdc26('0x2d')]=_[_0xdc26('0x2e')](_0x507ec4[_0xdc26('0x2d')]);_0x5af5ee[_0xdc26('0x38')]=_[_0xdc26('0x2f')](_0x5af5ee['model'],_0x5af5ee[_0xdc26('0x2d')]);_0x55fdcb[_0xdc26('0x31')]=_['intersection'](_0x5af5ee[_0xdc26('0x2b')],qs['fields'](_0x507ec4[_0xdc26('0x2d')]['fields']));_0x55fdcb[_0xdc26('0x31')]=_0x55fdcb['attributes'][_0xdc26('0x32')]?_0x55fdcb[_0xdc26('0x31')]:_0x5af5ee[_0xdc26('0x2b')];if(_0x507ec4['query'][_0xdc26('0x41')]){_0x55fdcb[_0xdc26('0x42')]=[{'all':!![]}];}_0x55fdcb=_[_0xdc26('0x3b')]({},_0x55fdcb,_0x507ec4[_0xdc26('0x3c')]);return db['CannedAnswer'][_0xdc26('0x43')](_0x55fdcb)[_0xdc26('0x1f')](handleEntityNotFound(_0x4bfffe,null))['then'](respondWithResult(_0x4bfffe,null))[_0xdc26('0x3e')](handleError(_0x4bfffe,null));};exports[_0xdc26('0x44')]=function(_0x1b5bd9,_0xe79bc2){if(_0x1b5bd9[_0xdc26('0x45')]['id']){delete _0x1b5bd9[_0xdc26('0x45')]['id'];}return db['CannedAnswer'][_0xdc26('0x43')]({'where':{'id':_0x1b5bd9[_0xdc26('0x40')]['id']}})[_0xdc26('0x1f')](handleEntityNotFound(_0xe79bc2,null))[_0xdc26('0x1f')](saveUpdates(_0x1b5bd9[_0xdc26('0x45')],null))[_0xdc26('0x1f')](respondWithResult(_0xe79bc2,null))[_0xdc26('0x3e')](handleError(_0xe79bc2,null));};exports[_0xdc26('0x20')]=function(_0x3fd31b,_0x226a54){return db[_0xdc26('0x27')][_0xdc26('0x43')]({'where':{'id':_0x3fd31b[_0xdc26('0x40')]['id']}})[_0xdc26('0x1f')](handleEntityNotFound(_0x226a54,null))[_0xdc26('0x1f')](removeEntity(_0x226a54,null))[_0xdc26('0x3e')](handleError(_0x226a54,null));};exports['create']=function(_0xc26fc6,_0x2db7d3){var _0x3e5f33={'key':_0xc26fc6['body'][_0xdc26('0x2a')]};if(_0xc26fc6[_0xdc26('0x45')]['MailAccountId']){_0x3e5f33[_0xdc26('0x46')]=_0xc26fc6[_0xdc26('0x45')][_0xdc26('0x46')];}else if(_0xc26fc6[_0xdc26('0x45')]['SmsAccountId']){_0x3e5f33[_0xdc26('0x47')]=_0xc26fc6[_0xdc26('0x45')][_0xdc26('0x47')];}else if(_0xc26fc6[_0xdc26('0x45')][_0xdc26('0x48')]){_0x3e5f33[_0xdc26('0x48')]=_0xc26fc6[_0xdc26('0x45')]['OpenchannelAccountId'];}else if(_0xc26fc6[_0xdc26('0x45')][_0xdc26('0x49')]){_0x3e5f33[_0xdc26('0x49')]=_0xc26fc6[_0xdc26('0x45')][_0xdc26('0x49')];}return db[_0xdc26('0x27')][_0xdc26('0x43')]({'where':_0x3e5f33})[_0xdc26('0x1f')](function(_0xec2dff){if(_0xec2dff){throw new db['Sequelize'][(_0xdc26('0x4a'))](_0xdc26('0x4b'));}return db['CannedAnswer']['create'](_0xc26fc6[_0xdc26('0x45')]);})[_0xdc26('0x1f')](function(_0x4bd290){var _0xb6bc99=_0xc26fc6['user'][_0xdc26('0x21')]({'plain':!![]});if(!_0xb6bc99)throw new Error(_0xdc26('0x4c'));if(_0xb6bc99[_0xdc26('0x4d')]==='user'){var _0x1ef0cb=_0x4bd290[_0xdc26('0x21')]({'plain':!![]});return db[_0xdc26('0x4e')][_0xdc26('0x43')]({'where':{'name':_0xdc26('0x22'),'userProfileId':_0xb6bc99['userProfileId']},'raw':!![]})[_0xdc26('0x1f')](function(_0x353e0a){if(_0x353e0a&&_0x353e0a[_0xdc26('0x4f')]===0x0){return db[_0xdc26('0x50')][_0xdc26('0x51')]({'name':_0x1ef0cb[_0xdc26('0x25')],'resourceId':_0x1ef0cb['id'],'type':_0x353e0a['name'],'sectionId':_0x353e0a['id']},{})[_0xdc26('0x1f')](function(){return _0x4bd290;});}else{return _0x4bd290;}})[_0xdc26('0x3e')](function(_0x4a2ab5){logger[_0xdc26('0x23')](_0xdc26('0x52'),_0x4a2ab5);throw _0x4a2ab5;});}return _0x4bd290;})['then'](respondWithResult(_0x2db7d3,0xc9))[_0xdc26('0x3e')](handleError(_0x2db7d3,null));};