Built motion from commit 3e059bc2.|2.5.32
[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 _0x8998=['count','offset','set','Content-Range','apply','reject','save','then','destroy','get','CannedAnswers','UserProfileResource','end','error','stack','name','send','index','map','CannedAnswer','rawAttributes','fieldName','type','key','keys','query','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','filter','options','includeAll','include','findAll','rows','catch','body','find','params','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','The\x20inserted\x20key\x20already\x20exists.','user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','sendStatus','status','undefined','limit'];(function(_0x2c1956,_0x43a122){var _0xcb5d6a=function(_0x2aa40d){while(--_0x2aa40d){_0x2c1956['push'](_0x2c1956['shift']());}};_0xcb5d6a(++_0x43a122);}(_0x8998,0x144));var _0x8899=function(_0x2462ee,_0x36ea0d){_0x2462ee=_0x2462ee-0x0;var _0x2f0cf5=_0x8998[_0x2462ee];return _0x2f0cf5;};'use strict';var emlformat=require(_0x8899('0x0'));var rimraf=require(_0x8899('0x1'));var zipdir=require(_0x8899('0x2'));var jsonpatch=require(_0x8899('0x3'));var rp=require(_0x8899('0x4'));var moment=require(_0x8899('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x8899('0x6'));var util=require(_0x8899('0x7'));var path=require(_0x8899('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8899('0x9'));var _=require('lodash');var squel=require(_0x8899('0xa'));var crypto=require(_0x8899('0xb'));var jsforce=require(_0x8899('0xc'));var deskjs=require(_0x8899('0xd'));var toCsv=require(_0x8899('0xe'));var querystring=require(_0x8899('0xf'));var Papa=require(_0x8899('0x10'));var Redis=require(_0x8899('0x11'));var authService=require(_0x8899('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x8899('0x13'));var hardwareService=require(_0x8899('0x14'));var logger=require('../../config/logger')(_0x8899('0x15'));var utils=require('../../config/utils');var config=require(_0x8899('0x16'));var licenseUtil=require(_0x8899('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3728ef,_0x5cfca0){_0x5cfca0=_0x5cfca0||0xcc;return function(_0x50d0ec){if(_0x50d0ec){return _0x3728ef[_0x8899('0x18')](_0x5cfca0);}return _0x3728ef['status'](_0x5cfca0)['end']();};}function respondWithResult(_0x13d693,_0xaf8353){_0xaf8353=_0xaf8353||0xc8;return function(_0x59c3a0){if(_0x59c3a0){return _0x13d693[_0x8899('0x19')](_0xaf8353)['json'](_0x59c3a0);}};}function respondWithFilteredResult(_0x4da602,_0x559249){return function(_0x53b068){if(_0x53b068){var _0x53a881=typeof _0x559249['offset']===_0x8899('0x1a')&&typeof _0x559249[_0x8899('0x1b')]==='undefined';var _0x565110=_0x53b068[_0x8899('0x1c')];var _0x1701ad=_0x53a881?0x0:_0x559249[_0x8899('0x1d')];var _0x49cf52=_0x53a881?_0x53b068['count']:_0x559249['offset']+_0x559249[_0x8899('0x1b')];var _0x4456d7;if(_0x49cf52>=_0x565110){_0x49cf52=_0x565110;_0x4456d7=0xc8;}else{_0x4456d7=0xce;}_0x4da602[_0x8899('0x19')](_0x4456d7);return _0x4da602[_0x8899('0x1e')](_0x8899('0x1f'),_0x1701ad+'-'+_0x49cf52+'/'+_0x565110)['json'](_0x53b068);}return null;};}function patchUpdates(_0x249fd0){return function(_0x3cd8c4){try{jsonpatch[_0x8899('0x20')](_0x3cd8c4,_0x249fd0,!![]);}catch(_0x2b70d4){return BPromise[_0x8899('0x21')](_0x2b70d4);}return _0x3cd8c4[_0x8899('0x22')]();};}function saveUpdates(_0x5bc8f6,_0x505a41){return function(_0x4db4ce){if(_0x4db4ce){return _0x4db4ce['update'](_0x5bc8f6)[_0x8899('0x23')](function(_0x1d9b8c){return _0x1d9b8c;});}return null;};}function removeEntity(_0x3246e9,_0xe58ab8){return function(_0x2fec52){if(_0x2fec52){return _0x2fec52[_0x8899('0x24')]()[_0x8899('0x23')](function(){var _0x24b5cd=_0x2fec52[_0x8899('0x25')]({'plain':!![]});var _0x25daf3=_0x8899('0x26');return db[_0x8899('0x27')][_0x8899('0x24')]({'where':{'type':_0x25daf3,'resourceId':_0x24b5cd['id']}})[_0x8899('0x23')](function(){return _0x2fec52;});})[_0x8899('0x23')](function(){_0x3246e9[_0x8899('0x19')](0xcc)[_0x8899('0x28')]();});}};}function handleEntityNotFound(_0x198728,_0x54c052){return function(_0x368784){if(!_0x368784){_0x198728[_0x8899('0x18')](0x194);}return _0x368784;};}function handleError(_0x134f39,_0x161c5b){_0x161c5b=_0x161c5b||0x1f4;return function(_0x15df58){logger[_0x8899('0x29')](_0x15df58[_0x8899('0x2a')]);if(_0x15df58['name']){delete _0x15df58[_0x8899('0x2b')];}_0x134f39[_0x8899('0x19')](_0x161c5b)[_0x8899('0x2c')](_0x15df58);};}exports[_0x8899('0x2d')]=function(_0x4a491b,_0x10bb4a){var _0x5cb330={},_0x1ff748={},_0x79b928={'count':0x0,'rows':[]};var _0x43a40d=_[_0x8899('0x2e')](db[_0x8899('0x2f')][_0x8899('0x30')],function(_0x4a5cfc){return{'name':_0x4a5cfc[_0x8899('0x31')],'type':_0x4a5cfc[_0x8899('0x32')][_0x8899('0x33')]};});_0x1ff748['model']=_['map'](_0x43a40d,_0x8899('0x2b'));_0x1ff748['query']=_[_0x8899('0x34')](_0x4a491b[_0x8899('0x35')]);_0x1ff748[_0x8899('0x36')]=_['intersection'](_0x1ff748[_0x8899('0x37')],_0x1ff748['query']);_0x5cb330[_0x8899('0x38')]=_[_0x8899('0x39')](_0x1ff748[_0x8899('0x37')],qs[_0x8899('0x3a')](_0x4a491b['query'][_0x8899('0x3a')]));_0x5cb330[_0x8899('0x38')]=_0x5cb330[_0x8899('0x38')][_0x8899('0x3b')]?_0x5cb330['attributes']:_0x1ff748['model'];if(!_0x4a491b[_0x8899('0x35')][_0x8899('0x3c')](_0x8899('0x3d'))){_0x5cb330[_0x8899('0x1b')]=qs[_0x8899('0x1b')](_0x4a491b['query'][_0x8899('0x1b')]);_0x5cb330[_0x8899('0x1d')]=qs[_0x8899('0x1d')](_0x4a491b['query'][_0x8899('0x1d')]);}_0x5cb330[_0x8899('0x3e')]=qs[_0x8899('0x3f')](_0x4a491b[_0x8899('0x35')][_0x8899('0x3f')]);_0x5cb330[_0x8899('0x40')]=qs[_0x8899('0x36')](_['pick'](_0x4a491b['query'],_0x1ff748[_0x8899('0x36')]),_0x43a40d);if(_0x4a491b[_0x8899('0x35')]['filter']){_0x5cb330[_0x8899('0x40')]=_[_0x8899('0x41')](_0x5cb330[_0x8899('0x40')],{'$or':[{'key':{'$like':'%'+_0x4a491b[_0x8899('0x35')][_0x8899('0x42')]+'%'}},{'value':{'$like':'%'+_0x4a491b[_0x8899('0x35')]['filter']+'%'}}]});}_0x5cb330=_['merge']({},_0x5cb330,_0x4a491b[_0x8899('0x43')]);var _0xfdfc2e={'where':_0x5cb330[_0x8899('0x40')]};return db[_0x8899('0x2f')]['count'](_0xfdfc2e)[_0x8899('0x23')](function(_0x3157bd){_0x79b928[_0x8899('0x1c')]=_0x3157bd;if(_0x4a491b[_0x8899('0x35')][_0x8899('0x44')]){_0x5cb330[_0x8899('0x45')]=[{'all':!![]}];}return db[_0x8899('0x2f')][_0x8899('0x46')](_0x5cb330);})[_0x8899('0x23')](function(_0x2757e7){_0x79b928[_0x8899('0x47')]=_0x2757e7;return _0x79b928;})[_0x8899('0x23')](respondWithFilteredResult(_0x10bb4a,_0x5cb330))[_0x8899('0x48')](handleError(_0x10bb4a,null));};exports['show']=function(_0x11dcbe,_0x325752){var _0x19b38f={'raw':!![],'where':{'id':_0x11dcbe['params']['id']}},_0x58feaf={};_0x58feaf[_0x8899('0x37')]=_['keys'](db[_0x8899('0x2f')][_0x8899('0x30')]);_0x58feaf[_0x8899('0x35')]=_[_0x8899('0x34')](_0x11dcbe[_0x8899('0x35')]);_0x58feaf[_0x8899('0x36')]=_[_0x8899('0x39')](_0x58feaf[_0x8899('0x37')],_0x58feaf[_0x8899('0x35')]);_0x19b38f[_0x8899('0x38')]=_['intersection'](_0x58feaf[_0x8899('0x37')],qs['fields'](_0x11dcbe['query']['fields']));_0x19b38f[_0x8899('0x38')]=_0x19b38f[_0x8899('0x38')][_0x8899('0x3b')]?_0x19b38f[_0x8899('0x38')]:_0x58feaf[_0x8899('0x37')];if(_0x11dcbe[_0x8899('0x35')]['includeAll']){_0x19b38f[_0x8899('0x45')]=[{'all':!![]}];}_0x19b38f=_[_0x8899('0x41')]({},_0x19b38f,_0x11dcbe[_0x8899('0x43')]);return db[_0x8899('0x2f')]['find'](_0x19b38f)[_0x8899('0x23')](handleEntityNotFound(_0x325752,null))[_0x8899('0x23')](respondWithResult(_0x325752,null))[_0x8899('0x48')](handleError(_0x325752,null));};exports['update']=function(_0x4d39e6,_0x2febdd){if(_0x4d39e6[_0x8899('0x49')]['id']){delete _0x4d39e6[_0x8899('0x49')]['id'];}return db[_0x8899('0x2f')][_0x8899('0x4a')]({'where':{'id':_0x4d39e6[_0x8899('0x4b')]['id']}})['then'](handleEntityNotFound(_0x2febdd,null))[_0x8899('0x23')](saveUpdates(_0x4d39e6[_0x8899('0x49')],null))[_0x8899('0x23')](respondWithResult(_0x2febdd,null))[_0x8899('0x48')](handleError(_0x2febdd,null));};exports[_0x8899('0x24')]=function(_0x5c3a11,_0x3fbf55){return db['CannedAnswer']['find']({'where':{'id':_0x5c3a11[_0x8899('0x4b')]['id']}})['then'](handleEntityNotFound(_0x3fbf55,null))['then'](removeEntity(_0x3fbf55,null))[_0x8899('0x48')](handleError(_0x3fbf55,null));};exports[_0x8899('0x4c')]=function(_0x1f6a00,_0x59cd40){var _0x574269={'key':_0x1f6a00['body'][_0x8899('0x33')]};if(_0x1f6a00[_0x8899('0x49')][_0x8899('0x4d')]){_0x574269['MailAccountId']=_0x1f6a00[_0x8899('0x49')][_0x8899('0x4d')];}else if(_0x1f6a00[_0x8899('0x49')][_0x8899('0x4e')]){_0x574269[_0x8899('0x4e')]=_0x1f6a00[_0x8899('0x49')][_0x8899('0x4e')];}else if(_0x1f6a00[_0x8899('0x49')]['OpenchannelAccountId']){_0x574269[_0x8899('0x4f')]=_0x1f6a00[_0x8899('0x49')][_0x8899('0x4f')];}else if(_0x1f6a00[_0x8899('0x49')][_0x8899('0x50')]){_0x574269[_0x8899('0x50')]=_0x1f6a00['body'][_0x8899('0x50')];}return db[_0x8899('0x2f')][_0x8899('0x4a')]({'where':_0x574269})['then'](function(_0x2330c1){if(_0x2330c1){throw new db[(_0x8899('0x51'))]['ValidationError'](_0x8899('0x52'));}return db['CannedAnswer'][_0x8899('0x4c')](_0x1f6a00[_0x8899('0x49')]);})[_0x8899('0x23')](function(_0x6c8f9a){var _0x1e23e1=_0x1f6a00[_0x8899('0x53')][_0x8899('0x25')]({'plain':!![]});if(!_0x1e23e1)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1e23e1[_0x8899('0x54')]===_0x8899('0x53')){var _0x45fc2c=_0x6c8f9a[_0x8899('0x25')]({'plain':!![]});return db[_0x8899('0x55')][_0x8899('0x4a')]({'where':{'name':'CannedAnswers','userProfileId':_0x1e23e1['userProfileId']},'raw':!![]})[_0x8899('0x23')](function(_0x5ddce3){if(_0x5ddce3&&_0x5ddce3[_0x8899('0x56')]===0x0){return db['UserProfileResource'][_0x8899('0x4c')]({'name':_0x45fc2c['name'],'resourceId':_0x45fc2c['id'],'type':_0x5ddce3[_0x8899('0x2b')],'sectionId':_0x5ddce3['id']},{})[_0x8899('0x23')](function(){return _0x6c8f9a;});}else{return _0x6c8f9a;}})[_0x8899('0x48')](function(_0x3d453b){logger[_0x8899('0x29')](_0x8899('0x57'),_0x3d453b);throw _0x3d453b;});}return _0x6c8f9a;})[_0x8899('0x23')](respondWithResult(_0x59cd40,0xc9))['catch'](handleError(_0x59cd40,null));};