Built motion from commit da617fac.|2.6.6
[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 _0x4be6=['nolimit','order','sort','where','pick','merge','filter','options','includeAll','include','findAll','rows','catch','show','params','find','body','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','path','ejs','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','reject','save','update','then','destroy','get','CannedAnswers','end','error','stack','name','send','index','map','CannedAnswer','rawAttributes','fieldName','key','model','keys','filters','query','intersection','fields','attributes','length'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x4be6,0x7a));var _0x64be=function(_0x2bd0dd,_0x167fb0){_0x2bd0dd=_0x2bd0dd-0x0;var _0x4637bb=_0x4be6[_0x2bd0dd];return _0x4637bb;};'use strict';var emlformat=require(_0x64be('0x0'));var rimraf=require(_0x64be('0x1'));var zipdir=require(_0x64be('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x64be('0x3'));var moment=require(_0x64be('0x4'));var BPromise=require(_0x64be('0x5'));var Mustache=require('mustache');var util=require(_0x64be('0x6'));var path=require(_0x64be('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x64be('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x64be('0x9'));var squel=require(_0x64be('0xa'));var crypto=require('crypto');var jsforce=require(_0x64be('0xb'));var deskjs=require(_0x64be('0xc'));var toCsv=require(_0x64be('0xd'));var querystring=require(_0x64be('0xe'));var Papa=require(_0x64be('0xf'));var Redis=require(_0x64be('0x10'));var authService=require(_0x64be('0x11'));var qs=require(_0x64be('0x12'));var as=require(_0x64be('0x13'));var hardwareService=require(_0x64be('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x64be('0x15'));var config=require(_0x64be('0x16'));var licenseUtil=require(_0x64be('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x532c02,_0x2bb5cd){_0x2bb5cd=_0x2bb5cd||0xcc;return function(_0x2dd03f){if(_0x2dd03f){return _0x532c02[_0x64be('0x18')](_0x2bb5cd);}return _0x532c02[_0x64be('0x19')](_0x2bb5cd)['end']();};}function respondWithResult(_0x34832b,_0x3d024e){_0x3d024e=_0x3d024e||0xc8;return function(_0x49ede1){if(_0x49ede1){return _0x34832b['status'](_0x3d024e)[_0x64be('0x1a')](_0x49ede1);}};}function respondWithFilteredResult(_0x15cc38,_0x455380){return function(_0x309775){if(_0x309775){var _0x2f16d9=typeof _0x455380[_0x64be('0x1b')]===_0x64be('0x1c')&&typeof _0x455380[_0x64be('0x1d')]===_0x64be('0x1c');var _0x1b2277=_0x309775[_0x64be('0x1e')];var _0x38d75e=_0x2f16d9?0x0:_0x455380[_0x64be('0x1b')];var _0x4fb63f=_0x2f16d9?_0x309775[_0x64be('0x1e')]:_0x455380[_0x64be('0x1b')]+_0x455380[_0x64be('0x1d')];var _0x1d71cb;if(_0x4fb63f>=_0x1b2277){_0x4fb63f=_0x1b2277;_0x1d71cb=0xc8;}else{_0x1d71cb=0xce;}_0x15cc38[_0x64be('0x19')](_0x1d71cb);return _0x15cc38[_0x64be('0x1f')]('Content-Range',_0x38d75e+'-'+_0x4fb63f+'/'+_0x1b2277)['json'](_0x309775);}return null;};}function patchUpdates(_0x4b9a5c){return function(_0x5a09e3){try{jsonpatch['apply'](_0x5a09e3,_0x4b9a5c,!![]);}catch(_0x202d00){return BPromise[_0x64be('0x20')](_0x202d00);}return _0x5a09e3[_0x64be('0x21')]();};}function saveUpdates(_0x1900de,_0x48bf08){return function(_0x1819f2){if(_0x1819f2){return _0x1819f2[_0x64be('0x22')](_0x1900de)[_0x64be('0x23')](function(_0x5558a3){return _0x5558a3;});}return null;};}function removeEntity(_0x2d1740,_0x2f1ad5){return function(_0x1db4e8){if(_0x1db4e8){return _0x1db4e8[_0x64be('0x24')]()[_0x64be('0x23')](function(){var _0x47219c=_0x1db4e8[_0x64be('0x25')]({'plain':!![]});var _0x4b2a8f=_0x64be('0x26');return db['UserProfileResource'][_0x64be('0x24')]({'where':{'type':_0x4b2a8f,'resourceId':_0x47219c['id']}})[_0x64be('0x23')](function(){return _0x1db4e8;});})[_0x64be('0x23')](function(){_0x2d1740['status'](0xcc)[_0x64be('0x27')]();});}};}function handleEntityNotFound(_0x1df124,_0x13a513){return function(_0x4a8787){if(!_0x4a8787){_0x1df124[_0x64be('0x18')](0x194);}return _0x4a8787;};}function handleError(_0x36233b,_0x57e66a){_0x57e66a=_0x57e66a||0x1f4;return function(_0x4736d2){logger[_0x64be('0x28')](_0x4736d2[_0x64be('0x29')]);if(_0x4736d2[_0x64be('0x2a')]){delete _0x4736d2['name'];}_0x36233b['status'](_0x57e66a)[_0x64be('0x2b')](_0x4736d2);};}exports[_0x64be('0x2c')]=function(_0x464841,_0x1e0852){var _0xd3e44a={},_0x2fb94f={},_0x7c0802={'count':0x0,'rows':[]};var _0x24c6ec=_[_0x64be('0x2d')](db[_0x64be('0x2e')][_0x64be('0x2f')],function(_0x3190d1){return{'name':_0x3190d1[_0x64be('0x30')],'type':_0x3190d1['type'][_0x64be('0x31')]};});_0x2fb94f[_0x64be('0x32')]=_['map'](_0x24c6ec,'name');_0x2fb94f['query']=_[_0x64be('0x33')](_0x464841['query']);_0x2fb94f[_0x64be('0x34')]=_['intersection'](_0x2fb94f['model'],_0x2fb94f[_0x64be('0x35')]);_0xd3e44a['attributes']=_[_0x64be('0x36')](_0x2fb94f[_0x64be('0x32')],qs[_0x64be('0x37')](_0x464841[_0x64be('0x35')][_0x64be('0x37')]));_0xd3e44a[_0x64be('0x38')]=_0xd3e44a[_0x64be('0x38')][_0x64be('0x39')]?_0xd3e44a[_0x64be('0x38')]:_0x2fb94f[_0x64be('0x32')];if(!_0x464841[_0x64be('0x35')]['hasOwnProperty'](_0x64be('0x3a'))){_0xd3e44a[_0x64be('0x1d')]=qs[_0x64be('0x1d')](_0x464841[_0x64be('0x35')][_0x64be('0x1d')]);_0xd3e44a[_0x64be('0x1b')]=qs['offset'](_0x464841['query'][_0x64be('0x1b')]);}_0xd3e44a[_0x64be('0x3b')]=qs[_0x64be('0x3c')](_0x464841['query'][_0x64be('0x3c')]);_0xd3e44a[_0x64be('0x3d')]=qs[_0x64be('0x34')](_[_0x64be('0x3e')](_0x464841[_0x64be('0x35')],_0x2fb94f[_0x64be('0x34')]),_0x24c6ec);if(_0x464841[_0x64be('0x35')]['filter']){_0xd3e44a[_0x64be('0x3d')]=_[_0x64be('0x3f')](_0xd3e44a[_0x64be('0x3d')],{'$or':[{'key':{'$like':'%'+_0x464841[_0x64be('0x35')][_0x64be('0x40')]+'%'}},{'value':{'$like':'%'+_0x464841['query'][_0x64be('0x40')]+'%'}}]});}_0xd3e44a=_[_0x64be('0x3f')]({},_0xd3e44a,_0x464841[_0x64be('0x41')]);var _0x43f698={'where':_0xd3e44a[_0x64be('0x3d')]};return db['CannedAnswer'][_0x64be('0x1e')](_0x43f698)[_0x64be('0x23')](function(_0x3f30d2){_0x7c0802[_0x64be('0x1e')]=_0x3f30d2;if(_0x464841['query'][_0x64be('0x42')]){_0xd3e44a[_0x64be('0x43')]=[{'all':!![]}];}return db[_0x64be('0x2e')][_0x64be('0x44')](_0xd3e44a);})[_0x64be('0x23')](function(_0x1a31ff){_0x7c0802[_0x64be('0x45')]=_0x1a31ff;return _0x7c0802;})[_0x64be('0x23')](respondWithFilteredResult(_0x1e0852,_0xd3e44a))[_0x64be('0x46')](handleError(_0x1e0852,null));};exports[_0x64be('0x47')]=function(_0x3262b3,_0x50f51f){var _0x37bfd5={'raw':!![],'where':{'id':_0x3262b3[_0x64be('0x48')]['id']}},_0x377d26={};_0x377d26[_0x64be('0x32')]=_[_0x64be('0x33')](db[_0x64be('0x2e')][_0x64be('0x2f')]);_0x377d26[_0x64be('0x35')]=_[_0x64be('0x33')](_0x3262b3[_0x64be('0x35')]);_0x377d26[_0x64be('0x34')]=_[_0x64be('0x36')](_0x377d26[_0x64be('0x32')],_0x377d26[_0x64be('0x35')]);_0x37bfd5[_0x64be('0x38')]=_[_0x64be('0x36')](_0x377d26[_0x64be('0x32')],qs[_0x64be('0x37')](_0x3262b3[_0x64be('0x35')][_0x64be('0x37')]));_0x37bfd5[_0x64be('0x38')]=_0x37bfd5[_0x64be('0x38')]['length']?_0x37bfd5[_0x64be('0x38')]:_0x377d26['model'];if(_0x3262b3[_0x64be('0x35')][_0x64be('0x42')]){_0x37bfd5[_0x64be('0x43')]=[{'all':!![]}];}_0x37bfd5=_[_0x64be('0x3f')]({},_0x37bfd5,_0x3262b3[_0x64be('0x41')]);return db[_0x64be('0x2e')][_0x64be('0x49')](_0x37bfd5)[_0x64be('0x23')](handleEntityNotFound(_0x50f51f,null))['then'](respondWithResult(_0x50f51f,null))[_0x64be('0x46')](handleError(_0x50f51f,null));};exports['update']=function(_0x15280a,_0x3c8c17){if(_0x15280a[_0x64be('0x4a')]['id']){delete _0x15280a[_0x64be('0x4a')]['id'];}return db[_0x64be('0x2e')]['find']({'where':{'id':_0x15280a['params']['id']}})[_0x64be('0x23')](handleEntityNotFound(_0x3c8c17,null))['then'](saveUpdates(_0x15280a['body'],null))[_0x64be('0x23')](respondWithResult(_0x3c8c17,null))['catch'](handleError(_0x3c8c17,null));};exports[_0x64be('0x24')]=function(_0x371fbf,_0x2856fa){return db[_0x64be('0x2e')][_0x64be('0x49')]({'where':{'id':_0x371fbf[_0x64be('0x48')]['id']}})[_0x64be('0x23')](handleEntityNotFound(_0x2856fa,null))[_0x64be('0x23')](removeEntity(_0x2856fa,null))[_0x64be('0x46')](handleError(_0x2856fa,null));};exports[_0x64be('0x4b')]=function(_0x234257,_0x1c11a4){var _0x550c01={'key':_0x234257['body'][_0x64be('0x31')]};if(_0x234257[_0x64be('0x4a')][_0x64be('0x4c')]){_0x550c01[_0x64be('0x4c')]=_0x234257[_0x64be('0x4a')][_0x64be('0x4c')];}else if(_0x234257[_0x64be('0x4a')][_0x64be('0x4d')]){_0x550c01[_0x64be('0x4d')]=_0x234257[_0x64be('0x4a')][_0x64be('0x4d')];}else if(_0x234257[_0x64be('0x4a')][_0x64be('0x4e')]){_0x550c01[_0x64be('0x4e')]=_0x234257[_0x64be('0x4a')][_0x64be('0x4e')];}else if(_0x234257[_0x64be('0x4a')][_0x64be('0x4f')]){_0x550c01[_0x64be('0x4f')]=_0x234257[_0x64be('0x4a')][_0x64be('0x4f')];}return db[_0x64be('0x2e')][_0x64be('0x49')]({'where':_0x550c01})[_0x64be('0x23')](function(_0xc4828a){if(_0xc4828a){throw new db[(_0x64be('0x50'))][(_0x64be('0x51'))](_0x64be('0x52'));}return db['CannedAnswer']['create'](_0x234257[_0x64be('0x4a')]);})[_0x64be('0x23')](function(_0x19ab72){var _0x1621a7=_0x234257['user'][_0x64be('0x25')]({'plain':!![]});if(!_0x1621a7)throw new Error(_0x64be('0x53'));if(_0x1621a7[_0x64be('0x54')]===_0x64be('0x55')){var _0x551e65=_0x19ab72[_0x64be('0x25')]({'plain':!![]});return db[_0x64be('0x56')][_0x64be('0x49')]({'where':{'name':'CannedAnswers','userProfileId':_0x1621a7[_0x64be('0x57')]},'raw':!![]})[_0x64be('0x23')](function(_0x38f4b7){if(_0x38f4b7&&_0x38f4b7['autoAssociation']===0x0){return db[_0x64be('0x58')][_0x64be('0x4b')]({'name':_0x551e65[_0x64be('0x2a')],'resourceId':_0x551e65['id'],'type':_0x38f4b7[_0x64be('0x2a')],'sectionId':_0x38f4b7['id']},{})[_0x64be('0x23')](function(){return _0x19ab72;});}else{return _0x19ab72;}})[_0x64be('0x46')](function(_0x4cefe4){logger[_0x64be('0x28')](_0x64be('0x59'),_0x4cefe4);throw _0x4cefe4;});}return _0x19ab72;})[_0x64be('0x23')](respondWithResult(_0x1c11a4,0xc9))[_0x64be('0x46')](handleError(_0x1c11a4,null));};