Built motion from commit e1760111.|2.6.18
[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 _0x36f5=['api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','set','apply','reject','save','update','destroy','then','get','CannedAnswers','UserProfileResource','error','stack','name','send','index','map','CannedAnswer','rawAttributes','fieldName','key','query','keys','filters','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','options','count','include','findAll','rows','catch','show','params','intersection','length','find','body','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger'];(function(_0x11f404,_0x434321){var _0x493d6a=function(_0x21f5a1){while(--_0x21f5a1){_0x11f404['push'](_0x11f404['shift']());}};_0x493d6a(++_0x434321);}(_0x36f5,0x1bc));var _0x536f=function(_0x13977a,_0x8fb01f){_0x13977a=_0x13977a-0x0;var _0xe02305=_0x36f5[_0x13977a];return _0xe02305;};'use strict';var emlformat=require(_0x536f('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x536f('0x1'));var moment=require(_0x536f('0x2'));var BPromise=require(_0x536f('0x3'));var Mustache=require('mustache');var util=require(_0x536f('0x4'));var path=require(_0x536f('0x5'));var sox=require(_0x536f('0x6'));var csv=require(_0x536f('0x7'));var ejs=require(_0x536f('0x8'));var fs=require('fs');var fs_extra=require(_0x536f('0x9'));var _=require(_0x536f('0xa'));var squel=require(_0x536f('0xb'));var crypto=require(_0x536f('0xc'));var jsforce=require(_0x536f('0xd'));var deskjs=require(_0x536f('0xe'));var toCsv=require(_0x536f('0x7'));var querystring=require(_0x536f('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x536f('0x10'));var qs=require(_0x536f('0x11'));var as=require(_0x536f('0x12'));var hardwareService=require(_0x536f('0x13'));var logger=require(_0x536f('0x14'))(_0x536f('0x15'));var utils=require(_0x536f('0x16'));var config=require(_0x536f('0x17'));var licenseUtil=require(_0x536f('0x18'));var db=require(_0x536f('0x19'))['db'];function respondWithStatusCode(_0x457bce,_0x3256b6){_0x3256b6=_0x3256b6||0xcc;return function(_0x58ef0e){if(_0x58ef0e){return _0x457bce[_0x536f('0x1a')](_0x3256b6);}return _0x457bce['status'](_0x3256b6)[_0x536f('0x1b')]();};}function respondWithResult(_0x323057,_0x5704c1){_0x5704c1=_0x5704c1||0xc8;return function(_0x51ed94){if(_0x51ed94){return _0x323057[_0x536f('0x1c')](_0x5704c1)[_0x536f('0x1d')](_0x51ed94);}};}function respondWithFilteredResult(_0x38c63f,_0x487538){return function(_0x49a437){if(_0x49a437){var _0x308445=typeof _0x487538[_0x536f('0x1e')]===_0x536f('0x1f')&&typeof _0x487538[_0x536f('0x20')]==='undefined';var _0x1496c6=_0x49a437['count'];var _0x36293c=_0x308445?0x0:_0x487538['offset'];var _0x564723=_0x308445?_0x49a437['count']:_0x487538['offset']+_0x487538[_0x536f('0x20')];var _0x14b2e3;if(_0x564723>=_0x1496c6){_0x564723=_0x1496c6;_0x14b2e3=0xc8;}else{_0x14b2e3=0xce;}_0x38c63f[_0x536f('0x1c')](_0x14b2e3);return _0x38c63f[_0x536f('0x21')]('Content-Range',_0x36293c+'-'+_0x564723+'/'+_0x1496c6)[_0x536f('0x1d')](_0x49a437);}return null;};}function patchUpdates(_0x1d6da1){return function(_0x4f7e35){try{jsonpatch[_0x536f('0x22')](_0x4f7e35,_0x1d6da1,!![]);}catch(_0x841424){return BPromise[_0x536f('0x23')](_0x841424);}return _0x4f7e35[_0x536f('0x24')]();};}function saveUpdates(_0x4c6104,_0x3ea81d){return function(_0x2e258d){if(_0x2e258d){return _0x2e258d[_0x536f('0x25')](_0x4c6104)['then'](function(_0x2211fc){return _0x2211fc;});}return null;};}function removeEntity(_0x23de01,_0x583899){return function(_0x26edad){if(_0x26edad){return _0x26edad[_0x536f('0x26')]()[_0x536f('0x27')](function(){var _0x2371e6=_0x26edad[_0x536f('0x28')]({'plain':!![]});var _0x45eb8a=_0x536f('0x29');return db[_0x536f('0x2a')][_0x536f('0x26')]({'where':{'type':_0x45eb8a,'resourceId':_0x2371e6['id']}})[_0x536f('0x27')](function(){return _0x26edad;});})[_0x536f('0x27')](function(){_0x23de01[_0x536f('0x1c')](0xcc)[_0x536f('0x1b')]();});}};}function handleEntityNotFound(_0x1e38f5,_0xc087f9){return function(_0x1a0f50){if(!_0x1a0f50){_0x1e38f5[_0x536f('0x1a')](0x194);}return _0x1a0f50;};}function handleError(_0x571fc8,_0x8850d2){_0x8850d2=_0x8850d2||0x1f4;return function(_0x5eb664){logger[_0x536f('0x2b')](_0x5eb664[_0x536f('0x2c')]);if(_0x5eb664['name']){delete _0x5eb664[_0x536f('0x2d')];}_0x571fc8[_0x536f('0x1c')](_0x8850d2)[_0x536f('0x2e')](_0x5eb664);};}exports[_0x536f('0x2f')]=function(_0x108cf8,_0x5c69e9){var _0x56b553={},_0x44ef01={},_0x2f3ec8={'count':0x0,'rows':[]};var _0x14f8ae=_[_0x536f('0x30')](db[_0x536f('0x31')][_0x536f('0x32')],function(_0x4cc14f){return{'name':_0x4cc14f[_0x536f('0x33')],'type':_0x4cc14f['type'][_0x536f('0x34')]};});_0x44ef01['model']=_[_0x536f('0x30')](_0x14f8ae,_0x536f('0x2d'));_0x44ef01[_0x536f('0x35')]=_[_0x536f('0x36')](_0x108cf8[_0x536f('0x35')]);_0x44ef01[_0x536f('0x37')]=_['intersection'](_0x44ef01[_0x536f('0x38')],_0x44ef01['query']);_0x56b553[_0x536f('0x39')]=_['intersection'](_0x44ef01[_0x536f('0x38')],qs[_0x536f('0x3a')](_0x108cf8['query'][_0x536f('0x3a')]));_0x56b553['attributes']=_0x56b553[_0x536f('0x39')]['length']?_0x56b553['attributes']:_0x44ef01[_0x536f('0x38')];if(!_0x108cf8['query'][_0x536f('0x3b')](_0x536f('0x3c'))){_0x56b553[_0x536f('0x20')]=qs[_0x536f('0x20')](_0x108cf8['query'][_0x536f('0x20')]);_0x56b553[_0x536f('0x1e')]=qs[_0x536f('0x1e')](_0x108cf8[_0x536f('0x35')]['offset']);}_0x56b553[_0x536f('0x3d')]=qs[_0x536f('0x3e')](_0x108cf8['query'][_0x536f('0x3e')]);_0x56b553[_0x536f('0x3f')]=qs[_0x536f('0x37')](_[_0x536f('0x40')](_0x108cf8[_0x536f('0x35')],_0x44ef01['filters']),_0x14f8ae);if(_0x108cf8['query']['filter']){_0x56b553[_0x536f('0x3f')]=_[_0x536f('0x41')](_0x56b553[_0x536f('0x3f')],{'$or':[{'key':{'$like':'%'+_0x108cf8[_0x536f('0x35')]['filter']+'%'}},{'value':{'$like':'%'+_0x108cf8['query'][_0x536f('0x42')]+'%'}}]});}_0x56b553=_['merge']({},_0x56b553,_0x108cf8[_0x536f('0x43')]);var _0x2409e5={'where':_0x56b553[_0x536f('0x3f')]};return db[_0x536f('0x31')][_0x536f('0x44')](_0x2409e5)[_0x536f('0x27')](function(_0x1ba656){_0x2f3ec8[_0x536f('0x44')]=_0x1ba656;if(_0x108cf8[_0x536f('0x35')]['includeAll']){_0x56b553[_0x536f('0x45')]=[{'all':!![]}];}return db[_0x536f('0x31')][_0x536f('0x46')](_0x56b553);})['then'](function(_0x1e366b){_0x2f3ec8[_0x536f('0x47')]=_0x1e366b;return _0x2f3ec8;})[_0x536f('0x27')](respondWithFilteredResult(_0x5c69e9,_0x56b553))[_0x536f('0x48')](handleError(_0x5c69e9,null));};exports[_0x536f('0x49')]=function(_0x1bca19,_0x37f5ed){var _0x5e73bf={'raw':!![],'where':{'id':_0x1bca19[_0x536f('0x4a')]['id']}},_0x1ee55f={};_0x1ee55f['model']=_[_0x536f('0x36')](db['CannedAnswer']['rawAttributes']);_0x1ee55f[_0x536f('0x35')]=_[_0x536f('0x36')](_0x1bca19[_0x536f('0x35')]);_0x1ee55f[_0x536f('0x37')]=_[_0x536f('0x4b')](_0x1ee55f[_0x536f('0x38')],_0x1ee55f['query']);_0x5e73bf[_0x536f('0x39')]=_[_0x536f('0x4b')](_0x1ee55f[_0x536f('0x38')],qs[_0x536f('0x3a')](_0x1bca19[_0x536f('0x35')][_0x536f('0x3a')]));_0x5e73bf[_0x536f('0x39')]=_0x5e73bf[_0x536f('0x39')][_0x536f('0x4c')]?_0x5e73bf[_0x536f('0x39')]:_0x1ee55f[_0x536f('0x38')];if(_0x1bca19[_0x536f('0x35')]['includeAll']){_0x5e73bf[_0x536f('0x45')]=[{'all':!![]}];}_0x5e73bf=_[_0x536f('0x41')]({},_0x5e73bf,_0x1bca19['options']);return db[_0x536f('0x31')][_0x536f('0x4d')](_0x5e73bf)[_0x536f('0x27')](handleEntityNotFound(_0x37f5ed,null))[_0x536f('0x27')](respondWithResult(_0x37f5ed,null))[_0x536f('0x48')](handleError(_0x37f5ed,null));};exports[_0x536f('0x25')]=function(_0x6e2078,_0x3e5bca){if(_0x6e2078[_0x536f('0x4e')]['id']){delete _0x6e2078[_0x536f('0x4e')]['id'];}return db[_0x536f('0x31')][_0x536f('0x4d')]({'where':{'id':_0x6e2078[_0x536f('0x4a')]['id']}})[_0x536f('0x27')](handleEntityNotFound(_0x3e5bca,null))[_0x536f('0x27')](saveUpdates(_0x6e2078[_0x536f('0x4e')],null))['then'](respondWithResult(_0x3e5bca,null))[_0x536f('0x48')](handleError(_0x3e5bca,null));};exports['destroy']=function(_0x386780,_0x25381c){return db[_0x536f('0x31')]['find']({'where':{'id':_0x386780[_0x536f('0x4a')]['id']}})[_0x536f('0x27')](handleEntityNotFound(_0x25381c,null))[_0x536f('0x27')](removeEntity(_0x25381c,null))[_0x536f('0x48')](handleError(_0x25381c,null));};exports['create']=function(_0x5760e2,_0x2ddfa4){var _0xe89161={'key':_0x5760e2[_0x536f('0x4e')]['key']};if(_0x5760e2[_0x536f('0x4e')][_0x536f('0x4f')]){_0xe89161[_0x536f('0x4f')]=_0x5760e2[_0x536f('0x4e')][_0x536f('0x4f')];}else if(_0x5760e2[_0x536f('0x4e')][_0x536f('0x50')]){_0xe89161[_0x536f('0x50')]=_0x5760e2[_0x536f('0x4e')]['SmsAccountId'];}else if(_0x5760e2[_0x536f('0x4e')][_0x536f('0x51')]){_0xe89161[_0x536f('0x51')]=_0x5760e2[_0x536f('0x4e')][_0x536f('0x51')];}else if(_0x5760e2[_0x536f('0x4e')][_0x536f('0x52')]){_0xe89161[_0x536f('0x52')]=_0x5760e2['body'][_0x536f('0x52')];}return db['CannedAnswer'][_0x536f('0x4d')]({'where':_0xe89161})[_0x536f('0x27')](function(_0x1837b1){if(_0x1837b1){throw new db[(_0x536f('0x53'))][(_0x536f('0x54'))](_0x536f('0x55'));}return db[_0x536f('0x31')][_0x536f('0x56')](_0x5760e2[_0x536f('0x4e')]);})[_0x536f('0x27')](function(_0x109855){var _0x3b51d8=_0x5760e2[_0x536f('0x57')][_0x536f('0x28')]({'plain':!![]});if(!_0x3b51d8)throw new Error(_0x536f('0x58'));if(_0x3b51d8[_0x536f('0x59')]===_0x536f('0x57')){var _0x13e530=_0x109855[_0x536f('0x28')]({'plain':!![]});return db[_0x536f('0x5a')]['find']({'where':{'name':_0x536f('0x29'),'userProfileId':_0x3b51d8[_0x536f('0x5b')]},'raw':!![]})['then'](function(_0x4e2888){if(_0x4e2888&&_0x4e2888['autoAssociation']===0x0){return db[_0x536f('0x2a')][_0x536f('0x56')]({'name':_0x13e530[_0x536f('0x2d')],'resourceId':_0x13e530['id'],'type':_0x4e2888['name'],'sectionId':_0x4e2888['id']},{})[_0x536f('0x27')](function(){return _0x109855;});}else{return _0x109855;}})[_0x536f('0x48')](function(_0xbb8085){logger[_0x536f('0x2b')](_0x536f('0x5c'),_0xbb8085);throw _0xbb8085;});}return _0x109855;})['then'](respondWithResult(_0x2ddfa4,0xc9))[_0x536f('0x48')](handleError(_0x2ddfa4,null));};