Built motion from commit 9d1906d1.|2.5.40
[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 _0x3072=['query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','options','includeAll','findAll','rows','catch','show','include','body','find','params','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','moment','bluebird','mustache','path','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','get','CannedAnswers','destroy','stack','name','send','index','CannedAnswer','rawAttributes','fieldName','type','key','map'];(function(_0xef8146,_0x459c34){var _0x5a6cb0=function(_0x2f84ec){while(--_0x2f84ec){_0xef8146['push'](_0xef8146['shift']());}};_0x5a6cb0(++_0x459c34);}(_0x3072,0xdb));var _0x2307=function(_0x4a37b7,_0x58130c){_0x4a37b7=_0x4a37b7-0x0;var _0x41f13f=_0x3072[_0x4a37b7];return _0x41f13f;};'use strict';var emlformat=require(_0x2307('0x0'));var rimraf=require(_0x2307('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x2307('0x2'));var BPromise=require(_0x2307('0x3'));var Mustache=require(_0x2307('0x4'));var util=require('util');var path=require(_0x2307('0x5'));var sox=require('sox');var csv=require(_0x2307('0x6'));var ejs=require(_0x2307('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2307('0x8'));var squel=require(_0x2307('0x9'));var crypto=require(_0x2307('0xa'));var jsforce=require(_0x2307('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x2307('0x6'));var querystring=require(_0x2307('0xc'));var Papa=require(_0x2307('0xd'));var Redis=require(_0x2307('0xe'));var authService=require(_0x2307('0xf'));var qs=require(_0x2307('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x2307('0x11'));var utils=require(_0x2307('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x2307('0x13'));var db=require(_0x2307('0x14'))['db'];function respondWithStatusCode(_0x420cd2,_0xdc744a){_0xdc744a=_0xdc744a||0xcc;return function(_0xa150f7){if(_0xa150f7){return _0x420cd2[_0x2307('0x15')](_0xdc744a);}return _0x420cd2[_0x2307('0x16')](_0xdc744a)[_0x2307('0x17')]();};}function respondWithResult(_0x369366,_0x1be0a8){_0x1be0a8=_0x1be0a8||0xc8;return function(_0x40b64b){if(_0x40b64b){return _0x369366['status'](_0x1be0a8)[_0x2307('0x18')](_0x40b64b);}};}function respondWithFilteredResult(_0x1e7b7b,_0x21cc99){return function(_0x87c71c){if(_0x87c71c){var _0xac63fe=typeof _0x21cc99[_0x2307('0x19')]===_0x2307('0x1a')&&typeof _0x21cc99[_0x2307('0x1b')]===_0x2307('0x1a');var _0x2035b9=_0x87c71c[_0x2307('0x1c')];var _0x499a59=_0xac63fe?0x0:_0x21cc99[_0x2307('0x19')];var _0x22499c=_0xac63fe?_0x87c71c[_0x2307('0x1c')]:_0x21cc99[_0x2307('0x19')]+_0x21cc99['limit'];var _0x34affc;if(_0x22499c>=_0x2035b9){_0x22499c=_0x2035b9;_0x34affc=0xc8;}else{_0x34affc=0xce;}_0x1e7b7b[_0x2307('0x16')](_0x34affc);return _0x1e7b7b[_0x2307('0x1d')](_0x2307('0x1e'),_0x499a59+'-'+_0x22499c+'/'+_0x2035b9)[_0x2307('0x18')](_0x87c71c);}return null;};}function patchUpdates(_0x12609d){return function(_0x4c2411){try{jsonpatch['apply'](_0x4c2411,_0x12609d,!![]);}catch(_0x1f5020){return BPromise[_0x2307('0x1f')](_0x1f5020);}return _0x4c2411[_0x2307('0x20')]();};}function saveUpdates(_0x19d2d5,_0x1f07ec){return function(_0x2cfaa6){if(_0x2cfaa6){return _0x2cfaa6[_0x2307('0x21')](_0x19d2d5)['then'](function(_0x39d8ce){return _0x39d8ce;});}return null;};}function removeEntity(_0x3026cc,_0xf3cb90){return function(_0x2225e6){if(_0x2225e6){return _0x2225e6['destroy']()[_0x2307('0x22')](function(){var _0xf6afd1=_0x2225e6[_0x2307('0x23')]({'plain':!![]});var _0x1681d5=_0x2307('0x24');return db['UserProfileResource'][_0x2307('0x25')]({'where':{'type':_0x1681d5,'resourceId':_0xf6afd1['id']}})[_0x2307('0x22')](function(){return _0x2225e6;});})[_0x2307('0x22')](function(){_0x3026cc['status'](0xcc)[_0x2307('0x17')]();});}};}function handleEntityNotFound(_0x2a7bdd,_0x2148b4){return function(_0x4c2036){if(!_0x4c2036){_0x2a7bdd[_0x2307('0x15')](0x194);}return _0x4c2036;};}function handleError(_0x36a5dd,_0x1d418d){_0x1d418d=_0x1d418d||0x1f4;return function(_0x5bfd69){logger['error'](_0x5bfd69[_0x2307('0x26')]);if(_0x5bfd69[_0x2307('0x27')]){delete _0x5bfd69[_0x2307('0x27')];}_0x36a5dd[_0x2307('0x16')](_0x1d418d)[_0x2307('0x28')](_0x5bfd69);};}exports[_0x2307('0x29')]=function(_0x2f08d0,_0x259412){var _0x5c86e1={},_0x10cc6e={},_0x9803e3={'count':0x0,'rows':[]};var _0x3b4301=_['map'](db[_0x2307('0x2a')][_0x2307('0x2b')],function(_0x41d546){return{'name':_0x41d546[_0x2307('0x2c')],'type':_0x41d546[_0x2307('0x2d')][_0x2307('0x2e')]};});_0x10cc6e['model']=_[_0x2307('0x2f')](_0x3b4301,_0x2307('0x27'));_0x10cc6e[_0x2307('0x30')]=_[_0x2307('0x31')](_0x2f08d0[_0x2307('0x30')]);_0x10cc6e[_0x2307('0x32')]=_[_0x2307('0x33')](_0x10cc6e[_0x2307('0x34')],_0x10cc6e[_0x2307('0x30')]);_0x5c86e1[_0x2307('0x35')]=_[_0x2307('0x33')](_0x10cc6e[_0x2307('0x34')],qs['fields'](_0x2f08d0[_0x2307('0x30')][_0x2307('0x36')]));_0x5c86e1[_0x2307('0x35')]=_0x5c86e1['attributes'][_0x2307('0x37')]?_0x5c86e1[_0x2307('0x35')]:_0x10cc6e['model'];if(!_0x2f08d0[_0x2307('0x30')][_0x2307('0x38')](_0x2307('0x39'))){_0x5c86e1[_0x2307('0x1b')]=qs[_0x2307('0x1b')](_0x2f08d0[_0x2307('0x30')][_0x2307('0x1b')]);_0x5c86e1[_0x2307('0x19')]=qs[_0x2307('0x19')](_0x2f08d0['query'][_0x2307('0x19')]);}_0x5c86e1[_0x2307('0x3a')]=qs[_0x2307('0x3b')](_0x2f08d0[_0x2307('0x30')][_0x2307('0x3b')]);_0x5c86e1[_0x2307('0x3c')]=qs[_0x2307('0x32')](_[_0x2307('0x3d')](_0x2f08d0['query'],_0x10cc6e[_0x2307('0x32')]),_0x3b4301);if(_0x2f08d0[_0x2307('0x30')]['filter']){_0x5c86e1[_0x2307('0x3c')]=_[_0x2307('0x3e')](_0x5c86e1['where'],{'$or':[{'key':{'$like':'%'+_0x2f08d0['query'][_0x2307('0x3f')]+'%'}},{'value':{'$like':'%'+_0x2f08d0[_0x2307('0x30')][_0x2307('0x3f')]+'%'}}]});}_0x5c86e1=_[_0x2307('0x3e')]({},_0x5c86e1,_0x2f08d0[_0x2307('0x40')]);var _0x4292fb={'where':_0x5c86e1['where']};return db[_0x2307('0x2a')][_0x2307('0x1c')](_0x4292fb)['then'](function(_0x22d4a4){_0x9803e3['count']=_0x22d4a4;if(_0x2f08d0[_0x2307('0x30')][_0x2307('0x41')]){_0x5c86e1['include']=[{'all':!![]}];}return db[_0x2307('0x2a')][_0x2307('0x42')](_0x5c86e1);})['then'](function(_0xf342b5){_0x9803e3[_0x2307('0x43')]=_0xf342b5;return _0x9803e3;})['then'](respondWithFilteredResult(_0x259412,_0x5c86e1))[_0x2307('0x44')](handleError(_0x259412,null));};exports[_0x2307('0x45')]=function(_0x4b8e19,_0x1fa005){var _0x433720={'raw':!![],'where':{'id':_0x4b8e19['params']['id']}},_0x17883f={};_0x17883f[_0x2307('0x34')]=_[_0x2307('0x31')](db[_0x2307('0x2a')][_0x2307('0x2b')]);_0x17883f[_0x2307('0x30')]=_[_0x2307('0x31')](_0x4b8e19[_0x2307('0x30')]);_0x17883f[_0x2307('0x32')]=_[_0x2307('0x33')](_0x17883f[_0x2307('0x34')],_0x17883f[_0x2307('0x30')]);_0x433720[_0x2307('0x35')]=_[_0x2307('0x33')](_0x17883f[_0x2307('0x34')],qs['fields'](_0x4b8e19[_0x2307('0x30')][_0x2307('0x36')]));_0x433720[_0x2307('0x35')]=_0x433720[_0x2307('0x35')][_0x2307('0x37')]?_0x433720[_0x2307('0x35')]:_0x17883f[_0x2307('0x34')];if(_0x4b8e19[_0x2307('0x30')][_0x2307('0x41')]){_0x433720[_0x2307('0x46')]=[{'all':!![]}];}_0x433720=_[_0x2307('0x3e')]({},_0x433720,_0x4b8e19['options']);return db[_0x2307('0x2a')]['find'](_0x433720)[_0x2307('0x22')](handleEntityNotFound(_0x1fa005,null))[_0x2307('0x22')](respondWithResult(_0x1fa005,null))[_0x2307('0x44')](handleError(_0x1fa005,null));};exports[_0x2307('0x21')]=function(_0x3d08b1,_0x347148){if(_0x3d08b1[_0x2307('0x47')]['id']){delete _0x3d08b1[_0x2307('0x47')]['id'];}return db[_0x2307('0x2a')][_0x2307('0x48')]({'where':{'id':_0x3d08b1[_0x2307('0x49')]['id']}})['then'](handleEntityNotFound(_0x347148,null))[_0x2307('0x22')](saveUpdates(_0x3d08b1['body'],null))[_0x2307('0x22')](respondWithResult(_0x347148,null))[_0x2307('0x44')](handleError(_0x347148,null));};exports['destroy']=function(_0x360b1a,_0x489966){return db[_0x2307('0x2a')][_0x2307('0x48')]({'where':{'id':_0x360b1a[_0x2307('0x49')]['id']}})[_0x2307('0x22')](handleEntityNotFound(_0x489966,null))[_0x2307('0x22')](removeEntity(_0x489966,null))[_0x2307('0x44')](handleError(_0x489966,null));};exports[_0x2307('0x4a')]=function(_0x2cd561,_0xe2c382){var _0x1036d3={'key':_0x2cd561[_0x2307('0x47')][_0x2307('0x2e')]};if(_0x2cd561[_0x2307('0x47')][_0x2307('0x4b')]){_0x1036d3[_0x2307('0x4b')]=_0x2cd561[_0x2307('0x47')][_0x2307('0x4b')];}else if(_0x2cd561[_0x2307('0x47')][_0x2307('0x4c')]){_0x1036d3[_0x2307('0x4c')]=_0x2cd561[_0x2307('0x47')][_0x2307('0x4c')];}else if(_0x2cd561[_0x2307('0x47')][_0x2307('0x4d')]){_0x1036d3['OpenchannelAccountId']=_0x2cd561[_0x2307('0x47')][_0x2307('0x4d')];}else if(_0x2cd561['body']['ChatWebsiteId']){_0x1036d3['ChatWebsiteId']=_0x2cd561[_0x2307('0x47')][_0x2307('0x4e')];}return db['CannedAnswer'][_0x2307('0x48')]({'where':_0x1036d3})[_0x2307('0x22')](function(_0x19a233){if(_0x19a233){throw new db[(_0x2307('0x4f'))][(_0x2307('0x50'))](_0x2307('0x51'));}return db[_0x2307('0x2a')]['create'](_0x2cd561[_0x2307('0x47')]);})[_0x2307('0x22')](function(_0x2a2ae6){var _0x489971=_0x2cd561[_0x2307('0x52')]['get']({'plain':!![]});if(!_0x489971)throw new Error(_0x2307('0x53'));if(_0x489971[_0x2307('0x54')]===_0x2307('0x52')){var _0x5acac0=_0x2a2ae6[_0x2307('0x23')]({'plain':!![]});return db[_0x2307('0x55')][_0x2307('0x48')]({'where':{'name':_0x2307('0x24'),'userProfileId':_0x489971[_0x2307('0x56')]},'raw':!![]})[_0x2307('0x22')](function(_0x36100a){if(_0x36100a&&_0x36100a['autoAssociation']===0x0){return db[_0x2307('0x57')][_0x2307('0x4a')]({'name':_0x5acac0['name'],'resourceId':_0x5acac0['id'],'type':_0x36100a[_0x2307('0x27')],'sectionId':_0x36100a['id']},{})[_0x2307('0x22')](function(){return _0x2a2ae6;});}else{return _0x2a2ae6;}})[_0x2307('0x44')](function(_0x159812){logger['error'](_0x2307('0x58'),_0x159812);throw _0x159812;});}return _0x2a2ae6;})[_0x2307('0x22')](respondWithResult(_0xe2c382,0xc9))[_0x2307('0x44')](handleError(_0xe2c382,null));};