Built motion from commit 14588770.|2.5.38
[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 _0xe736=['ChatWebsiteId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','reject','save','update','then','get','CannedAnswers','UserProfileResource','destroy','end','error','stack','name','send','index','CannedAnswer','fieldName','key','model','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','filter','includeAll','include','findAll','rows','catch','keys','rawAttributes','options','find','body','params','create','MailAccountId','SmsAccountId','OpenchannelAccountId'];(function(_0x505e18,_0x271068){var _0x5052e5=function(_0x32cb54){while(--_0x32cb54){_0x505e18['push'](_0x505e18['shift']());}};_0x5052e5(++_0x271068);}(_0xe736,0x10b));var _0x6e73=function(_0x1ddeef,_0x571b46){_0x1ddeef=_0x1ddeef-0x0;var _0x28d9ae=_0xe736[_0x1ddeef];return _0x28d9ae;};'use strict';var emlformat=require(_0x6e73('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x6e73('0x1'));var jsonpatch=require(_0x6e73('0x2'));var rp=require(_0x6e73('0x3'));var moment=require(_0x6e73('0x4'));var BPromise=require(_0x6e73('0x5'));var Mustache=require(_0x6e73('0x6'));var util=require(_0x6e73('0x7'));var path=require(_0x6e73('0x8'));var sox=require('sox');var csv=require(_0x6e73('0x9'));var ejs=require(_0x6e73('0xa'));var fs=require('fs');var fs_extra=require(_0x6e73('0xb'));var _=require(_0x6e73('0xc'));var squel=require(_0x6e73('0xd'));var crypto=require('crypto');var jsforce=require(_0x6e73('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x6e73('0xf'));var Papa=require(_0x6e73('0x10'));var Redis=require(_0x6e73('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x6e73('0x12'));var hardwareService=require(_0x6e73('0x13'));var logger=require(_0x6e73('0x14'))(_0x6e73('0x15'));var utils=require('../../config/utils');var config=require(_0x6e73('0x16'));var licenseUtil=require(_0x6e73('0x17'));var db=require(_0x6e73('0x18'))['db'];function respondWithStatusCode(_0x52e07f,_0x3d74f8){_0x3d74f8=_0x3d74f8||0xcc;return function(_0x22cae4){if(_0x22cae4){return _0x52e07f[_0x6e73('0x19')](_0x3d74f8);}return _0x52e07f[_0x6e73('0x1a')](_0x3d74f8)['end']();};}function respondWithResult(_0x34474b,_0x5519d6){_0x5519d6=_0x5519d6||0xc8;return function(_0x4ef679){if(_0x4ef679){return _0x34474b['status'](_0x5519d6)[_0x6e73('0x1b')](_0x4ef679);}};}function respondWithFilteredResult(_0xd39ba4,_0x16bfc6){return function(_0x4277bc){if(_0x4277bc){var _0x50b762=typeof _0x16bfc6['offset']===_0x6e73('0x1c')&&typeof _0x16bfc6[_0x6e73('0x1d')]==='undefined';var _0x383578=_0x4277bc[_0x6e73('0x1e')];var _0x453b2c=_0x50b762?0x0:_0x16bfc6[_0x6e73('0x1f')];var _0x3c345a=_0x50b762?_0x4277bc[_0x6e73('0x1e')]:_0x16bfc6[_0x6e73('0x1f')]+_0x16bfc6[_0x6e73('0x1d')];var _0x4d2574;if(_0x3c345a>=_0x383578){_0x3c345a=_0x383578;_0x4d2574=0xc8;}else{_0x4d2574=0xce;}_0xd39ba4[_0x6e73('0x1a')](_0x4d2574);return _0xd39ba4[_0x6e73('0x20')](_0x6e73('0x21'),_0x453b2c+'-'+_0x3c345a+'/'+_0x383578)[_0x6e73('0x1b')](_0x4277bc);}return null;};}function patchUpdates(_0x37cba9){return function(_0x594e38){try{jsonpatch['apply'](_0x594e38,_0x37cba9,!![]);}catch(_0x493ae1){return BPromise[_0x6e73('0x22')](_0x493ae1);}return _0x594e38[_0x6e73('0x23')]();};}function saveUpdates(_0x101333,_0x42c54d){return function(_0x3cee59){if(_0x3cee59){return _0x3cee59[_0x6e73('0x24')](_0x101333)[_0x6e73('0x25')](function(_0x2990d2){return _0x2990d2;});}return null;};}function removeEntity(_0x3bca9c,_0x4d48b7){return function(_0x18e146){if(_0x18e146){return _0x18e146['destroy']()[_0x6e73('0x25')](function(){var _0x1aecc5=_0x18e146[_0x6e73('0x26')]({'plain':!![]});var _0x27fdbc=_0x6e73('0x27');return db[_0x6e73('0x28')][_0x6e73('0x29')]({'where':{'type':_0x27fdbc,'resourceId':_0x1aecc5['id']}})[_0x6e73('0x25')](function(){return _0x18e146;});})[_0x6e73('0x25')](function(){_0x3bca9c[_0x6e73('0x1a')](0xcc)[_0x6e73('0x2a')]();});}};}function handleEntityNotFound(_0x3c8d3c,_0x3684b3){return function(_0x5e50e3){if(!_0x5e50e3){_0x3c8d3c[_0x6e73('0x19')](0x194);}return _0x5e50e3;};}function handleError(_0x4a05a1,_0x138646){_0x138646=_0x138646||0x1f4;return function(_0x578a0f){logger[_0x6e73('0x2b')](_0x578a0f[_0x6e73('0x2c')]);if(_0x578a0f[_0x6e73('0x2d')]){delete _0x578a0f[_0x6e73('0x2d')];}_0x4a05a1[_0x6e73('0x1a')](_0x138646)[_0x6e73('0x2e')](_0x578a0f);};}exports[_0x6e73('0x2f')]=function(_0x1d7c96,_0x21799a){var _0x2ef0ed={},_0x2642ce={},_0x449d50={'count':0x0,'rows':[]};var _0x360ccc=_['map'](db[_0x6e73('0x30')]['rawAttributes'],function(_0x144378){return{'name':_0x144378[_0x6e73('0x31')],'type':_0x144378['type'][_0x6e73('0x32')]};});_0x2642ce[_0x6e73('0x33')]=_['map'](_0x360ccc,_0x6e73('0x2d'));_0x2642ce[_0x6e73('0x34')]=_['keys'](_0x1d7c96[_0x6e73('0x34')]);_0x2642ce['filters']=_[_0x6e73('0x35')](_0x2642ce['model'],_0x2642ce[_0x6e73('0x34')]);_0x2ef0ed['attributes']=_['intersection'](_0x2642ce[_0x6e73('0x33')],qs[_0x6e73('0x36')](_0x1d7c96[_0x6e73('0x34')][_0x6e73('0x36')]));_0x2ef0ed[_0x6e73('0x37')]=_0x2ef0ed[_0x6e73('0x37')][_0x6e73('0x38')]?_0x2ef0ed['attributes']:_0x2642ce[_0x6e73('0x33')];if(!_0x1d7c96[_0x6e73('0x34')][_0x6e73('0x39')](_0x6e73('0x3a'))){_0x2ef0ed['limit']=qs[_0x6e73('0x1d')](_0x1d7c96[_0x6e73('0x34')][_0x6e73('0x1d')]);_0x2ef0ed['offset']=qs['offset'](_0x1d7c96['query']['offset']);}_0x2ef0ed[_0x6e73('0x3b')]=qs[_0x6e73('0x3c')](_0x1d7c96['query'][_0x6e73('0x3c')]);_0x2ef0ed[_0x6e73('0x3d')]=qs[_0x6e73('0x3e')](_[_0x6e73('0x3f')](_0x1d7c96[_0x6e73('0x34')],_0x2642ce[_0x6e73('0x3e')]),_0x360ccc);if(_0x1d7c96[_0x6e73('0x34')]['filter']){_0x2ef0ed[_0x6e73('0x3d')]=_[_0x6e73('0x40')](_0x2ef0ed[_0x6e73('0x3d')],{'$or':[{'key':{'$like':'%'+_0x1d7c96[_0x6e73('0x34')][_0x6e73('0x41')]+'%'}},{'value':{'$like':'%'+_0x1d7c96[_0x6e73('0x34')][_0x6e73('0x41')]+'%'}}]});}_0x2ef0ed=_[_0x6e73('0x40')]({},_0x2ef0ed,_0x1d7c96['options']);var _0x1723c4={'where':_0x2ef0ed['where']};return db[_0x6e73('0x30')]['count'](_0x1723c4)[_0x6e73('0x25')](function(_0x554f4f){_0x449d50[_0x6e73('0x1e')]=_0x554f4f;if(_0x1d7c96[_0x6e73('0x34')][_0x6e73('0x42')]){_0x2ef0ed[_0x6e73('0x43')]=[{'all':!![]}];}return db['CannedAnswer'][_0x6e73('0x44')](_0x2ef0ed);})[_0x6e73('0x25')](function(_0x40e1c4){_0x449d50[_0x6e73('0x45')]=_0x40e1c4;return _0x449d50;})[_0x6e73('0x25')](respondWithFilteredResult(_0x21799a,_0x2ef0ed))[_0x6e73('0x46')](handleError(_0x21799a,null));};exports['show']=function(_0x463aa3,_0x48b886){var _0x357693={'raw':!![],'where':{'id':_0x463aa3['params']['id']}},_0x56b0ff={};_0x56b0ff['model']=_[_0x6e73('0x47')](db[_0x6e73('0x30')][_0x6e73('0x48')]);_0x56b0ff[_0x6e73('0x34')]=_['keys'](_0x463aa3['query']);_0x56b0ff[_0x6e73('0x3e')]=_[_0x6e73('0x35')](_0x56b0ff[_0x6e73('0x33')],_0x56b0ff[_0x6e73('0x34')]);_0x357693[_0x6e73('0x37')]=_['intersection'](_0x56b0ff[_0x6e73('0x33')],qs[_0x6e73('0x36')](_0x463aa3[_0x6e73('0x34')][_0x6e73('0x36')]));_0x357693['attributes']=_0x357693[_0x6e73('0x37')][_0x6e73('0x38')]?_0x357693[_0x6e73('0x37')]:_0x56b0ff[_0x6e73('0x33')];if(_0x463aa3['query'][_0x6e73('0x42')]){_0x357693[_0x6e73('0x43')]=[{'all':!![]}];}_0x357693=_['merge']({},_0x357693,_0x463aa3[_0x6e73('0x49')]);return db[_0x6e73('0x30')][_0x6e73('0x4a')](_0x357693)[_0x6e73('0x25')](handleEntityNotFound(_0x48b886,null))[_0x6e73('0x25')](respondWithResult(_0x48b886,null))[_0x6e73('0x46')](handleError(_0x48b886,null));};exports['update']=function(_0x450a74,_0x5d1202){if(_0x450a74[_0x6e73('0x4b')]['id']){delete _0x450a74[_0x6e73('0x4b')]['id'];}return db['CannedAnswer'][_0x6e73('0x4a')]({'where':{'id':_0x450a74[_0x6e73('0x4c')]['id']}})['then'](handleEntityNotFound(_0x5d1202,null))[_0x6e73('0x25')](saveUpdates(_0x450a74[_0x6e73('0x4b')],null))[_0x6e73('0x25')](respondWithResult(_0x5d1202,null))[_0x6e73('0x46')](handleError(_0x5d1202,null));};exports[_0x6e73('0x29')]=function(_0x43c93a,_0x11170c){return db[_0x6e73('0x30')][_0x6e73('0x4a')]({'where':{'id':_0x43c93a[_0x6e73('0x4c')]['id']}})[_0x6e73('0x25')](handleEntityNotFound(_0x11170c,null))[_0x6e73('0x25')](removeEntity(_0x11170c,null))[_0x6e73('0x46')](handleError(_0x11170c,null));};exports[_0x6e73('0x4d')]=function(_0x292551,_0x2df1d2){var _0x5a4b16={'key':_0x292551[_0x6e73('0x4b')][_0x6e73('0x32')]};if(_0x292551['body'][_0x6e73('0x4e')]){_0x5a4b16[_0x6e73('0x4e')]=_0x292551[_0x6e73('0x4b')][_0x6e73('0x4e')];}else if(_0x292551['body'][_0x6e73('0x4f')]){_0x5a4b16[_0x6e73('0x4f')]=_0x292551[_0x6e73('0x4b')]['SmsAccountId'];}else if(_0x292551['body'][_0x6e73('0x50')]){_0x5a4b16[_0x6e73('0x50')]=_0x292551[_0x6e73('0x4b')]['OpenchannelAccountId'];}else if(_0x292551[_0x6e73('0x4b')][_0x6e73('0x51')]){_0x5a4b16[_0x6e73('0x51')]=_0x292551[_0x6e73('0x4b')]['ChatWebsiteId'];}return db[_0x6e73('0x30')][_0x6e73('0x4a')]({'where':_0x5a4b16})['then'](function(_0x3dc4ba){if(_0x3dc4ba){throw new db['Sequelize']['ValidationError']('The\x20inserted\x20key\x20already\x20exists.');}return db[_0x6e73('0x30')][_0x6e73('0x4d')](_0x292551[_0x6e73('0x4b')]);})[_0x6e73('0x25')](function(_0x524286){var _0x11038a=_0x292551['user'][_0x6e73('0x26')]({'plain':!![]});if(!_0x11038a)throw new Error(_0x6e73('0x52'));if(_0x11038a['role']===_0x6e73('0x53')){var _0x5686d3=_0x524286[_0x6e73('0x26')]({'plain':!![]});return db[_0x6e73('0x54')][_0x6e73('0x4a')]({'where':{'name':_0x6e73('0x27'),'userProfileId':_0x11038a[_0x6e73('0x55')]},'raw':!![]})['then'](function(_0x4c31fa){if(_0x4c31fa&&_0x4c31fa['autoAssociation']===0x0){return db[_0x6e73('0x28')][_0x6e73('0x4d')]({'name':_0x5686d3[_0x6e73('0x2d')],'resourceId':_0x5686d3['id'],'type':_0x4c31fa[_0x6e73('0x2d')],'sectionId':_0x4c31fa['id']},{})[_0x6e73('0x25')](function(){return _0x524286;});}else{return _0x524286;}})[_0x6e73('0x46')](function(_0xa77704){logger[_0x6e73('0x2b')](_0x6e73('0x56'),_0xa77704);throw _0xa77704;});}return _0x524286;})[_0x6e73('0x25')](respondWithResult(_0x2df1d2,0xc9))[_0x6e73('0x46')](handleError(_0x2df1d2,null));};