Built motion from commit e02f907f.|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 _0x97d8=['ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','undefined','limit','offset','count','set','json','reject','update','then','destroy','get','CannedAnswers','UserProfileResource','stack','name','send','index','map','CannedAnswer','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','where','merge','filter','includeAll','include','rows','catch','show','params','find','body','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','to-csv','querystring'];(function(_0xbbcb36,_0x586383){var _0x4278ff=function(_0x35c9da){while(--_0x35c9da){_0xbbcb36['push'](_0xbbcb36['shift']());}};_0x4278ff(++_0x586383);}(_0x97d8,0xf5));var _0x897d=function(_0x53076d,_0x3170a4){_0x53076d=_0x53076d-0x0;var _0xabdd81=_0x97d8[_0x53076d];return _0xabdd81;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x897d('0x0'));var zipdir=require(_0x897d('0x1'));var jsonpatch=require(_0x897d('0x2'));var rp=require('request-promise');var moment=require(_0x897d('0x3'));var BPromise=require(_0x897d('0x4'));var Mustache=require(_0x897d('0x5'));var util=require(_0x897d('0x6'));var path=require(_0x897d('0x7'));var sox=require(_0x897d('0x8'));var csv=require('to-csv');var ejs=require(_0x897d('0x9'));var fs=require('fs');var fs_extra=require(_0x897d('0xa'));var _=require(_0x897d('0xb'));var squel=require(_0x897d('0xc'));var crypto=require('crypto');var jsforce=require(_0x897d('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x897d('0xe'));var querystring=require(_0x897d('0xf'));var Papa=require('papaparse');var Redis=require(_0x897d('0x10'));var authService=require(_0x897d('0x11'));var qs=require(_0x897d('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x897d('0x13'));var logger=require(_0x897d('0x14'))(_0x897d('0x15'));var utils=require(_0x897d('0x16'));var config=require(_0x897d('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x897d('0x18'))['db'];function respondWithStatusCode(_0x5e9646,_0x7618cf){_0x7618cf=_0x7618cf||0xcc;return function(_0x3d278b){if(_0x3d278b){return _0x5e9646[_0x897d('0x19')](_0x7618cf);}return _0x5e9646[_0x897d('0x1a')](_0x7618cf)[_0x897d('0x1b')]();};}function respondWithResult(_0x3484b8,_0x3f6bf5){_0x3f6bf5=_0x3f6bf5||0xc8;return function(_0x4c0777){if(_0x4c0777){return _0x3484b8[_0x897d('0x1a')](_0x3f6bf5)['json'](_0x4c0777);}};}function respondWithFilteredResult(_0x19e827,_0x5ee4e9){return function(_0x33ab6f){if(_0x33ab6f){var _0x2b3f18=typeof _0x5ee4e9['offset']===_0x897d('0x1c')&&typeof _0x5ee4e9[_0x897d('0x1d')]===_0x897d('0x1c');var _0x2c1a1b=_0x33ab6f['count'];var _0x4288ac=_0x2b3f18?0x0:_0x5ee4e9[_0x897d('0x1e')];var _0x2eb5e1=_0x2b3f18?_0x33ab6f[_0x897d('0x1f')]:_0x5ee4e9[_0x897d('0x1e')]+_0x5ee4e9[_0x897d('0x1d')];var _0x42d230;if(_0x2eb5e1>=_0x2c1a1b){_0x2eb5e1=_0x2c1a1b;_0x42d230=0xc8;}else{_0x42d230=0xce;}_0x19e827[_0x897d('0x1a')](_0x42d230);return _0x19e827[_0x897d('0x20')]('Content-Range',_0x4288ac+'-'+_0x2eb5e1+'/'+_0x2c1a1b)[_0x897d('0x21')](_0x33ab6f);}return null;};}function patchUpdates(_0x4bb535){return function(_0x158fd0){try{jsonpatch['apply'](_0x158fd0,_0x4bb535,!![]);}catch(_0x4de8c5){return BPromise[_0x897d('0x22')](_0x4de8c5);}return _0x158fd0['save']();};}function saveUpdates(_0x4d5d99,_0x43f4fb){return function(_0x20c10a){if(_0x20c10a){return _0x20c10a[_0x897d('0x23')](_0x4d5d99)[_0x897d('0x24')](function(_0x42922f){return _0x42922f;});}return null;};}function removeEntity(_0x27dd6d,_0x36104a){return function(_0x5e214c){if(_0x5e214c){return _0x5e214c[_0x897d('0x25')]()[_0x897d('0x24')](function(){var _0x3b8e5f=_0x5e214c[_0x897d('0x26')]({'plain':!![]});var _0x234169=_0x897d('0x27');return db[_0x897d('0x28')]['destroy']({'where':{'type':_0x234169,'resourceId':_0x3b8e5f['id']}})[_0x897d('0x24')](function(){return _0x5e214c;});})[_0x897d('0x24')](function(){_0x27dd6d[_0x897d('0x1a')](0xcc)[_0x897d('0x1b')]();});}};}function handleEntityNotFound(_0x245eff,_0x4dc606){return function(_0x5043bf){if(!_0x5043bf){_0x245eff[_0x897d('0x19')](0x194);}return _0x5043bf;};}function handleError(_0x1a7840,_0x5aaac6){_0x5aaac6=_0x5aaac6||0x1f4;return function(_0x59d7f6){logger['error'](_0x59d7f6[_0x897d('0x29')]);if(_0x59d7f6['name']){delete _0x59d7f6[_0x897d('0x2a')];}_0x1a7840[_0x897d('0x1a')](_0x5aaac6)[_0x897d('0x2b')](_0x59d7f6);};}exports[_0x897d('0x2c')]=function(_0x5a8fec,_0x4d244e){var _0xdf15d6={},_0x1c5dd0={},_0x2114ff={'count':0x0,'rows':[]};var _0x3630b6=_[_0x897d('0x2d')](db[_0x897d('0x2e')][_0x897d('0x2f')],function(_0x313782){return{'name':_0x313782[_0x897d('0x30')],'type':_0x313782['type'][_0x897d('0x31')]};});_0x1c5dd0[_0x897d('0x32')]=_[_0x897d('0x2d')](_0x3630b6,_0x897d('0x2a'));_0x1c5dd0[_0x897d('0x33')]=_[_0x897d('0x34')](_0x5a8fec[_0x897d('0x33')]);_0x1c5dd0['filters']=_[_0x897d('0x35')](_0x1c5dd0[_0x897d('0x32')],_0x1c5dd0[_0x897d('0x33')]);_0xdf15d6[_0x897d('0x36')]=_[_0x897d('0x35')](_0x1c5dd0[_0x897d('0x32')],qs[_0x897d('0x37')](_0x5a8fec[_0x897d('0x33')][_0x897d('0x37')]));_0xdf15d6[_0x897d('0x36')]=_0xdf15d6[_0x897d('0x36')][_0x897d('0x38')]?_0xdf15d6[_0x897d('0x36')]:_0x1c5dd0[_0x897d('0x32')];if(!_0x5a8fec['query'][_0x897d('0x39')](_0x897d('0x3a'))){_0xdf15d6[_0x897d('0x1d')]=qs['limit'](_0x5a8fec[_0x897d('0x33')][_0x897d('0x1d')]);_0xdf15d6[_0x897d('0x1e')]=qs[_0x897d('0x1e')](_0x5a8fec[_0x897d('0x33')][_0x897d('0x1e')]);}_0xdf15d6[_0x897d('0x3b')]=qs[_0x897d('0x3c')](_0x5a8fec[_0x897d('0x33')][_0x897d('0x3c')]);_0xdf15d6['where']=qs[_0x897d('0x3d')](_[_0x897d('0x3e')](_0x5a8fec[_0x897d('0x33')],_0x1c5dd0[_0x897d('0x3d')]),_0x3630b6);if(_0x5a8fec[_0x897d('0x33')]['filter']){_0xdf15d6[_0x897d('0x3f')]=_[_0x897d('0x40')](_0xdf15d6['where'],{'$or':[{'key':{'$like':'%'+_0x5a8fec[_0x897d('0x33')][_0x897d('0x41')]+'%'}},{'value':{'$like':'%'+_0x5a8fec[_0x897d('0x33')][_0x897d('0x41')]+'%'}}]});}_0xdf15d6=_[_0x897d('0x40')]({},_0xdf15d6,_0x5a8fec['options']);var _0x22002b={'where':_0xdf15d6['where']};return db[_0x897d('0x2e')]['count'](_0x22002b)[_0x897d('0x24')](function(_0x406187){_0x2114ff['count']=_0x406187;if(_0x5a8fec[_0x897d('0x33')][_0x897d('0x42')]){_0xdf15d6[_0x897d('0x43')]=[{'all':!![]}];}return db['CannedAnswer']['findAll'](_0xdf15d6);})[_0x897d('0x24')](function(_0x2dd80a){_0x2114ff[_0x897d('0x44')]=_0x2dd80a;return _0x2114ff;})['then'](respondWithFilteredResult(_0x4d244e,_0xdf15d6))[_0x897d('0x45')](handleError(_0x4d244e,null));};exports[_0x897d('0x46')]=function(_0x576104,_0x40d501){var _0x5781b2={'raw':!![],'where':{'id':_0x576104[_0x897d('0x47')]['id']}},_0x126b84={};_0x126b84['model']=_[_0x897d('0x34')](db[_0x897d('0x2e')][_0x897d('0x2f')]);_0x126b84[_0x897d('0x33')]=_['keys'](_0x576104[_0x897d('0x33')]);_0x126b84[_0x897d('0x3d')]=_[_0x897d('0x35')](_0x126b84['model'],_0x126b84[_0x897d('0x33')]);_0x5781b2[_0x897d('0x36')]=_[_0x897d('0x35')](_0x126b84[_0x897d('0x32')],qs[_0x897d('0x37')](_0x576104[_0x897d('0x33')]['fields']));_0x5781b2[_0x897d('0x36')]=_0x5781b2['attributes'][_0x897d('0x38')]?_0x5781b2['attributes']:_0x126b84[_0x897d('0x32')];if(_0x576104['query'][_0x897d('0x42')]){_0x5781b2[_0x897d('0x43')]=[{'all':!![]}];}_0x5781b2=_[_0x897d('0x40')]({},_0x5781b2,_0x576104['options']);return db[_0x897d('0x2e')][_0x897d('0x48')](_0x5781b2)[_0x897d('0x24')](handleEntityNotFound(_0x40d501,null))[_0x897d('0x24')](respondWithResult(_0x40d501,null))['catch'](handleError(_0x40d501,null));};exports[_0x897d('0x23')]=function(_0x10f8d5,_0x1b4617){if(_0x10f8d5[_0x897d('0x49')]['id']){delete _0x10f8d5['body']['id'];}return db['CannedAnswer'][_0x897d('0x48')]({'where':{'id':_0x10f8d5[_0x897d('0x47')]['id']}})[_0x897d('0x24')](handleEntityNotFound(_0x1b4617,null))[_0x897d('0x24')](saveUpdates(_0x10f8d5[_0x897d('0x49')],null))['then'](respondWithResult(_0x1b4617,null))[_0x897d('0x45')](handleError(_0x1b4617,null));};exports['destroy']=function(_0x5a191c,_0x27f3af){return db[_0x897d('0x2e')][_0x897d('0x48')]({'where':{'id':_0x5a191c[_0x897d('0x47')]['id']}})[_0x897d('0x24')](handleEntityNotFound(_0x27f3af,null))['then'](removeEntity(_0x27f3af,null))[_0x897d('0x45')](handleError(_0x27f3af,null));};exports['create']=function(_0x159e93,_0x5c9cea){var _0x21c0a6={'key':_0x159e93[_0x897d('0x49')]['key']};if(_0x159e93[_0x897d('0x49')][_0x897d('0x4a')]){_0x21c0a6[_0x897d('0x4a')]=_0x159e93[_0x897d('0x49')]['MailAccountId'];}else if(_0x159e93[_0x897d('0x49')][_0x897d('0x4b')]){_0x21c0a6[_0x897d('0x4b')]=_0x159e93['body'][_0x897d('0x4b')];}else if(_0x159e93[_0x897d('0x49')][_0x897d('0x4c')]){_0x21c0a6[_0x897d('0x4c')]=_0x159e93[_0x897d('0x49')][_0x897d('0x4c')];}else if(_0x159e93['body'][_0x897d('0x4d')]){_0x21c0a6[_0x897d('0x4d')]=_0x159e93[_0x897d('0x49')][_0x897d('0x4d')];}return db[_0x897d('0x2e')][_0x897d('0x48')]({'where':_0x21c0a6})[_0x897d('0x24')](function(_0xff6f6a){if(_0xff6f6a){throw new db[(_0x897d('0x4e'))][(_0x897d('0x4f'))]('The\x20inserted\x20key\x20already\x20exists.');}return db[_0x897d('0x2e')][_0x897d('0x50')](_0x159e93[_0x897d('0x49')]);})['then'](function(_0x437871){var _0x20c020=_0x159e93[_0x897d('0x51')][_0x897d('0x26')]({'plain':!![]});if(!_0x20c020)throw new Error(_0x897d('0x52'));if(_0x20c020['role']===_0x897d('0x51')){var _0x2186aa=_0x437871['get']({'plain':!![]});return db[_0x897d('0x53')][_0x897d('0x48')]({'where':{'name':_0x897d('0x27'),'userProfileId':_0x20c020[_0x897d('0x54')]},'raw':!![]})['then'](function(_0x1be392){if(_0x1be392&&_0x1be392['autoAssociation']===0x0){return db['UserProfileResource'][_0x897d('0x50')]({'name':_0x2186aa[_0x897d('0x2a')],'resourceId':_0x2186aa['id'],'type':_0x1be392[_0x897d('0x2a')],'sectionId':_0x1be392['id']},{})[_0x897d('0x24')](function(){return _0x437871;});}else{return _0x437871;}})[_0x897d('0x45')](function(_0x41d74d){logger[_0x897d('0x55')](_0x897d('0x56'),_0x41d74d);throw _0x41d74d;});}return _0x437871;})[_0x897d('0x24')](respondWithResult(_0x5c9cea,0xc9))[_0x897d('0x45')](handleError(_0x5c9cea,null));};