c831b785be8ec8548c69201c502a07c8ab56d38a
[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 _0x9119=['filter','merge','options','CannedAnswer','includeAll','findAll','catch','show','params','rawAttributes','include','find','update','body','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','role','user','get','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','request-promise','moment','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','limit','count','set','Content-Range','apply','reject','save','then','destroy','CannedAnswers','UserProfileResource','end','error','name','send','index','fieldName','type','key','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick'];(function(_0x221648,_0x2d46a5){var _0x3afc1f=function(_0x50ee4e){while(--_0x50ee4e){_0x221648['push'](_0x221648['shift']());}};_0x3afc1f(++_0x2d46a5);}(_0x9119,0x185));var _0x9911=function(_0x177b4b,_0x33f146){_0x177b4b=_0x177b4b-0x0;var _0x8ad94d=_0x9119[_0x177b4b];return _0x8ad94d;};'use strict';var emlformat=require(_0x9911('0x0'));var rimraf=require(_0x9911('0x1'));var zipdir=require(_0x9911('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9911('0x3'));var moment=require(_0x9911('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x9911('0x5'));var util=require('util');var path=require(_0x9911('0x6'));var sox=require(_0x9911('0x7'));var csv=require(_0x9911('0x8'));var ejs=require(_0x9911('0x9'));var fs=require('fs');var fs_extra=require(_0x9911('0xa'));var _=require(_0x9911('0xb'));var squel=require(_0x9911('0xc'));var crypto=require(_0x9911('0xd'));var jsforce=require(_0x9911('0xe'));var deskjs=require(_0x9911('0xf'));var toCsv=require(_0x9911('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x9911('0x10'));var authService=require(_0x9911('0x11'));var qs=require(_0x9911('0x12'));var as=require(_0x9911('0x13'));var hardwareService=require(_0x9911('0x14'));var logger=require(_0x9911('0x15'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x9911('0x16'));var db=require(_0x9911('0x17'))['db'];function respondWithStatusCode(_0x2aaab2,_0x4ac66c){_0x4ac66c=_0x4ac66c||0xcc;return function(_0x419dac){if(_0x419dac){return _0x2aaab2[_0x9911('0x18')](_0x4ac66c);}return _0x2aaab2[_0x9911('0x19')](_0x4ac66c)['end']();};}function respondWithResult(_0x110ec6,_0xc28913){_0xc28913=_0xc28913||0xc8;return function(_0x38ebad){if(_0x38ebad){return _0x110ec6[_0x9911('0x19')](_0xc28913)[_0x9911('0x1a')](_0x38ebad);}};}function respondWithFilteredResult(_0x5dd660,_0x4c2a8d){return function(_0x56129e){if(_0x56129e){var _0x3f3ea5=typeof _0x4c2a8d[_0x9911('0x1b')]==='undefined'&&typeof _0x4c2a8d[_0x9911('0x1c')]==='undefined';var _0x293b66=_0x56129e[_0x9911('0x1d')];var _0x32af7c=_0x3f3ea5?0x0:_0x4c2a8d['offset'];var _0x16b395=_0x3f3ea5?_0x56129e[_0x9911('0x1d')]:_0x4c2a8d[_0x9911('0x1b')]+_0x4c2a8d['limit'];var _0x38a370;if(_0x16b395>=_0x293b66){_0x16b395=_0x293b66;_0x38a370=0xc8;}else{_0x38a370=0xce;}_0x5dd660[_0x9911('0x19')](_0x38a370);return _0x5dd660[_0x9911('0x1e')](_0x9911('0x1f'),_0x32af7c+'-'+_0x16b395+'/'+_0x293b66)[_0x9911('0x1a')](_0x56129e);}return null;};}function patchUpdates(_0x1d4dab){return function(_0x55a505){try{jsonpatch[_0x9911('0x20')](_0x55a505,_0x1d4dab,!![]);}catch(_0x26b38e){return BPromise[_0x9911('0x21')](_0x26b38e);}return _0x55a505[_0x9911('0x22')]();};}function saveUpdates(_0x4cff7c,_0x2221bc){return function(_0x31fe3c){if(_0x31fe3c){return _0x31fe3c['update'](_0x4cff7c)[_0x9911('0x23')](function(_0x333eb1){return _0x333eb1;});}return null;};}function removeEntity(_0x4a7888,_0x190b94){return function(_0x40117d){if(_0x40117d){return _0x40117d[_0x9911('0x24')]()['then'](function(){var _0x4915ef=_0x40117d['get']({'plain':!![]});var _0x5b8657=_0x9911('0x25');return db[_0x9911('0x26')]['destroy']({'where':{'type':_0x5b8657,'resourceId':_0x4915ef['id']}})[_0x9911('0x23')](function(){return _0x40117d;});})[_0x9911('0x23')](function(){_0x4a7888['status'](0xcc)[_0x9911('0x27')]();});}};}function handleEntityNotFound(_0xc8a03e,_0x1adcc0){return function(_0x5ec66c){if(!_0x5ec66c){_0xc8a03e[_0x9911('0x18')](0x194);}return _0x5ec66c;};}function handleError(_0x4a8bfc,_0x32bb80){_0x32bb80=_0x32bb80||0x1f4;return function(_0x4489f1){logger[_0x9911('0x28')](_0x4489f1['stack']);if(_0x4489f1[_0x9911('0x29')]){delete _0x4489f1[_0x9911('0x29')];}_0x4a8bfc[_0x9911('0x19')](_0x32bb80)[_0x9911('0x2a')](_0x4489f1);};}exports[_0x9911('0x2b')]=function(_0x37104f,_0x437567){var _0x4bc5da={},_0x412f09={},_0x24eeba={'count':0x0,'rows':[]};var _0x4eddbb=_['map'](db['CannedAnswer']['rawAttributes'],function(_0x771f62){return{'name':_0x771f62[_0x9911('0x2c')],'type':_0x771f62[_0x9911('0x2d')][_0x9911('0x2e')]};});_0x412f09['model']=_['map'](_0x4eddbb,_0x9911('0x29'));_0x412f09[_0x9911('0x2f')]=_[_0x9911('0x30')](_0x37104f['query']);_0x412f09[_0x9911('0x31')]=_[_0x9911('0x32')](_0x412f09[_0x9911('0x33')],_0x412f09[_0x9911('0x2f')]);_0x4bc5da['attributes']=_[_0x9911('0x32')](_0x412f09[_0x9911('0x33')],qs[_0x9911('0x34')](_0x37104f[_0x9911('0x2f')][_0x9911('0x34')]));_0x4bc5da['attributes']=_0x4bc5da[_0x9911('0x35')][_0x9911('0x36')]?_0x4bc5da[_0x9911('0x35')]:_0x412f09[_0x9911('0x33')];if(!_0x37104f[_0x9911('0x2f')][_0x9911('0x37')](_0x9911('0x38'))){_0x4bc5da['limit']=qs[_0x9911('0x1c')](_0x37104f[_0x9911('0x2f')][_0x9911('0x1c')]);_0x4bc5da['offset']=qs[_0x9911('0x1b')](_0x37104f[_0x9911('0x2f')][_0x9911('0x1b')]);}_0x4bc5da[_0x9911('0x39')]=qs['sort'](_0x37104f[_0x9911('0x2f')][_0x9911('0x3a')]);_0x4bc5da[_0x9911('0x3b')]=qs[_0x9911('0x31')](_[_0x9911('0x3c')](_0x37104f[_0x9911('0x2f')],_0x412f09[_0x9911('0x31')]),_0x4eddbb);if(_0x37104f[_0x9911('0x2f')][_0x9911('0x3d')]){_0x4bc5da[_0x9911('0x3b')]=_[_0x9911('0x3e')](_0x4bc5da[_0x9911('0x3b')],{'$or':[{'key':{'$like':'%'+_0x37104f[_0x9911('0x2f')]['filter']+'%'}},{'value':{'$like':'%'+_0x37104f['query'][_0x9911('0x3d')]+'%'}}]});}_0x4bc5da=_[_0x9911('0x3e')]({},_0x4bc5da,_0x37104f[_0x9911('0x3f')]);var _0x8d75f8={'where':_0x4bc5da[_0x9911('0x3b')]};return db[_0x9911('0x40')]['count'](_0x8d75f8)['then'](function(_0x367e02){_0x24eeba[_0x9911('0x1d')]=_0x367e02;if(_0x37104f[_0x9911('0x2f')][_0x9911('0x41')]){_0x4bc5da['include']=[{'all':!![]}];}return db['CannedAnswer'][_0x9911('0x42')](_0x4bc5da);})[_0x9911('0x23')](function(_0x7521e8){_0x24eeba['rows']=_0x7521e8;return _0x24eeba;})['then'](respondWithFilteredResult(_0x437567,_0x4bc5da))[_0x9911('0x43')](handleError(_0x437567,null));};exports[_0x9911('0x44')]=function(_0xc6694e,_0x852582){var _0x212df1={'raw':!![],'where':{'id':_0xc6694e[_0x9911('0x45')]['id']}},_0x52ea2c={};_0x52ea2c[_0x9911('0x33')]=_[_0x9911('0x30')](db['CannedAnswer'][_0x9911('0x46')]);_0x52ea2c[_0x9911('0x2f')]=_[_0x9911('0x30')](_0xc6694e[_0x9911('0x2f')]);_0x52ea2c[_0x9911('0x31')]=_[_0x9911('0x32')](_0x52ea2c['model'],_0x52ea2c[_0x9911('0x2f')]);_0x212df1[_0x9911('0x35')]=_[_0x9911('0x32')](_0x52ea2c[_0x9911('0x33')],qs[_0x9911('0x34')](_0xc6694e[_0x9911('0x2f')][_0x9911('0x34')]));_0x212df1[_0x9911('0x35')]=_0x212df1[_0x9911('0x35')][_0x9911('0x36')]?_0x212df1[_0x9911('0x35')]:_0x52ea2c[_0x9911('0x33')];if(_0xc6694e[_0x9911('0x2f')][_0x9911('0x41')]){_0x212df1[_0x9911('0x47')]=[{'all':!![]}];}_0x212df1=_['merge']({},_0x212df1,_0xc6694e[_0x9911('0x3f')]);return db[_0x9911('0x40')][_0x9911('0x48')](_0x212df1)[_0x9911('0x23')](handleEntityNotFound(_0x852582,null))['then'](respondWithResult(_0x852582,null))['catch'](handleError(_0x852582,null));};exports[_0x9911('0x49')]=function(_0x2a00c5,_0x3db21d){if(_0x2a00c5[_0x9911('0x4a')]['id']){delete _0x2a00c5[_0x9911('0x4a')]['id'];}return db[_0x9911('0x40')][_0x9911('0x48')]({'where':{'id':_0x2a00c5[_0x9911('0x45')]['id']}})[_0x9911('0x23')](handleEntityNotFound(_0x3db21d,null))[_0x9911('0x23')](saveUpdates(_0x2a00c5[_0x9911('0x4a')],null))[_0x9911('0x23')](respondWithResult(_0x3db21d,null))[_0x9911('0x43')](handleError(_0x3db21d,null));};exports[_0x9911('0x24')]=function(_0x23b60e,_0x2eb18a){return db['CannedAnswer'][_0x9911('0x48')]({'where':{'id':_0x23b60e[_0x9911('0x45')]['id']}})[_0x9911('0x23')](handleEntityNotFound(_0x2eb18a,null))[_0x9911('0x23')](removeEntity(_0x2eb18a,null))[_0x9911('0x43')](handleError(_0x2eb18a,null));};exports[_0x9911('0x4b')]=function(_0x579cba,_0x552fd4){var _0x5cae87={'key':_0x579cba[_0x9911('0x4a')][_0x9911('0x2e')]};if(_0x579cba[_0x9911('0x4a')]['MailAccountId']){_0x5cae87[_0x9911('0x4c')]=_0x579cba[_0x9911('0x4a')][_0x9911('0x4c')];}else if(_0x579cba[_0x9911('0x4a')][_0x9911('0x4d')]){_0x5cae87['SmsAccountId']=_0x579cba[_0x9911('0x4a')][_0x9911('0x4d')];}else if(_0x579cba[_0x9911('0x4a')][_0x9911('0x4e')]){_0x5cae87[_0x9911('0x4e')]=_0x579cba['body'][_0x9911('0x4e')];}else if(_0x579cba[_0x9911('0x4a')]['ChatWebsiteId']){_0x5cae87[_0x9911('0x4f')]=_0x579cba[_0x9911('0x4a')][_0x9911('0x4f')];}return db[_0x9911('0x40')][_0x9911('0x48')]({'where':_0x5cae87})[_0x9911('0x23')](function(_0x418326){if(_0x418326){throw new db[(_0x9911('0x50'))][(_0x9911('0x51'))](_0x9911('0x52'));}return db[_0x9911('0x40')][_0x9911('0x4b')](_0x579cba['body']);})['then'](function(_0x4ef15f){var _0x10dbf6=_0x579cba['user']['get']({'plain':!![]});if(!_0x10dbf6)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x10dbf6[_0x9911('0x53')]===_0x9911('0x54')){var _0x4d2fa0=_0x4ef15f[_0x9911('0x55')]({'plain':!![]});return db[_0x9911('0x56')]['find']({'where':{'name':_0x9911('0x25'),'userProfileId':_0x10dbf6[_0x9911('0x57')]},'raw':!![]})[_0x9911('0x23')](function(_0x54f545){if(_0x54f545&&_0x54f545[_0x9911('0x58')]===0x0){return db[_0x9911('0x26')][_0x9911('0x4b')]({'name':_0x4d2fa0['name'],'resourceId':_0x4d2fa0['id'],'type':_0x54f545[_0x9911('0x29')],'sectionId':_0x54f545['id']},{})[_0x9911('0x23')](function(){return _0x4ef15f;});}else{return _0x4ef15f;}})[_0x9911('0x43')](function(_0x5e3ba2){logger[_0x9911('0x28')](_0x9911('0x59'),_0x5e3ba2);throw _0x5e3ba2;});}return _0x4ef15f;})[_0x9911('0x23')](respondWithResult(_0x552fd4,0xc9))[_0x9911('0x43')](handleError(_0x552fd4,null));};