Built motion from commit f541bb3b.|2.6.14
[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 _0x8aab=['eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','apply','save','update','then','destroy','get','CannedAnswers','UserProfileResource','stack','name','send','index','map','CannedAnswer','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','includeAll','findAll','rows','show','params','include','options','find','body','catch','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s'];(function(_0x2cdc4a,_0xa97f65){var _0x1e2341=function(_0x54d5cc){while(--_0x54d5cc){_0x2cdc4a['push'](_0x2cdc4a['shift']());}};_0x1e2341(++_0xa97f65);}(_0x8aab,0x114));var _0xb8aa=function(_0x736b3c,_0x132551){_0x736b3c=_0x736b3c-0x0;var _0x409141=_0x8aab[_0x736b3c];return _0x409141;};'use strict';var emlformat=require(_0xb8aa('0x0'));var rimraf=require(_0xb8aa('0x1'));var zipdir=require(_0xb8aa('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb8aa('0x3'));var moment=require('moment');var BPromise=require(_0xb8aa('0x4'));var Mustache=require(_0xb8aa('0x5'));var util=require(_0xb8aa('0x6'));var path=require(_0xb8aa('0x7'));var sox=require('sox');var csv=require(_0xb8aa('0x8'));var ejs=require(_0xb8aa('0x9'));var fs=require('fs');var fs_extra=require(_0xb8aa('0xa'));var _=require(_0xb8aa('0xb'));var squel=require(_0xb8aa('0xc'));var crypto=require(_0xb8aa('0xd'));var jsforce=require(_0xb8aa('0xe'));var deskjs=require(_0xb8aa('0xf'));var toCsv=require(_0xb8aa('0x8'));var querystring=require(_0xb8aa('0x10'));var Papa=require(_0xb8aa('0x11'));var Redis=require('ioredis');var authService=require(_0xb8aa('0x12'));var qs=require(_0xb8aa('0x13'));var as=require(_0xb8aa('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xb8aa('0x15'));var utils=require(_0xb8aa('0x16'));var config=require(_0xb8aa('0x17'));var licenseUtil=require(_0xb8aa('0x18'));var db=require(_0xb8aa('0x19'))['db'];function respondWithStatusCode(_0x289fb7,_0x3200f1){_0x3200f1=_0x3200f1||0xcc;return function(_0x32074d){if(_0x32074d){return _0x289fb7[_0xb8aa('0x1a')](_0x3200f1);}return _0x289fb7[_0xb8aa('0x1b')](_0x3200f1)[_0xb8aa('0x1c')]();};}function respondWithResult(_0x499c56,_0x4e5c89){_0x4e5c89=_0x4e5c89||0xc8;return function(_0x4c4906){if(_0x4c4906){return _0x499c56['status'](_0x4e5c89)[_0xb8aa('0x1d')](_0x4c4906);}};}function respondWithFilteredResult(_0x32dccf,_0x5b5bb0){return function(_0x678ff){if(_0x678ff){var _0x38e33c=typeof _0x5b5bb0['offset']===_0xb8aa('0x1e')&&typeof _0x5b5bb0[_0xb8aa('0x1f')]===_0xb8aa('0x1e');var _0x293841=_0x678ff[_0xb8aa('0x20')];var _0x1e9726=_0x38e33c?0x0:_0x5b5bb0[_0xb8aa('0x21')];var _0x122fed=_0x38e33c?_0x678ff[_0xb8aa('0x20')]:_0x5b5bb0[_0xb8aa('0x21')]+_0x5b5bb0['limit'];var _0x3267d3;if(_0x122fed>=_0x293841){_0x122fed=_0x293841;_0x3267d3=0xc8;}else{_0x3267d3=0xce;}_0x32dccf['status'](_0x3267d3);return _0x32dccf[_0xb8aa('0x22')]('Content-Range',_0x1e9726+'-'+_0x122fed+'/'+_0x293841)[_0xb8aa('0x1d')](_0x678ff);}return null;};}function patchUpdates(_0xbf27ce){return function(_0x34de86){try{jsonpatch[_0xb8aa('0x23')](_0x34de86,_0xbf27ce,!![]);}catch(_0xc7affc){return BPromise['reject'](_0xc7affc);}return _0x34de86[_0xb8aa('0x24')]();};}function saveUpdates(_0x4b927b,_0x1ea017){return function(_0x396197){if(_0x396197){return _0x396197[_0xb8aa('0x25')](_0x4b927b)[_0xb8aa('0x26')](function(_0x570663){return _0x570663;});}return null;};}function removeEntity(_0x4d07a0,_0x38f94c){return function(_0x3ce4e4){if(_0x3ce4e4){return _0x3ce4e4[_0xb8aa('0x27')]()[_0xb8aa('0x26')](function(){var _0x58b125=_0x3ce4e4[_0xb8aa('0x28')]({'plain':!![]});var _0x5ccfb8=_0xb8aa('0x29');return db[_0xb8aa('0x2a')][_0xb8aa('0x27')]({'where':{'type':_0x5ccfb8,'resourceId':_0x58b125['id']}})[_0xb8aa('0x26')](function(){return _0x3ce4e4;});})[_0xb8aa('0x26')](function(){_0x4d07a0[_0xb8aa('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x65ec2,_0xed999){return function(_0x5d5b6e){if(!_0x5d5b6e){_0x65ec2[_0xb8aa('0x1a')](0x194);}return _0x5d5b6e;};}function handleError(_0x1e051d,_0x492037){_0x492037=_0x492037||0x1f4;return function(_0x470bf2){logger['error'](_0x470bf2[_0xb8aa('0x2b')]);if(_0x470bf2[_0xb8aa('0x2c')]){delete _0x470bf2[_0xb8aa('0x2c')];}_0x1e051d[_0xb8aa('0x1b')](_0x492037)[_0xb8aa('0x2d')](_0x470bf2);};}exports[_0xb8aa('0x2e')]=function(_0x10908c,_0xa4e929){var _0x465f95={},_0x321d60={},_0x172447={'count':0x0,'rows':[]};var _0x8414e2=_[_0xb8aa('0x2f')](db[_0xb8aa('0x30')]['rawAttributes'],function(_0x4c0645){return{'name':_0x4c0645['fieldName'],'type':_0x4c0645[_0xb8aa('0x31')][_0xb8aa('0x32')]};});_0x321d60[_0xb8aa('0x33')]=_[_0xb8aa('0x2f')](_0x8414e2,'name');_0x321d60[_0xb8aa('0x34')]=_[_0xb8aa('0x35')](_0x10908c[_0xb8aa('0x34')]);_0x321d60[_0xb8aa('0x36')]=_['intersection'](_0x321d60['model'],_0x321d60['query']);_0x465f95[_0xb8aa('0x37')]=_[_0xb8aa('0x38')](_0x321d60[_0xb8aa('0x33')],qs[_0xb8aa('0x39')](_0x10908c[_0xb8aa('0x34')][_0xb8aa('0x39')]));_0x465f95[_0xb8aa('0x37')]=_0x465f95[_0xb8aa('0x37')][_0xb8aa('0x3a')]?_0x465f95[_0xb8aa('0x37')]:_0x321d60[_0xb8aa('0x33')];if(!_0x10908c[_0xb8aa('0x34')][_0xb8aa('0x3b')](_0xb8aa('0x3c'))){_0x465f95[_0xb8aa('0x1f')]=qs['limit'](_0x10908c[_0xb8aa('0x34')][_0xb8aa('0x1f')]);_0x465f95[_0xb8aa('0x21')]=qs['offset'](_0x10908c[_0xb8aa('0x34')][_0xb8aa('0x21')]);}_0x465f95[_0xb8aa('0x3d')]=qs['sort'](_0x10908c[_0xb8aa('0x34')][_0xb8aa('0x3e')]);_0x465f95[_0xb8aa('0x3f')]=qs['filters'](_[_0xb8aa('0x40')](_0x10908c[_0xb8aa('0x34')],_0x321d60['filters']),_0x8414e2);if(_0x10908c[_0xb8aa('0x34')]['filter']){_0x465f95[_0xb8aa('0x3f')]=_[_0xb8aa('0x41')](_0x465f95[_0xb8aa('0x3f')],{'$or':[{'key':{'$like':'%'+_0x10908c[_0xb8aa('0x34')]['filter']+'%'}},{'value':{'$like':'%'+_0x10908c[_0xb8aa('0x34')][_0xb8aa('0x42')]+'%'}}]});}_0x465f95=_[_0xb8aa('0x41')]({},_0x465f95,_0x10908c['options']);var _0x1545e5={'where':_0x465f95[_0xb8aa('0x3f')]};return db[_0xb8aa('0x30')][_0xb8aa('0x20')](_0x1545e5)['then'](function(_0x153620){_0x172447[_0xb8aa('0x20')]=_0x153620;if(_0x10908c[_0xb8aa('0x34')][_0xb8aa('0x43')]){_0x465f95['include']=[{'all':!![]}];}return db['CannedAnswer'][_0xb8aa('0x44')](_0x465f95);})[_0xb8aa('0x26')](function(_0x540e58){_0x172447[_0xb8aa('0x45')]=_0x540e58;return _0x172447;})[_0xb8aa('0x26')](respondWithFilteredResult(_0xa4e929,_0x465f95))['catch'](handleError(_0xa4e929,null));};exports[_0xb8aa('0x46')]=function(_0x18d24a,_0x1a7a0e){var _0x24bd88={'raw':!![],'where':{'id':_0x18d24a[_0xb8aa('0x47')]['id']}},_0x4b0562={};_0x4b0562[_0xb8aa('0x33')]=_[_0xb8aa('0x35')](db[_0xb8aa('0x30')]['rawAttributes']);_0x4b0562[_0xb8aa('0x34')]=_['keys'](_0x18d24a[_0xb8aa('0x34')]);_0x4b0562['filters']=_[_0xb8aa('0x38')](_0x4b0562[_0xb8aa('0x33')],_0x4b0562['query']);_0x24bd88[_0xb8aa('0x37')]=_[_0xb8aa('0x38')](_0x4b0562['model'],qs['fields'](_0x18d24a[_0xb8aa('0x34')][_0xb8aa('0x39')]));_0x24bd88['attributes']=_0x24bd88['attributes'][_0xb8aa('0x3a')]?_0x24bd88[_0xb8aa('0x37')]:_0x4b0562[_0xb8aa('0x33')];if(_0x18d24a[_0xb8aa('0x34')]['includeAll']){_0x24bd88[_0xb8aa('0x48')]=[{'all':!![]}];}_0x24bd88=_[_0xb8aa('0x41')]({},_0x24bd88,_0x18d24a[_0xb8aa('0x49')]);return db[_0xb8aa('0x30')][_0xb8aa('0x4a')](_0x24bd88)['then'](handleEntityNotFound(_0x1a7a0e,null))[_0xb8aa('0x26')](respondWithResult(_0x1a7a0e,null))['catch'](handleError(_0x1a7a0e,null));};exports[_0xb8aa('0x25')]=function(_0x31b25c,_0x35acbd){if(_0x31b25c[_0xb8aa('0x4b')]['id']){delete _0x31b25c[_0xb8aa('0x4b')]['id'];}return db[_0xb8aa('0x30')][_0xb8aa('0x4a')]({'where':{'id':_0x31b25c['params']['id']}})[_0xb8aa('0x26')](handleEntityNotFound(_0x35acbd,null))[_0xb8aa('0x26')](saveUpdates(_0x31b25c[_0xb8aa('0x4b')],null))[_0xb8aa('0x26')](respondWithResult(_0x35acbd,null))[_0xb8aa('0x4c')](handleError(_0x35acbd,null));};exports[_0xb8aa('0x27')]=function(_0x408054,_0x1fc912){return db[_0xb8aa('0x30')][_0xb8aa('0x4a')]({'where':{'id':_0x408054['params']['id']}})[_0xb8aa('0x26')](handleEntityNotFound(_0x1fc912,null))['then'](removeEntity(_0x1fc912,null))[_0xb8aa('0x4c')](handleError(_0x1fc912,null));};exports['create']=function(_0x26dffe,_0xc33a81){var _0x565bf6={'key':_0x26dffe[_0xb8aa('0x4b')][_0xb8aa('0x32')]};if(_0x26dffe['body'][_0xb8aa('0x4d')]){_0x565bf6[_0xb8aa('0x4d')]=_0x26dffe[_0xb8aa('0x4b')][_0xb8aa('0x4d')];}else if(_0x26dffe[_0xb8aa('0x4b')][_0xb8aa('0x4e')]){_0x565bf6[_0xb8aa('0x4e')]=_0x26dffe['body']['SmsAccountId'];}else if(_0x26dffe['body'][_0xb8aa('0x4f')]){_0x565bf6[_0xb8aa('0x4f')]=_0x26dffe[_0xb8aa('0x4b')][_0xb8aa('0x4f')];}else if(_0x26dffe['body'][_0xb8aa('0x50')]){_0x565bf6[_0xb8aa('0x50')]=_0x26dffe[_0xb8aa('0x4b')][_0xb8aa('0x50')];}return db['CannedAnswer'][_0xb8aa('0x4a')]({'where':_0x565bf6})[_0xb8aa('0x26')](function(_0x39a0f9){if(_0x39a0f9){throw new db[(_0xb8aa('0x51'))][(_0xb8aa('0x52'))](_0xb8aa('0x53'));}return db[_0xb8aa('0x30')][_0xb8aa('0x54')](_0x26dffe[_0xb8aa('0x4b')]);})[_0xb8aa('0x26')](function(_0x1e5263){var _0x1390ad=_0x26dffe[_0xb8aa('0x55')][_0xb8aa('0x28')]({'plain':!![]});if(!_0x1390ad)throw new Error(_0xb8aa('0x56'));if(_0x1390ad[_0xb8aa('0x57')]==='user'){var _0x1745cd=_0x1e5263['get']({'plain':!![]});return db[_0xb8aa('0x58')][_0xb8aa('0x4a')]({'where':{'name':_0xb8aa('0x29'),'userProfileId':_0x1390ad[_0xb8aa('0x59')]},'raw':!![]})[_0xb8aa('0x26')](function(_0x46a707){if(_0x46a707&&_0x46a707[_0xb8aa('0x5a')]===0x0){return db[_0xb8aa('0x2a')][_0xb8aa('0x54')]({'name':_0x1745cd[_0xb8aa('0x2c')],'resourceId':_0x1745cd['id'],'type':_0x46a707[_0xb8aa('0x2c')],'sectionId':_0x46a707['id']},{})[_0xb8aa('0x26')](function(){return _0x1e5263;});}else{return _0x1e5263;}})[_0xb8aa('0x4c')](function(_0x5a3ed4){logger['error'](_0xb8aa('0x5b'),_0x5a3ed4);throw _0x5a3ed4;});}return _0x1e5263;})[_0xb8aa('0x26')](respondWithResult(_0xc33a81,0xc9))[_0xb8aa('0x4c')](handleError(_0xc33a81,null));};