Built motion from commit 21186556.|2.6.19
[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 _0xe1c4=['include','findAll','rows','catch','show','params','rawAttributes','fields','length','includeAll','find','body','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','end','status','json','offset','limit','undefined','count','set','Content-Range','reject','save','update','destroy','then','get','CannedAnswers','UserProfileResource','sendStatus','name','send','index','CannedAnswer','fieldName','type','key','model','map','query','keys','filters','attributes','intersection','hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','options'];(function(_0x20bee5,_0x52defe){var _0x116c5d=function(_0xa84a23){while(--_0xa84a23){_0x20bee5['push'](_0x20bee5['shift']());}};_0x116c5d(++_0x52defe);}(_0xe1c4,0x7e));var _0x4e1c=function(_0x32e919,_0x4fd27c){_0x32e919=_0x32e919-0x0;var _0x2fc4cb=_0xe1c4[_0x32e919];return _0x2fc4cb;};'use strict';var emlformat=require(_0x4e1c('0x0'));var rimraf=require(_0x4e1c('0x1'));var zipdir=require(_0x4e1c('0x2'));var jsonpatch=require(_0x4e1c('0x3'));var rp=require(_0x4e1c('0x4'));var moment=require(_0x4e1c('0x5'));var BPromise=require(_0x4e1c('0x6'));var Mustache=require(_0x4e1c('0x7'));var util=require(_0x4e1c('0x8'));var path=require(_0x4e1c('0x9'));var sox=require(_0x4e1c('0xa'));var csv=require(_0x4e1c('0xb'));var ejs=require(_0x4e1c('0xc'));var fs=require('fs');var fs_extra=require(_0x4e1c('0xd'));var _=require(_0x4e1c('0xe'));var squel=require(_0x4e1c('0xf'));var crypto=require(_0x4e1c('0x10'));var jsforce=require(_0x4e1c('0x11'));var deskjs=require(_0x4e1c('0x12'));var toCsv=require('to-csv');var querystring=require(_0x4e1c('0x13'));var Papa=require(_0x4e1c('0x14'));var Redis=require('ioredis');var authService=require(_0x4e1c('0x15'));var qs=require(_0x4e1c('0x16'));var as=require(_0x4e1c('0x17'));var hardwareService=require(_0x4e1c('0x18'));var logger=require(_0x4e1c('0x19'))(_0x4e1c('0x1a'));var utils=require(_0x4e1c('0x1b'));var config=require(_0x4e1c('0x1c'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x20c2c5,_0x10b503){_0x10b503=_0x10b503||0xcc;return function(_0x3b055c){if(_0x3b055c){return _0x20c2c5['sendStatus'](_0x10b503);}return _0x20c2c5['status'](_0x10b503)[_0x4e1c('0x1d')]();};}function respondWithResult(_0x5d4743,_0x23b5eb){_0x23b5eb=_0x23b5eb||0xc8;return function(_0x5c542d){if(_0x5c542d){return _0x5d4743[_0x4e1c('0x1e')](_0x23b5eb)[_0x4e1c('0x1f')](_0x5c542d);}};}function respondWithFilteredResult(_0x30569b,_0x57e748){return function(_0x3fdcb5){if(_0x3fdcb5){var _0x28c091=typeof _0x57e748[_0x4e1c('0x20')]==='undefined'&&typeof _0x57e748[_0x4e1c('0x21')]===_0x4e1c('0x22');var _0x35a4b0=_0x3fdcb5['count'];var _0x4a2989=_0x28c091?0x0:_0x57e748[_0x4e1c('0x20')];var _0x479e6c=_0x28c091?_0x3fdcb5[_0x4e1c('0x23')]:_0x57e748[_0x4e1c('0x20')]+_0x57e748[_0x4e1c('0x21')];var _0x126f82;if(_0x479e6c>=_0x35a4b0){_0x479e6c=_0x35a4b0;_0x126f82=0xc8;}else{_0x126f82=0xce;}_0x30569b[_0x4e1c('0x1e')](_0x126f82);return _0x30569b[_0x4e1c('0x24')](_0x4e1c('0x25'),_0x4a2989+'-'+_0x479e6c+'/'+_0x35a4b0)['json'](_0x3fdcb5);}return null;};}function patchUpdates(_0x5c72c5){return function(_0x5283c7){try{jsonpatch['apply'](_0x5283c7,_0x5c72c5,!![]);}catch(_0x8025c4){return BPromise[_0x4e1c('0x26')](_0x8025c4);}return _0x5283c7[_0x4e1c('0x27')]();};}function saveUpdates(_0x1b2493,_0x2b123e){return function(_0x33a71e){if(_0x33a71e){return _0x33a71e[_0x4e1c('0x28')](_0x1b2493)['then'](function(_0x374001){return _0x374001;});}return null;};}function removeEntity(_0x95b347,_0x5b07e2){return function(_0x213e0a){if(_0x213e0a){return _0x213e0a[_0x4e1c('0x29')]()[_0x4e1c('0x2a')](function(){var _0x2c0479=_0x213e0a[_0x4e1c('0x2b')]({'plain':!![]});var _0x5d8370=_0x4e1c('0x2c');return db[_0x4e1c('0x2d')][_0x4e1c('0x29')]({'where':{'type':_0x5d8370,'resourceId':_0x2c0479['id']}})[_0x4e1c('0x2a')](function(){return _0x213e0a;});})['then'](function(){_0x95b347[_0x4e1c('0x1e')](0xcc)[_0x4e1c('0x1d')]();});}};}function handleEntityNotFound(_0x470052,_0x39cbb1){return function(_0x739837){if(!_0x739837){_0x470052[_0x4e1c('0x2e')](0x194);}return _0x739837;};}function handleError(_0x4ce326,_0x13c676){_0x13c676=_0x13c676||0x1f4;return function(_0x2ce04c){logger['error'](_0x2ce04c['stack']);if(_0x2ce04c[_0x4e1c('0x2f')]){delete _0x2ce04c['name'];}_0x4ce326['status'](_0x13c676)[_0x4e1c('0x30')](_0x2ce04c);};}exports[_0x4e1c('0x31')]=function(_0x59d4ab,_0x23813c){var _0x20076b={},_0x46ecc4={},_0x2ad0f6={'count':0x0,'rows':[]};var _0x2b4b24=_['map'](db[_0x4e1c('0x32')]['rawAttributes'],function(_0x437e03){return{'name':_0x437e03[_0x4e1c('0x33')],'type':_0x437e03[_0x4e1c('0x34')][_0x4e1c('0x35')]};});_0x46ecc4[_0x4e1c('0x36')]=_[_0x4e1c('0x37')](_0x2b4b24,'name');_0x46ecc4[_0x4e1c('0x38')]=_[_0x4e1c('0x39')](_0x59d4ab[_0x4e1c('0x38')]);_0x46ecc4[_0x4e1c('0x3a')]=_['intersection'](_0x46ecc4['model'],_0x46ecc4[_0x4e1c('0x38')]);_0x20076b[_0x4e1c('0x3b')]=_[_0x4e1c('0x3c')](_0x46ecc4[_0x4e1c('0x36')],qs['fields'](_0x59d4ab[_0x4e1c('0x38')]['fields']));_0x20076b['attributes']=_0x20076b[_0x4e1c('0x3b')]['length']?_0x20076b[_0x4e1c('0x3b')]:_0x46ecc4['model'];if(!_0x59d4ab[_0x4e1c('0x38')][_0x4e1c('0x3d')](_0x4e1c('0x3e'))){_0x20076b[_0x4e1c('0x21')]=qs[_0x4e1c('0x21')](_0x59d4ab[_0x4e1c('0x38')][_0x4e1c('0x21')]);_0x20076b[_0x4e1c('0x20')]=qs[_0x4e1c('0x20')](_0x59d4ab[_0x4e1c('0x38')][_0x4e1c('0x20')]);}_0x20076b[_0x4e1c('0x3f')]=qs[_0x4e1c('0x40')](_0x59d4ab[_0x4e1c('0x38')]['sort']);_0x20076b[_0x4e1c('0x41')]=qs['filters'](_[_0x4e1c('0x42')](_0x59d4ab['query'],_0x46ecc4[_0x4e1c('0x3a')]),_0x2b4b24);if(_0x59d4ab[_0x4e1c('0x38')]['filter']){_0x20076b[_0x4e1c('0x41')]=_[_0x4e1c('0x43')](_0x20076b[_0x4e1c('0x41')],{'$or':[{'key':{'$like':'%'+_0x59d4ab[_0x4e1c('0x38')][_0x4e1c('0x44')]+'%'}},{'value':{'$like':'%'+_0x59d4ab['query'][_0x4e1c('0x44')]+'%'}}]});}_0x20076b=_[_0x4e1c('0x43')]({},_0x20076b,_0x59d4ab[_0x4e1c('0x45')]);var _0x1d49f2={'where':_0x20076b[_0x4e1c('0x41')]};return db[_0x4e1c('0x32')][_0x4e1c('0x23')](_0x1d49f2)[_0x4e1c('0x2a')](function(_0x1efe18){_0x2ad0f6[_0x4e1c('0x23')]=_0x1efe18;if(_0x59d4ab[_0x4e1c('0x38')]['includeAll']){_0x20076b[_0x4e1c('0x46')]=[{'all':!![]}];}return db['CannedAnswer'][_0x4e1c('0x47')](_0x20076b);})[_0x4e1c('0x2a')](function(_0x305aa6){_0x2ad0f6[_0x4e1c('0x48')]=_0x305aa6;return _0x2ad0f6;})[_0x4e1c('0x2a')](respondWithFilteredResult(_0x23813c,_0x20076b))[_0x4e1c('0x49')](handleError(_0x23813c,null));};exports[_0x4e1c('0x4a')]=function(_0x1cfefd,_0x145a9c){var _0x2bb029={'raw':!![],'where':{'id':_0x1cfefd[_0x4e1c('0x4b')]['id']}},_0x339913={};_0x339913[_0x4e1c('0x36')]=_['keys'](db[_0x4e1c('0x32')][_0x4e1c('0x4c')]);_0x339913[_0x4e1c('0x38')]=_['keys'](_0x1cfefd[_0x4e1c('0x38')]);_0x339913[_0x4e1c('0x3a')]=_[_0x4e1c('0x3c')](_0x339913['model'],_0x339913[_0x4e1c('0x38')]);_0x2bb029[_0x4e1c('0x3b')]=_[_0x4e1c('0x3c')](_0x339913[_0x4e1c('0x36')],qs[_0x4e1c('0x4d')](_0x1cfefd[_0x4e1c('0x38')][_0x4e1c('0x4d')]));_0x2bb029[_0x4e1c('0x3b')]=_0x2bb029[_0x4e1c('0x3b')][_0x4e1c('0x4e')]?_0x2bb029[_0x4e1c('0x3b')]:_0x339913[_0x4e1c('0x36')];if(_0x1cfefd['query'][_0x4e1c('0x4f')]){_0x2bb029[_0x4e1c('0x46')]=[{'all':!![]}];}_0x2bb029=_[_0x4e1c('0x43')]({},_0x2bb029,_0x1cfefd['options']);return db[_0x4e1c('0x32')][_0x4e1c('0x50')](_0x2bb029)[_0x4e1c('0x2a')](handleEntityNotFound(_0x145a9c,null))[_0x4e1c('0x2a')](respondWithResult(_0x145a9c,null))['catch'](handleError(_0x145a9c,null));};exports['update']=function(_0x5129ab,_0x5d0010){if(_0x5129ab['body']['id']){delete _0x5129ab[_0x4e1c('0x51')]['id'];}return db['CannedAnswer'][_0x4e1c('0x50')]({'where':{'id':_0x5129ab[_0x4e1c('0x4b')]['id']}})['then'](handleEntityNotFound(_0x5d0010,null))[_0x4e1c('0x2a')](saveUpdates(_0x5129ab[_0x4e1c('0x51')],null))[_0x4e1c('0x2a')](respondWithResult(_0x5d0010,null))[_0x4e1c('0x49')](handleError(_0x5d0010,null));};exports[_0x4e1c('0x29')]=function(_0x176608,_0xb8b3b6){return db[_0x4e1c('0x32')][_0x4e1c('0x50')]({'where':{'id':_0x176608[_0x4e1c('0x4b')]['id']}})[_0x4e1c('0x2a')](handleEntityNotFound(_0xb8b3b6,null))[_0x4e1c('0x2a')](removeEntity(_0xb8b3b6,null))[_0x4e1c('0x49')](handleError(_0xb8b3b6,null));};exports[_0x4e1c('0x52')]=function(_0x3234ba,_0x6d79f5){var _0x22b98d={'key':_0x3234ba[_0x4e1c('0x51')][_0x4e1c('0x35')]};if(_0x3234ba['body'][_0x4e1c('0x53')]){_0x22b98d['MailAccountId']=_0x3234ba[_0x4e1c('0x51')][_0x4e1c('0x53')];}else if(_0x3234ba[_0x4e1c('0x51')]['SmsAccountId']){_0x22b98d['SmsAccountId']=_0x3234ba['body'][_0x4e1c('0x54')];}else if(_0x3234ba['body'][_0x4e1c('0x55')]){_0x22b98d[_0x4e1c('0x55')]=_0x3234ba[_0x4e1c('0x51')][_0x4e1c('0x55')];}else if(_0x3234ba[_0x4e1c('0x51')][_0x4e1c('0x56')]){_0x22b98d[_0x4e1c('0x56')]=_0x3234ba['body'][_0x4e1c('0x56')];}return db[_0x4e1c('0x32')][_0x4e1c('0x50')]({'where':_0x22b98d})['then'](function(_0x20cc04){if(_0x20cc04){throw new db[(_0x4e1c('0x57'))][(_0x4e1c('0x58'))](_0x4e1c('0x59'));}return db[_0x4e1c('0x32')][_0x4e1c('0x52')](_0x3234ba[_0x4e1c('0x51')]);})[_0x4e1c('0x2a')](function(_0x2c9e08){var _0x5be6e8=_0x3234ba[_0x4e1c('0x5a')][_0x4e1c('0x2b')]({'plain':!![]});if(!_0x5be6e8)throw new Error(_0x4e1c('0x5b'));if(_0x5be6e8[_0x4e1c('0x5c')]===_0x4e1c('0x5a')){var _0x40cfd3=_0x2c9e08['get']({'plain':!![]});return db[_0x4e1c('0x5d')][_0x4e1c('0x50')]({'where':{'name':'CannedAnswers','userProfileId':_0x5be6e8[_0x4e1c('0x5e')]},'raw':!![]})[_0x4e1c('0x2a')](function(_0x4472f4){if(_0x4472f4&&_0x4472f4[_0x4e1c('0x5f')]===0x0){return db[_0x4e1c('0x2d')][_0x4e1c('0x52')]({'name':_0x40cfd3[_0x4e1c('0x2f')],'resourceId':_0x40cfd3['id'],'type':_0x4472f4[_0x4e1c('0x2f')],'sectionId':_0x4472f4['id']},{})[_0x4e1c('0x2a')](function(){return _0x2c9e08;});}else{return _0x2c9e08;}})[_0x4e1c('0x49')](function(_0x3f20cd){logger[_0x4e1c('0x60')](_0x4e1c('0x61'),_0x3f20cd);throw _0x3f20cd;});}return _0x2c9e08;})[_0x4e1c('0x2a')](respondWithResult(_0x6d79f5,0xc9))[_0x4e1c('0x49')](handleError(_0x6d79f5,null));};