Built motion from commit 775e2a94.|2.6.3
[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 _0x8128=['autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../mysqldb','end','status','json','offset','limit','undefined','count','set','apply','reject','save','then','destroy','get','CannedAnswers','UserProfileResource','sendStatus','name','send','index','map','rawAttributes','fieldName','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','options','CannedAnswer','includeAll','include','findAll','rows','catch','show','params','find','body','create','key','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','UserProfileSection','userProfileId'];(function(_0x39f957,_0x1fa435){var _0x9d17ef=function(_0x435d73){while(--_0x435d73){_0x39f957['push'](_0x39f957['shift']());}};_0x9d17ef(++_0x1fa435);}(_0x8128,0xa9));var _0x8812=function(_0x543084,_0x4337f5){_0x543084=_0x543084-0x0;var _0x306a57=_0x8128[_0x543084];return _0x306a57;};'use strict';var emlformat=require(_0x8812('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8812('0x1'));var jsonpatch=require(_0x8812('0x2'));var rp=require(_0x8812('0x3'));var moment=require(_0x8812('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x8812('0x5'));var util=require('util');var path=require(_0x8812('0x6'));var sox=require(_0x8812('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8812('0x8'));var _=require(_0x8812('0x9'));var squel=require(_0x8812('0xa'));var crypto=require(_0x8812('0xb'));var jsforce=require(_0x8812('0xc'));var deskjs=require(_0x8812('0xd'));var toCsv=require('to-csv');var querystring=require(_0x8812('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x8812('0xf'));var hardwareService=require(_0x8812('0x10'));var logger=require('../../config/logger')(_0x8812('0x11'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x8812('0x12'))['db'];function respondWithStatusCode(_0x261535,_0x2b5bcb){_0x2b5bcb=_0x2b5bcb||0xcc;return function(_0x4bca00){if(_0x4bca00){return _0x261535['sendStatus'](_0x2b5bcb);}return _0x261535['status'](_0x2b5bcb)[_0x8812('0x13')]();};}function respondWithResult(_0x3aa3db,_0x30e2bb){_0x30e2bb=_0x30e2bb||0xc8;return function(_0x3d4257){if(_0x3d4257){return _0x3aa3db[_0x8812('0x14')](_0x30e2bb)[_0x8812('0x15')](_0x3d4257);}};}function respondWithFilteredResult(_0x28e35e,_0x1930a2){return function(_0x121730){if(_0x121730){var _0x11ae09=typeof _0x1930a2[_0x8812('0x16')]==='undefined'&&typeof _0x1930a2[_0x8812('0x17')]===_0x8812('0x18');var _0x599389=_0x121730[_0x8812('0x19')];var _0x5c4fb2=_0x11ae09?0x0:_0x1930a2[_0x8812('0x16')];var _0x448a41=_0x11ae09?_0x121730[_0x8812('0x19')]:_0x1930a2[_0x8812('0x16')]+_0x1930a2['limit'];var _0x215879;if(_0x448a41>=_0x599389){_0x448a41=_0x599389;_0x215879=0xc8;}else{_0x215879=0xce;}_0x28e35e[_0x8812('0x14')](_0x215879);return _0x28e35e[_0x8812('0x1a')]('Content-Range',_0x5c4fb2+'-'+_0x448a41+'/'+_0x599389)['json'](_0x121730);}return null;};}function patchUpdates(_0x81a585){return function(_0x26768a){try{jsonpatch[_0x8812('0x1b')](_0x26768a,_0x81a585,!![]);}catch(_0x30e29a){return BPromise[_0x8812('0x1c')](_0x30e29a);}return _0x26768a[_0x8812('0x1d')]();};}function saveUpdates(_0x3dac9b,_0x361aa1){return function(_0x555825){if(_0x555825){return _0x555825['update'](_0x3dac9b)[_0x8812('0x1e')](function(_0x2e93af){return _0x2e93af;});}return null;};}function removeEntity(_0x4834d4,_0x32bb3b){return function(_0x52174e){if(_0x52174e){return _0x52174e[_0x8812('0x1f')]()['then'](function(){var _0x2eec12=_0x52174e[_0x8812('0x20')]({'plain':!![]});var _0x1453a4=_0x8812('0x21');return db[_0x8812('0x22')][_0x8812('0x1f')]({'where':{'type':_0x1453a4,'resourceId':_0x2eec12['id']}})['then'](function(){return _0x52174e;});})[_0x8812('0x1e')](function(){_0x4834d4['status'](0xcc)[_0x8812('0x13')]();});}};}function handleEntityNotFound(_0x32ba8a,_0x17f226){return function(_0x1ab4fd){if(!_0x1ab4fd){_0x32ba8a[_0x8812('0x23')](0x194);}return _0x1ab4fd;};}function handleError(_0x584f4e,_0x3b9c63){_0x3b9c63=_0x3b9c63||0x1f4;return function(_0x15d37c){logger['error'](_0x15d37c['stack']);if(_0x15d37c[_0x8812('0x24')]){delete _0x15d37c[_0x8812('0x24')];}_0x584f4e[_0x8812('0x14')](_0x3b9c63)[_0x8812('0x25')](_0x15d37c);};}exports[_0x8812('0x26')]=function(_0x2d7016,_0xb661b3){var _0x2af812={},_0x49c8a5={},_0x482904={'count':0x0,'rows':[]};var _0x181d72=_[_0x8812('0x27')](db['CannedAnswer'][_0x8812('0x28')],function(_0x2b3106){return{'name':_0x2b3106[_0x8812('0x29')],'type':_0x2b3106['type']['key']};});_0x49c8a5[_0x8812('0x2a')]=_[_0x8812('0x27')](_0x181d72,'name');_0x49c8a5[_0x8812('0x2b')]=_[_0x8812('0x2c')](_0x2d7016['query']);_0x49c8a5[_0x8812('0x2d')]=_[_0x8812('0x2e')](_0x49c8a5[_0x8812('0x2a')],_0x49c8a5[_0x8812('0x2b')]);_0x2af812[_0x8812('0x2f')]=_[_0x8812('0x2e')](_0x49c8a5['model'],qs['fields'](_0x2d7016['query'][_0x8812('0x30')]));_0x2af812['attributes']=_0x2af812[_0x8812('0x2f')][_0x8812('0x31')]?_0x2af812[_0x8812('0x2f')]:_0x49c8a5[_0x8812('0x2a')];if(!_0x2d7016[_0x8812('0x2b')][_0x8812('0x32')](_0x8812('0x33'))){_0x2af812[_0x8812('0x17')]=qs['limit'](_0x2d7016[_0x8812('0x2b')][_0x8812('0x17')]);_0x2af812[_0x8812('0x16')]=qs[_0x8812('0x16')](_0x2d7016['query'][_0x8812('0x16')]);}_0x2af812[_0x8812('0x34')]=qs['sort'](_0x2d7016[_0x8812('0x2b')][_0x8812('0x35')]);_0x2af812[_0x8812('0x36')]=qs['filters'](_['pick'](_0x2d7016[_0x8812('0x2b')],_0x49c8a5['filters']),_0x181d72);if(_0x2d7016['query'][_0x8812('0x37')]){_0x2af812[_0x8812('0x36')]=_[_0x8812('0x38')](_0x2af812['where'],{'$or':[{'key':{'$like':'%'+_0x2d7016[_0x8812('0x2b')][_0x8812('0x37')]+'%'}},{'value':{'$like':'%'+_0x2d7016[_0x8812('0x2b')][_0x8812('0x37')]+'%'}}]});}_0x2af812=_[_0x8812('0x38')]({},_0x2af812,_0x2d7016[_0x8812('0x39')]);var _0x360e78={'where':_0x2af812['where']};return db[_0x8812('0x3a')]['count'](_0x360e78)[_0x8812('0x1e')](function(_0x5db5ff){_0x482904[_0x8812('0x19')]=_0x5db5ff;if(_0x2d7016[_0x8812('0x2b')][_0x8812('0x3b')]){_0x2af812[_0x8812('0x3c')]=[{'all':!![]}];}return db['CannedAnswer'][_0x8812('0x3d')](_0x2af812);})[_0x8812('0x1e')](function(_0x5c5890){_0x482904[_0x8812('0x3e')]=_0x5c5890;return _0x482904;})[_0x8812('0x1e')](respondWithFilteredResult(_0xb661b3,_0x2af812))[_0x8812('0x3f')](handleError(_0xb661b3,null));};exports[_0x8812('0x40')]=function(_0x446ba8,_0x49db62){var _0x424371={'raw':!![],'where':{'id':_0x446ba8[_0x8812('0x41')]['id']}},_0x2fb736={};_0x2fb736[_0x8812('0x2a')]=_['keys'](db[_0x8812('0x3a')][_0x8812('0x28')]);_0x2fb736['query']=_[_0x8812('0x2c')](_0x446ba8[_0x8812('0x2b')]);_0x2fb736[_0x8812('0x2d')]=_[_0x8812('0x2e')](_0x2fb736[_0x8812('0x2a')],_0x2fb736[_0x8812('0x2b')]);_0x424371[_0x8812('0x2f')]=_[_0x8812('0x2e')](_0x2fb736[_0x8812('0x2a')],qs[_0x8812('0x30')](_0x446ba8[_0x8812('0x2b')]['fields']));_0x424371[_0x8812('0x2f')]=_0x424371['attributes']['length']?_0x424371[_0x8812('0x2f')]:_0x2fb736['model'];if(_0x446ba8['query'][_0x8812('0x3b')]){_0x424371[_0x8812('0x3c')]=[{'all':!![]}];}_0x424371=_[_0x8812('0x38')]({},_0x424371,_0x446ba8[_0x8812('0x39')]);return db[_0x8812('0x3a')][_0x8812('0x42')](_0x424371)[_0x8812('0x1e')](handleEntityNotFound(_0x49db62,null))[_0x8812('0x1e')](respondWithResult(_0x49db62,null))[_0x8812('0x3f')](handleError(_0x49db62,null));};exports['update']=function(_0x140d02,_0x4cb4a8){if(_0x140d02[_0x8812('0x43')]['id']){delete _0x140d02[_0x8812('0x43')]['id'];}return db[_0x8812('0x3a')][_0x8812('0x42')]({'where':{'id':_0x140d02['params']['id']}})[_0x8812('0x1e')](handleEntityNotFound(_0x4cb4a8,null))[_0x8812('0x1e')](saveUpdates(_0x140d02['body'],null))[_0x8812('0x1e')](respondWithResult(_0x4cb4a8,null))[_0x8812('0x3f')](handleError(_0x4cb4a8,null));};exports[_0x8812('0x1f')]=function(_0x310b14,_0x4cd1f1){return db[_0x8812('0x3a')][_0x8812('0x42')]({'where':{'id':_0x310b14[_0x8812('0x41')]['id']}})['then'](handleEntityNotFound(_0x4cd1f1,null))[_0x8812('0x1e')](removeEntity(_0x4cd1f1,null))[_0x8812('0x3f')](handleError(_0x4cd1f1,null));};exports[_0x8812('0x44')]=function(_0x489004,_0x13a4b0){var _0x1ba674={'key':_0x489004[_0x8812('0x43')][_0x8812('0x45')]};if(_0x489004[_0x8812('0x43')]['MailAccountId']){_0x1ba674[_0x8812('0x46')]=_0x489004[_0x8812('0x43')][_0x8812('0x46')];}else if(_0x489004[_0x8812('0x43')][_0x8812('0x47')]){_0x1ba674[_0x8812('0x47')]=_0x489004[_0x8812('0x43')]['SmsAccountId'];}else if(_0x489004['body'][_0x8812('0x48')]){_0x1ba674[_0x8812('0x48')]=_0x489004[_0x8812('0x43')][_0x8812('0x48')];}else if(_0x489004['body']['ChatWebsiteId']){_0x1ba674[_0x8812('0x49')]=_0x489004[_0x8812('0x43')][_0x8812('0x49')];}return db[_0x8812('0x3a')]['find']({'where':_0x1ba674})[_0x8812('0x1e')](function(_0x48aef0){if(_0x48aef0){throw new db[(_0x8812('0x4a'))][(_0x8812('0x4b'))](_0x8812('0x4c'));}return db[_0x8812('0x3a')][_0x8812('0x44')](_0x489004[_0x8812('0x43')]);})[_0x8812('0x1e')](function(_0x164382){var _0x195aa0=_0x489004[_0x8812('0x4d')][_0x8812('0x20')]({'plain':!![]});if(!_0x195aa0)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x195aa0['role']===_0x8812('0x4d')){var _0x368ef5=_0x164382[_0x8812('0x20')]({'plain':!![]});return db[_0x8812('0x4e')][_0x8812('0x42')]({'where':{'name':_0x8812('0x21'),'userProfileId':_0x195aa0[_0x8812('0x4f')]},'raw':!![]})[_0x8812('0x1e')](function(_0x365a36){if(_0x365a36&&_0x365a36[_0x8812('0x50')]===0x0){return db[_0x8812('0x22')][_0x8812('0x44')]({'name':_0x368ef5[_0x8812('0x24')],'resourceId':_0x368ef5['id'],'type':_0x365a36[_0x8812('0x24')],'sectionId':_0x365a36['id']},{})[_0x8812('0x1e')](function(){return _0x164382;});}else{return _0x164382;}})[_0x8812('0x3f')](function(_0x43bb26){logger[_0x8812('0x51')](_0x8812('0x52'),_0x43bb26);throw _0x43bb26;});}return _0x164382;})[_0x8812('0x1e')](respondWithResult(_0x13a4b0,0xc9))[_0x8812('0x3f')](handleError(_0x13a4b0,null));};