Built motion from commit 9d0783e6.|2.6.13
[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 _0xd195=['autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','moment','mustache','util','path','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','UserProfileResource','error','stack','name','send','index','map','CannedAnswer','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','rows','catch','show','params','length','find','body','key','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','CannedAnswers','userProfileId'];(function(_0x35b18a,_0x6b2fbe){var _0x4db1bd=function(_0x389e62){while(--_0x389e62){_0x35b18a['push'](_0x35b18a['shift']());}};_0x4db1bd(++_0x6b2fbe);}(_0xd195,0x172));var _0x5d19=function(_0x539b90,_0x57ce81){_0x539b90=_0x539b90-0x0;var _0xad8bd2=_0xd195[_0x539b90];return _0xad8bd2;};'use strict';var emlformat=require(_0x5d19('0x0'));var rimraf=require(_0x5d19('0x1'));var zipdir=require(_0x5d19('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x5d19('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x5d19('0x4'));var util=require(_0x5d19('0x5'));var path=require(_0x5d19('0x6'));var sox=require('sox');var csv=require(_0x5d19('0x7'));var ejs=require(_0x5d19('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x5d19('0x9'));var squel=require(_0x5d19('0xa'));var crypto=require('crypto');var jsforce=require(_0x5d19('0xb'));var deskjs=require(_0x5d19('0xc'));var toCsv=require(_0x5d19('0x7'));var querystring=require(_0x5d19('0xd'));var Papa=require(_0x5d19('0xe'));var Redis=require(_0x5d19('0xf'));var authService=require(_0x5d19('0x10'));var qs=require(_0x5d19('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5d19('0x12'));var logger=require(_0x5d19('0x13'))(_0x5d19('0x14'));var utils=require('../../config/utils');var config=require(_0x5d19('0x15'));var licenseUtil=require(_0x5d19('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x15e3a0,_0xc061e3){_0xc061e3=_0xc061e3||0xcc;return function(_0x55abac){if(_0x55abac){return _0x15e3a0[_0x5d19('0x17')](_0xc061e3);}return _0x15e3a0[_0x5d19('0x18')](_0xc061e3)[_0x5d19('0x19')]();};}function respondWithResult(_0x24fcbd,_0xbd486a){_0xbd486a=_0xbd486a||0xc8;return function(_0x3afd45){if(_0x3afd45){return _0x24fcbd[_0x5d19('0x18')](_0xbd486a)[_0x5d19('0x1a')](_0x3afd45);}};}function respondWithFilteredResult(_0x4e1095,_0x46335e){return function(_0x2d99a3){if(_0x2d99a3){var _0x3d527d=typeof _0x46335e[_0x5d19('0x1b')]===_0x5d19('0x1c')&&typeof _0x46335e[_0x5d19('0x1d')]===_0x5d19('0x1c');var _0x2a92bd=_0x2d99a3[_0x5d19('0x1e')];var _0xce703c=_0x3d527d?0x0:_0x46335e[_0x5d19('0x1b')];var _0x183bd2=_0x3d527d?_0x2d99a3[_0x5d19('0x1e')]:_0x46335e[_0x5d19('0x1b')]+_0x46335e['limit'];var _0x4a5b9f;if(_0x183bd2>=_0x2a92bd){_0x183bd2=_0x2a92bd;_0x4a5b9f=0xc8;}else{_0x4a5b9f=0xce;}_0x4e1095['status'](_0x4a5b9f);return _0x4e1095[_0x5d19('0x1f')](_0x5d19('0x20'),_0xce703c+'-'+_0x183bd2+'/'+_0x2a92bd)[_0x5d19('0x1a')](_0x2d99a3);}return null;};}function patchUpdates(_0x15e706){return function(_0x131872){try{jsonpatch['apply'](_0x131872,_0x15e706,!![]);}catch(_0x37881c){return BPromise[_0x5d19('0x21')](_0x37881c);}return _0x131872[_0x5d19('0x22')]();};}function saveUpdates(_0x5ff331,_0x505654){return function(_0x3a9758){if(_0x3a9758){return _0x3a9758[_0x5d19('0x23')](_0x5ff331)[_0x5d19('0x24')](function(_0x4d7254){return _0x4d7254;});}return null;};}function removeEntity(_0x5ca5a2,_0x431fd5){return function(_0x31dac3){if(_0x31dac3){return _0x31dac3[_0x5d19('0x25')]()[_0x5d19('0x24')](function(){var _0x583915=_0x31dac3['get']({'plain':!![]});var _0x356108='CannedAnswers';return db[_0x5d19('0x26')][_0x5d19('0x25')]({'where':{'type':_0x356108,'resourceId':_0x583915['id']}})[_0x5d19('0x24')](function(){return _0x31dac3;});})[_0x5d19('0x24')](function(){_0x5ca5a2[_0x5d19('0x18')](0xcc)[_0x5d19('0x19')]();});}};}function handleEntityNotFound(_0x57c445,_0x101123){return function(_0x5c2a32){if(!_0x5c2a32){_0x57c445[_0x5d19('0x17')](0x194);}return _0x5c2a32;};}function handleError(_0x7dbece,_0x4ecb5a){_0x4ecb5a=_0x4ecb5a||0x1f4;return function(_0x3c6bf4){logger[_0x5d19('0x27')](_0x3c6bf4[_0x5d19('0x28')]);if(_0x3c6bf4[_0x5d19('0x29')]){delete _0x3c6bf4['name'];}_0x7dbece[_0x5d19('0x18')](_0x4ecb5a)[_0x5d19('0x2a')](_0x3c6bf4);};}exports[_0x5d19('0x2b')]=function(_0x12a924,_0x1b1bff){var _0x332668={},_0x1d565e={},_0x59f192={'count':0x0,'rows':[]};var _0x441528=_[_0x5d19('0x2c')](db[_0x5d19('0x2d')][_0x5d19('0x2e')],function(_0x32e5c5){return{'name':_0x32e5c5[_0x5d19('0x2f')],'type':_0x32e5c5[_0x5d19('0x30')]['key']};});_0x1d565e[_0x5d19('0x31')]=_[_0x5d19('0x2c')](_0x441528,'name');_0x1d565e[_0x5d19('0x32')]=_[_0x5d19('0x33')](_0x12a924[_0x5d19('0x32')]);_0x1d565e[_0x5d19('0x34')]=_[_0x5d19('0x35')](_0x1d565e[_0x5d19('0x31')],_0x1d565e[_0x5d19('0x32')]);_0x332668['attributes']=_[_0x5d19('0x35')](_0x1d565e[_0x5d19('0x31')],qs[_0x5d19('0x36')](_0x12a924['query']['fields']));_0x332668['attributes']=_0x332668[_0x5d19('0x37')]['length']?_0x332668[_0x5d19('0x37')]:_0x1d565e['model'];if(!_0x12a924['query'][_0x5d19('0x38')](_0x5d19('0x39'))){_0x332668['limit']=qs[_0x5d19('0x1d')](_0x12a924[_0x5d19('0x32')]['limit']);_0x332668[_0x5d19('0x1b')]=qs[_0x5d19('0x1b')](_0x12a924['query'][_0x5d19('0x1b')]);}_0x332668[_0x5d19('0x3a')]=qs[_0x5d19('0x3b')](_0x12a924[_0x5d19('0x32')][_0x5d19('0x3b')]);_0x332668[_0x5d19('0x3c')]=qs[_0x5d19('0x34')](_[_0x5d19('0x3d')](_0x12a924[_0x5d19('0x32')],_0x1d565e[_0x5d19('0x34')]),_0x441528);if(_0x12a924[_0x5d19('0x32')][_0x5d19('0x3e')]){_0x332668[_0x5d19('0x3c')]=_['merge'](_0x332668[_0x5d19('0x3c')],{'$or':[{'key':{'$like':'%'+_0x12a924[_0x5d19('0x32')][_0x5d19('0x3e')]+'%'}},{'value':{'$like':'%'+_0x12a924[_0x5d19('0x32')][_0x5d19('0x3e')]+'%'}}]});}_0x332668=_[_0x5d19('0x3f')]({},_0x332668,_0x12a924[_0x5d19('0x40')]);var _0x248e9b={'where':_0x332668[_0x5d19('0x3c')]};return db['CannedAnswer'][_0x5d19('0x1e')](_0x248e9b)[_0x5d19('0x24')](function(_0x154c0d){_0x59f192[_0x5d19('0x1e')]=_0x154c0d;if(_0x12a924['query'][_0x5d19('0x41')]){_0x332668[_0x5d19('0x42')]=[{'all':!![]}];}return db[_0x5d19('0x2d')]['findAll'](_0x332668);})[_0x5d19('0x24')](function(_0x429169){_0x59f192[_0x5d19('0x43')]=_0x429169;return _0x59f192;})[_0x5d19('0x24')](respondWithFilteredResult(_0x1b1bff,_0x332668))[_0x5d19('0x44')](handleError(_0x1b1bff,null));};exports[_0x5d19('0x45')]=function(_0x16f44e,_0x369f27){var _0x254d4d={'raw':!![],'where':{'id':_0x16f44e[_0x5d19('0x46')]['id']}},_0x5308b1={};_0x5308b1[_0x5d19('0x31')]=_[_0x5d19('0x33')](db[_0x5d19('0x2d')][_0x5d19('0x2e')]);_0x5308b1[_0x5d19('0x32')]=_[_0x5d19('0x33')](_0x16f44e[_0x5d19('0x32')]);_0x5308b1[_0x5d19('0x34')]=_[_0x5d19('0x35')](_0x5308b1[_0x5d19('0x31')],_0x5308b1[_0x5d19('0x32')]);_0x254d4d[_0x5d19('0x37')]=_['intersection'](_0x5308b1[_0x5d19('0x31')],qs['fields'](_0x16f44e[_0x5d19('0x32')][_0x5d19('0x36')]));_0x254d4d[_0x5d19('0x37')]=_0x254d4d['attributes'][_0x5d19('0x47')]?_0x254d4d['attributes']:_0x5308b1[_0x5d19('0x31')];if(_0x16f44e[_0x5d19('0x32')][_0x5d19('0x41')]){_0x254d4d[_0x5d19('0x42')]=[{'all':!![]}];}_0x254d4d=_[_0x5d19('0x3f')]({},_0x254d4d,_0x16f44e[_0x5d19('0x40')]);return db[_0x5d19('0x2d')]['find'](_0x254d4d)['then'](handleEntityNotFound(_0x369f27,null))[_0x5d19('0x24')](respondWithResult(_0x369f27,null))[_0x5d19('0x44')](handleError(_0x369f27,null));};exports[_0x5d19('0x23')]=function(_0xd232d5,_0x2f0428){if(_0xd232d5['body']['id']){delete _0xd232d5['body']['id'];}return db['CannedAnswer'][_0x5d19('0x48')]({'where':{'id':_0xd232d5['params']['id']}})[_0x5d19('0x24')](handleEntityNotFound(_0x2f0428,null))[_0x5d19('0x24')](saveUpdates(_0xd232d5[_0x5d19('0x49')],null))[_0x5d19('0x24')](respondWithResult(_0x2f0428,null))[_0x5d19('0x44')](handleError(_0x2f0428,null));};exports[_0x5d19('0x25')]=function(_0xbb26dd,_0x19cb8c){return db['CannedAnswer'][_0x5d19('0x48')]({'where':{'id':_0xbb26dd['params']['id']}})['then'](handleEntityNotFound(_0x19cb8c,null))[_0x5d19('0x24')](removeEntity(_0x19cb8c,null))[_0x5d19('0x44')](handleError(_0x19cb8c,null));};exports['create']=function(_0x549a98,_0x43f48a){var _0x6a07e8={'key':_0x549a98[_0x5d19('0x49')][_0x5d19('0x4a')]};if(_0x549a98[_0x5d19('0x49')][_0x5d19('0x4b')]){_0x6a07e8[_0x5d19('0x4b')]=_0x549a98['body'][_0x5d19('0x4b')];}else if(_0x549a98[_0x5d19('0x49')][_0x5d19('0x4c')]){_0x6a07e8[_0x5d19('0x4c')]=_0x549a98[_0x5d19('0x49')][_0x5d19('0x4c')];}else if(_0x549a98['body']['OpenchannelAccountId']){_0x6a07e8[_0x5d19('0x4d')]=_0x549a98['body'][_0x5d19('0x4d')];}else if(_0x549a98[_0x5d19('0x49')]['ChatWebsiteId']){_0x6a07e8['ChatWebsiteId']=_0x549a98[_0x5d19('0x49')][_0x5d19('0x4e')];}return db[_0x5d19('0x2d')][_0x5d19('0x48')]({'where':_0x6a07e8})[_0x5d19('0x24')](function(_0x2144a1){if(_0x2144a1){throw new db[(_0x5d19('0x4f'))][(_0x5d19('0x50'))](_0x5d19('0x51'));}return db['CannedAnswer'][_0x5d19('0x52')](_0x549a98[_0x5d19('0x49')]);})[_0x5d19('0x24')](function(_0x45b35a){var _0x5ae929=_0x549a98[_0x5d19('0x53')]['get']({'plain':!![]});if(!_0x5ae929)throw new Error(_0x5d19('0x54'));if(_0x5ae929[_0x5d19('0x55')]===_0x5d19('0x53')){var _0x4a915f=_0x45b35a[_0x5d19('0x56')]({'plain':!![]});return db[_0x5d19('0x57')]['find']({'where':{'name':_0x5d19('0x58'),'userProfileId':_0x5ae929[_0x5d19('0x59')]},'raw':!![]})[_0x5d19('0x24')](function(_0x47c06c){if(_0x47c06c&&_0x47c06c[_0x5d19('0x5a')]===0x0){return db[_0x5d19('0x26')][_0x5d19('0x52')]({'name':_0x4a915f['name'],'resourceId':_0x4a915f['id'],'type':_0x47c06c[_0x5d19('0x29')],'sectionId':_0x47c06c['id']},{})['then'](function(){return _0x45b35a;});}else{return _0x45b35a;}})['catch'](function(_0xf6fa8b){logger[_0x5d19('0x27')](_0x5d19('0x5b'),_0xf6fa8b);throw _0xf6fa8b;});}return _0x45b35a;})[_0x5d19('0x24')](respondWithResult(_0x43f48a,0xc9))[_0x5d19('0x44')](handleError(_0x43f48a,null));};