6bbf01a4ecd21eab88b61701c7dc407b7ec33304
[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 _0x9b99=['findAll','rows','catch','show','keys','length','merge','body','find','params','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','zip-dir','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','get','CannedAnswers','UserProfileResource','stack','name','send','index','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filter','options','CannedAnswer','includeAll','include'];(function(_0x5e9dec,_0x3f4684){var _0x338054=function(_0x317dac){while(--_0x317dac){_0x5e9dec['push'](_0x5e9dec['shift']());}};_0x338054(++_0x3f4684);}(_0x9b99,0x17b));var _0x99b9=function(_0x495686,_0x3ce623){_0x495686=_0x495686-0x0;var _0x428c4f=_0x9b99[_0x495686];return _0x428c4f;};'use strict';var emlformat=require(_0x99b9('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x99b9('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x99b9('0x2'));var Mustache=require(_0x99b9('0x3'));var util=require(_0x99b9('0x4'));var path=require(_0x99b9('0x5'));var sox=require(_0x99b9('0x6'));var csv=require(_0x99b9('0x7'));var ejs=require(_0x99b9('0x8'));var fs=require('fs');var fs_extra=require(_0x99b9('0x9'));var _=require(_0x99b9('0xa'));var squel=require(_0x99b9('0xb'));var crypto=require(_0x99b9('0xc'));var jsforce=require(_0x99b9('0xd'));var deskjs=require(_0x99b9('0xe'));var toCsv=require(_0x99b9('0x7'));var querystring=require(_0x99b9('0xf'));var Papa=require(_0x99b9('0x10'));var Redis=require(_0x99b9('0x11'));var authService=require(_0x99b9('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x99b9('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x99b9('0x14'))(_0x99b9('0x15'));var utils=require(_0x99b9('0x16'));var config=require(_0x99b9('0x17'));var licenseUtil=require(_0x99b9('0x18'));var db=require(_0x99b9('0x19'))['db'];function respondWithStatusCode(_0x56b3a6,_0x598860){_0x598860=_0x598860||0xcc;return function(_0x40803a){if(_0x40803a){return _0x56b3a6['sendStatus'](_0x598860);}return _0x56b3a6[_0x99b9('0x1a')](_0x598860)[_0x99b9('0x1b')]();};}function respondWithResult(_0x117fa8,_0x4b7388){_0x4b7388=_0x4b7388||0xc8;return function(_0x3763c5){if(_0x3763c5){return _0x117fa8['status'](_0x4b7388)[_0x99b9('0x1c')](_0x3763c5);}};}function respondWithFilteredResult(_0x4c03d3,_0xcfa141){return function(_0x186f79){if(_0x186f79){var _0x292715=typeof _0xcfa141[_0x99b9('0x1d')]===_0x99b9('0x1e')&&typeof _0xcfa141[_0x99b9('0x1f')]===_0x99b9('0x1e');var _0x2fe9c0=_0x186f79[_0x99b9('0x20')];var _0xe1fd86=_0x292715?0x0:_0xcfa141[_0x99b9('0x1d')];var _0x8b4614=_0x292715?_0x186f79['count']:_0xcfa141['offset']+_0xcfa141[_0x99b9('0x1f')];var _0x4a6033;if(_0x8b4614>=_0x2fe9c0){_0x8b4614=_0x2fe9c0;_0x4a6033=0xc8;}else{_0x4a6033=0xce;}_0x4c03d3[_0x99b9('0x1a')](_0x4a6033);return _0x4c03d3[_0x99b9('0x21')](_0x99b9('0x22'),_0xe1fd86+'-'+_0x8b4614+'/'+_0x2fe9c0)[_0x99b9('0x1c')](_0x186f79);}return null;};}function patchUpdates(_0x4a2edf){return function(_0x1e4a10){try{jsonpatch[_0x99b9('0x23')](_0x1e4a10,_0x4a2edf,!![]);}catch(_0x2ffa53){return BPromise['reject'](_0x2ffa53);}return _0x1e4a10[_0x99b9('0x24')]();};}function saveUpdates(_0x4d88f3,_0x280993){return function(_0x166425){if(_0x166425){return _0x166425[_0x99b9('0x25')](_0x4d88f3)[_0x99b9('0x26')](function(_0x158939){return _0x158939;});}return null;};}function removeEntity(_0x4bbf2e,_0x4cbfc6){return function(_0x4fe351){if(_0x4fe351){return _0x4fe351[_0x99b9('0x27')]()[_0x99b9('0x26')](function(){var _0x4bb343=_0x4fe351[_0x99b9('0x28')]({'plain':!![]});var _0x341ddf=_0x99b9('0x29');return db[_0x99b9('0x2a')][_0x99b9('0x27')]({'where':{'type':_0x341ddf,'resourceId':_0x4bb343['id']}})[_0x99b9('0x26')](function(){return _0x4fe351;});})[_0x99b9('0x26')](function(){_0x4bbf2e[_0x99b9('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3c8737,_0x25aa0a){return function(_0x36c61e){if(!_0x36c61e){_0x3c8737['sendStatus'](0x194);}return _0x36c61e;};}function handleError(_0x224d54,_0x5d9b8e){_0x5d9b8e=_0x5d9b8e||0x1f4;return function(_0x242de3){logger['error'](_0x242de3[_0x99b9('0x2b')]);if(_0x242de3[_0x99b9('0x2c')]){delete _0x242de3[_0x99b9('0x2c')];}_0x224d54[_0x99b9('0x1a')](_0x5d9b8e)[_0x99b9('0x2d')](_0x242de3);};}exports[_0x99b9('0x2e')]=function(_0x36de04,_0x390280){var _0x194e8f={},_0x1169a4={},_0x31f86c={'count':0x0,'rows':[]};var _0x985738=_['map'](db['CannedAnswer']['rawAttributes'],function(_0x310b11){return{'name':_0x310b11[_0x99b9('0x2f')],'type':_0x310b11[_0x99b9('0x30')][_0x99b9('0x31')]};});_0x1169a4[_0x99b9('0x32')]=_['map'](_0x985738,_0x99b9('0x2c'));_0x1169a4[_0x99b9('0x33')]=_['keys'](_0x36de04['query']);_0x1169a4[_0x99b9('0x34')]=_[_0x99b9('0x35')](_0x1169a4[_0x99b9('0x32')],_0x1169a4[_0x99b9('0x33')]);_0x194e8f[_0x99b9('0x36')]=_[_0x99b9('0x35')](_0x1169a4[_0x99b9('0x32')],qs[_0x99b9('0x37')](_0x36de04[_0x99b9('0x33')][_0x99b9('0x37')]));_0x194e8f['attributes']=_0x194e8f['attributes']['length']?_0x194e8f['attributes']:_0x1169a4[_0x99b9('0x32')];if(!_0x36de04[_0x99b9('0x33')][_0x99b9('0x38')](_0x99b9('0x39'))){_0x194e8f['limit']=qs['limit'](_0x36de04[_0x99b9('0x33')][_0x99b9('0x1f')]);_0x194e8f['offset']=qs['offset'](_0x36de04['query'][_0x99b9('0x1d')]);}_0x194e8f[_0x99b9('0x3a')]=qs[_0x99b9('0x3b')](_0x36de04[_0x99b9('0x33')][_0x99b9('0x3b')]);_0x194e8f[_0x99b9('0x3c')]=qs[_0x99b9('0x34')](_['pick'](_0x36de04[_0x99b9('0x33')],_0x1169a4['filters']),_0x985738);if(_0x36de04[_0x99b9('0x33')][_0x99b9('0x3d')]){_0x194e8f[_0x99b9('0x3c')]=_['merge'](_0x194e8f[_0x99b9('0x3c')],{'$or':[{'key':{'$like':'%'+_0x36de04[_0x99b9('0x33')]['filter']+'%'}},{'value':{'$like':'%'+_0x36de04[_0x99b9('0x33')][_0x99b9('0x3d')]+'%'}}]});}_0x194e8f=_['merge']({},_0x194e8f,_0x36de04[_0x99b9('0x3e')]);var _0x4b0c88={'where':_0x194e8f[_0x99b9('0x3c')]};return db[_0x99b9('0x3f')][_0x99b9('0x20')](_0x4b0c88)[_0x99b9('0x26')](function(_0x21c8a7){_0x31f86c['count']=_0x21c8a7;if(_0x36de04['query'][_0x99b9('0x40')]){_0x194e8f[_0x99b9('0x41')]=[{'all':!![]}];}return db[_0x99b9('0x3f')][_0x99b9('0x42')](_0x194e8f);})[_0x99b9('0x26')](function(_0x43d734){_0x31f86c[_0x99b9('0x43')]=_0x43d734;return _0x31f86c;})[_0x99b9('0x26')](respondWithFilteredResult(_0x390280,_0x194e8f))[_0x99b9('0x44')](handleError(_0x390280,null));};exports[_0x99b9('0x45')]=function(_0x1ac729,_0x228546){var _0xe685bd={'raw':!![],'where':{'id':_0x1ac729['params']['id']}},_0x408a75={};_0x408a75[_0x99b9('0x32')]=_[_0x99b9('0x46')](db[_0x99b9('0x3f')]['rawAttributes']);_0x408a75[_0x99b9('0x33')]=_[_0x99b9('0x46')](_0x1ac729[_0x99b9('0x33')]);_0x408a75[_0x99b9('0x34')]=_['intersection'](_0x408a75[_0x99b9('0x32')],_0x408a75[_0x99b9('0x33')]);_0xe685bd[_0x99b9('0x36')]=_[_0x99b9('0x35')](_0x408a75[_0x99b9('0x32')],qs[_0x99b9('0x37')](_0x1ac729['query'][_0x99b9('0x37')]));_0xe685bd[_0x99b9('0x36')]=_0xe685bd[_0x99b9('0x36')][_0x99b9('0x47')]?_0xe685bd['attributes']:_0x408a75[_0x99b9('0x32')];if(_0x1ac729[_0x99b9('0x33')][_0x99b9('0x40')]){_0xe685bd['include']=[{'all':!![]}];}_0xe685bd=_[_0x99b9('0x48')]({},_0xe685bd,_0x1ac729[_0x99b9('0x3e')]);return db[_0x99b9('0x3f')]['find'](_0xe685bd)[_0x99b9('0x26')](handleEntityNotFound(_0x228546,null))['then'](respondWithResult(_0x228546,null))[_0x99b9('0x44')](handleError(_0x228546,null));};exports[_0x99b9('0x25')]=function(_0x3a29ea,_0x61fb97){if(_0x3a29ea[_0x99b9('0x49')]['id']){delete _0x3a29ea['body']['id'];}return db[_0x99b9('0x3f')][_0x99b9('0x4a')]({'where':{'id':_0x3a29ea[_0x99b9('0x4b')]['id']}})['then'](handleEntityNotFound(_0x61fb97,null))[_0x99b9('0x26')](saveUpdates(_0x3a29ea[_0x99b9('0x49')],null))['then'](respondWithResult(_0x61fb97,null))[_0x99b9('0x44')](handleError(_0x61fb97,null));};exports['destroy']=function(_0x5c3b88,_0x49ed0a){return db[_0x99b9('0x3f')][_0x99b9('0x4a')]({'where':{'id':_0x5c3b88['params']['id']}})[_0x99b9('0x26')](handleEntityNotFound(_0x49ed0a,null))[_0x99b9('0x26')](removeEntity(_0x49ed0a,null))['catch'](handleError(_0x49ed0a,null));};exports[_0x99b9('0x4c')]=function(_0x2dc040,_0x48fe4f){var _0xfc2c6f={'key':_0x2dc040[_0x99b9('0x49')]['key']};if(_0x2dc040['body'][_0x99b9('0x4d')]){_0xfc2c6f[_0x99b9('0x4d')]=_0x2dc040[_0x99b9('0x49')][_0x99b9('0x4d')];}else if(_0x2dc040['body']['SmsAccountId']){_0xfc2c6f[_0x99b9('0x4e')]=_0x2dc040['body'][_0x99b9('0x4e')];}else if(_0x2dc040['body'][_0x99b9('0x4f')]){_0xfc2c6f[_0x99b9('0x4f')]=_0x2dc040[_0x99b9('0x49')][_0x99b9('0x4f')];}else if(_0x2dc040['body']['ChatWebsiteId']){_0xfc2c6f[_0x99b9('0x50')]=_0x2dc040['body'][_0x99b9('0x50')];}return db[_0x99b9('0x3f')]['find']({'where':_0xfc2c6f})[_0x99b9('0x26')](function(_0x1223f6){if(_0x1223f6){throw new db[(_0x99b9('0x51'))][(_0x99b9('0x52'))](_0x99b9('0x53'));}return db[_0x99b9('0x3f')][_0x99b9('0x4c')](_0x2dc040[_0x99b9('0x49')]);})[_0x99b9('0x26')](function(_0x2cbb3c){var _0x422dfe=_0x2dc040['user'][_0x99b9('0x28')]({'plain':!![]});if(!_0x422dfe)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x422dfe['role']===_0x99b9('0x54')){var _0x481754=_0x2cbb3c[_0x99b9('0x28')]({'plain':!![]});return db['UserProfileSection'][_0x99b9('0x4a')]({'where':{'name':_0x99b9('0x29'),'userProfileId':_0x422dfe[_0x99b9('0x55')]},'raw':!![]})['then'](function(_0x17b780){if(_0x17b780&&_0x17b780[_0x99b9('0x56')]===0x0){return db[_0x99b9('0x2a')][_0x99b9('0x4c')]({'name':_0x481754[_0x99b9('0x2c')],'resourceId':_0x481754['id'],'type':_0x17b780['name'],'sectionId':_0x17b780['id']},{})[_0x99b9('0x26')](function(){return _0x2cbb3c;});}else{return _0x2cbb3c;}})[_0x99b9('0x44')](function(_0x46e9cc){logger[_0x99b9('0x57')](_0x99b9('0x58'),_0x46e9cc);throw _0x46e9cc;});}return _0x2cbb3c;})['then'](respondWithResult(_0x48fe4f,0xc9))[_0x99b9('0x44')](handleError(_0x48fe4f,null));};