043f4b92b661dd30495dc9780c321df1ab16f73f
[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 _0xe457=['The\x20inserted\x20key\x20already\x20exists.','create','user','get','UserProfileSection','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','undefined','limit','count','offset','set','json','apply','save','then','CannedAnswers','UserProfileResource','destroy','end','error','name','send','index','CannedAnswer','fieldName','type','key','model','map','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','options','include','findAll','rows','show','keys','rawAttributes','includeAll','find','catch','update','params','body','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError'];(function(_0x296b3c,_0x203828){var _0x53adfa=function(_0x50b597){while(--_0x50b597){_0x296b3c['push'](_0x296b3c['shift']());}};_0x53adfa(++_0x203828);}(_0xe457,0x1b8));var _0x7e45=function(_0x2805a5,_0x557279){_0x2805a5=_0x2805a5-0x0;var _0x282c1d=_0xe457[_0x2805a5];return _0x282c1d;};'use strict';var emlformat=require(_0x7e45('0x0'));var rimraf=require(_0x7e45('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7e45('0x2'));var rp=require(_0x7e45('0x3'));var moment=require('moment');var BPromise=require(_0x7e45('0x4'));var Mustache=require(_0x7e45('0x5'));var util=require(_0x7e45('0x6'));var path=require('path');var sox=require(_0x7e45('0x7'));var csv=require(_0x7e45('0x8'));var ejs=require(_0x7e45('0x9'));var fs=require('fs');var fs_extra=require(_0x7e45('0xa'));var _=require(_0x7e45('0xb'));var squel=require('squel');var crypto=require(_0x7e45('0xc'));var jsforce=require(_0x7e45('0xd'));var deskjs=require(_0x7e45('0xe'));var toCsv=require(_0x7e45('0x8'));var querystring=require('querystring');var Papa=require(_0x7e45('0xf'));var Redis=require(_0x7e45('0x10'));var authService=require(_0x7e45('0x11'));var qs=require(_0x7e45('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x7e45('0x13'));var utils=require(_0x7e45('0x14'));var config=require(_0x7e45('0x15'));var licenseUtil=require(_0x7e45('0x16'));var db=require(_0x7e45('0x17'))['db'];function respondWithStatusCode(_0x1175eb,_0x56075d){_0x56075d=_0x56075d||0xcc;return function(_0x119ec3){if(_0x119ec3){return _0x1175eb[_0x7e45('0x18')](_0x56075d);}return _0x1175eb['status'](_0x56075d)['end']();};}function respondWithResult(_0x2b3dd9,_0x8b7acf){_0x8b7acf=_0x8b7acf||0xc8;return function(_0x4d9f2f){if(_0x4d9f2f){return _0x2b3dd9[_0x7e45('0x19')](_0x8b7acf)['json'](_0x4d9f2f);}};}function respondWithFilteredResult(_0x530c1f,_0x2418e8){return function(_0x2210a4){if(_0x2210a4){var _0x1e383b=typeof _0x2418e8['offset']===_0x7e45('0x1a')&&typeof _0x2418e8[_0x7e45('0x1b')]===_0x7e45('0x1a');var _0x5ecf27=_0x2210a4[_0x7e45('0x1c')];var _0x38b67c=_0x1e383b?0x0:_0x2418e8[_0x7e45('0x1d')];var _0x31d222=_0x1e383b?_0x2210a4['count']:_0x2418e8[_0x7e45('0x1d')]+_0x2418e8['limit'];var _0x48ca91;if(_0x31d222>=_0x5ecf27){_0x31d222=_0x5ecf27;_0x48ca91=0xc8;}else{_0x48ca91=0xce;}_0x530c1f[_0x7e45('0x19')](_0x48ca91);return _0x530c1f[_0x7e45('0x1e')]('Content-Range',_0x38b67c+'-'+_0x31d222+'/'+_0x5ecf27)[_0x7e45('0x1f')](_0x2210a4);}return null;};}function patchUpdates(_0x1dcc76){return function(_0x4c5dc4){try{jsonpatch[_0x7e45('0x20')](_0x4c5dc4,_0x1dcc76,!![]);}catch(_0x46d90a){return BPromise['reject'](_0x46d90a);}return _0x4c5dc4[_0x7e45('0x21')]();};}function saveUpdates(_0x29ad03,_0x42877d){return function(_0x24d915){if(_0x24d915){return _0x24d915['update'](_0x29ad03)[_0x7e45('0x22')](function(_0x417674){return _0x417674;});}return null;};}function removeEntity(_0x5f5bf0,_0x1bcc98){return function(_0x591c5c){if(_0x591c5c){return _0x591c5c['destroy']()[_0x7e45('0x22')](function(){var _0x154dae=_0x591c5c['get']({'plain':!![]});var _0x8fdc34=_0x7e45('0x23');return db[_0x7e45('0x24')][_0x7e45('0x25')]({'where':{'type':_0x8fdc34,'resourceId':_0x154dae['id']}})[_0x7e45('0x22')](function(){return _0x591c5c;});})[_0x7e45('0x22')](function(){_0x5f5bf0[_0x7e45('0x19')](0xcc)[_0x7e45('0x26')]();});}};}function handleEntityNotFound(_0x5147eb,_0x763990){return function(_0x3e419a){if(!_0x3e419a){_0x5147eb['sendStatus'](0x194);}return _0x3e419a;};}function handleError(_0x179e9a,_0x5b40f1){_0x5b40f1=_0x5b40f1||0x1f4;return function(_0x5b11d8){logger[_0x7e45('0x27')](_0x5b11d8['stack']);if(_0x5b11d8[_0x7e45('0x28')]){delete _0x5b11d8[_0x7e45('0x28')];}_0x179e9a[_0x7e45('0x19')](_0x5b40f1)[_0x7e45('0x29')](_0x5b11d8);};}exports[_0x7e45('0x2a')]=function(_0x1da340,_0x71755d){var _0x217014={},_0x414798={},_0x13dfe0={'count':0x0,'rows':[]};var _0x36c506=_['map'](db[_0x7e45('0x2b')]['rawAttributes'],function(_0x2bdccb){return{'name':_0x2bdccb[_0x7e45('0x2c')],'type':_0x2bdccb[_0x7e45('0x2d')][_0x7e45('0x2e')]};});_0x414798[_0x7e45('0x2f')]=_[_0x7e45('0x30')](_0x36c506,_0x7e45('0x28'));_0x414798[_0x7e45('0x31')]=_['keys'](_0x1da340[_0x7e45('0x31')]);_0x414798['filters']=_[_0x7e45('0x32')](_0x414798[_0x7e45('0x2f')],_0x414798[_0x7e45('0x31')]);_0x217014['attributes']=_[_0x7e45('0x32')](_0x414798['model'],qs['fields'](_0x1da340['query'][_0x7e45('0x33')]));_0x217014[_0x7e45('0x34')]=_0x217014['attributes'][_0x7e45('0x35')]?_0x217014['attributes']:_0x414798['model'];if(!_0x1da340['query'][_0x7e45('0x36')](_0x7e45('0x37'))){_0x217014[_0x7e45('0x1b')]=qs[_0x7e45('0x1b')](_0x1da340['query'][_0x7e45('0x1b')]);_0x217014[_0x7e45('0x1d')]=qs[_0x7e45('0x1d')](_0x1da340['query'][_0x7e45('0x1d')]);}_0x217014[_0x7e45('0x38')]=qs[_0x7e45('0x39')](_0x1da340[_0x7e45('0x31')][_0x7e45('0x39')]);_0x217014[_0x7e45('0x3a')]=qs[_0x7e45('0x3b')](_[_0x7e45('0x3c')](_0x1da340[_0x7e45('0x31')],_0x414798[_0x7e45('0x3b')]),_0x36c506);if(_0x1da340[_0x7e45('0x31')][_0x7e45('0x3d')]){_0x217014[_0x7e45('0x3a')]=_[_0x7e45('0x3e')](_0x217014[_0x7e45('0x3a')],{'$or':[{'key':{'$like':'%'+_0x1da340[_0x7e45('0x31')]['filter']+'%'}},{'value':{'$like':'%'+_0x1da340[_0x7e45('0x31')]['filter']+'%'}}]});}_0x217014=_[_0x7e45('0x3e')]({},_0x217014,_0x1da340[_0x7e45('0x3f')]);var _0x484a1b={'where':_0x217014[_0x7e45('0x3a')]};return db[_0x7e45('0x2b')]['count'](_0x484a1b)['then'](function(_0xb59186){_0x13dfe0['count']=_0xb59186;if(_0x1da340[_0x7e45('0x31')]['includeAll']){_0x217014[_0x7e45('0x40')]=[{'all':!![]}];}return db[_0x7e45('0x2b')][_0x7e45('0x41')](_0x217014);})[_0x7e45('0x22')](function(_0x39eb59){_0x13dfe0[_0x7e45('0x42')]=_0x39eb59;return _0x13dfe0;})[_0x7e45('0x22')](respondWithFilteredResult(_0x71755d,_0x217014))['catch'](handleError(_0x71755d,null));};exports[_0x7e45('0x43')]=function(_0xdac4e8,_0x10e91f){var _0xd2eb5f={'raw':!![],'where':{'id':_0xdac4e8['params']['id']}},_0x12806f={};_0x12806f[_0x7e45('0x2f')]=_[_0x7e45('0x44')](db[_0x7e45('0x2b')][_0x7e45('0x45')]);_0x12806f['query']=_['keys'](_0xdac4e8['query']);_0x12806f[_0x7e45('0x3b')]=_[_0x7e45('0x32')](_0x12806f[_0x7e45('0x2f')],_0x12806f[_0x7e45('0x31')]);_0xd2eb5f[_0x7e45('0x34')]=_[_0x7e45('0x32')](_0x12806f[_0x7e45('0x2f')],qs[_0x7e45('0x33')](_0xdac4e8[_0x7e45('0x31')][_0x7e45('0x33')]));_0xd2eb5f[_0x7e45('0x34')]=_0xd2eb5f[_0x7e45('0x34')][_0x7e45('0x35')]?_0xd2eb5f[_0x7e45('0x34')]:_0x12806f[_0x7e45('0x2f')];if(_0xdac4e8['query'][_0x7e45('0x46')]){_0xd2eb5f['include']=[{'all':!![]}];}_0xd2eb5f=_[_0x7e45('0x3e')]({},_0xd2eb5f,_0xdac4e8[_0x7e45('0x3f')]);return db['CannedAnswer'][_0x7e45('0x47')](_0xd2eb5f)['then'](handleEntityNotFound(_0x10e91f,null))[_0x7e45('0x22')](respondWithResult(_0x10e91f,null))[_0x7e45('0x48')](handleError(_0x10e91f,null));};exports[_0x7e45('0x49')]=function(_0x41f23e,_0x50a44a){if(_0x41f23e['body']['id']){delete _0x41f23e['body']['id'];}return db[_0x7e45('0x2b')][_0x7e45('0x47')]({'where':{'id':_0x41f23e[_0x7e45('0x4a')]['id']}})[_0x7e45('0x22')](handleEntityNotFound(_0x50a44a,null))['then'](saveUpdates(_0x41f23e[_0x7e45('0x4b')],null))[_0x7e45('0x22')](respondWithResult(_0x50a44a,null))[_0x7e45('0x48')](handleError(_0x50a44a,null));};exports[_0x7e45('0x25')]=function(_0x3e6516,_0x249a90){return db['CannedAnswer'][_0x7e45('0x47')]({'where':{'id':_0x3e6516[_0x7e45('0x4a')]['id']}})[_0x7e45('0x22')](handleEntityNotFound(_0x249a90,null))[_0x7e45('0x22')](removeEntity(_0x249a90,null))[_0x7e45('0x48')](handleError(_0x249a90,null));};exports['create']=function(_0x796ec8,_0x46b4be){var _0x2d65c5={'key':_0x796ec8['body'][_0x7e45('0x2e')]};if(_0x796ec8[_0x7e45('0x4b')][_0x7e45('0x4c')]){_0x2d65c5['MailAccountId']=_0x796ec8['body'][_0x7e45('0x4c')];}else if(_0x796ec8['body'][_0x7e45('0x4d')]){_0x2d65c5[_0x7e45('0x4d')]=_0x796ec8['body'][_0x7e45('0x4d')];}else if(_0x796ec8[_0x7e45('0x4b')][_0x7e45('0x4e')]){_0x2d65c5[_0x7e45('0x4e')]=_0x796ec8['body'][_0x7e45('0x4e')];}else if(_0x796ec8[_0x7e45('0x4b')][_0x7e45('0x4f')]){_0x2d65c5[_0x7e45('0x4f')]=_0x796ec8[_0x7e45('0x4b')][_0x7e45('0x4f')];}return db[_0x7e45('0x2b')][_0x7e45('0x47')]({'where':_0x2d65c5})[_0x7e45('0x22')](function(_0x255e00){if(_0x255e00){throw new db[(_0x7e45('0x50'))][(_0x7e45('0x51'))](_0x7e45('0x52'));}return db[_0x7e45('0x2b')][_0x7e45('0x53')](_0x796ec8['body']);})[_0x7e45('0x22')](function(_0x4d64af){var _0x21f29c=_0x796ec8[_0x7e45('0x54')][_0x7e45('0x55')]({'plain':!![]});if(!_0x21f29c)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x21f29c['role']==='user'){var _0x3e4cde=_0x4d64af[_0x7e45('0x55')]({'plain':!![]});return db[_0x7e45('0x56')][_0x7e45('0x47')]({'where':{'name':_0x7e45('0x23'),'userProfileId':_0x21f29c['userProfileId']},'raw':!![]})[_0x7e45('0x22')](function(_0x930b0e){if(_0x930b0e&&_0x930b0e['autoAssociation']===0x0){return db['UserProfileResource'][_0x7e45('0x53')]({'name':_0x3e4cde[_0x7e45('0x28')],'resourceId':_0x3e4cde['id'],'type':_0x930b0e[_0x7e45('0x28')],'sectionId':_0x930b0e['id']},{})['then'](function(){return _0x4d64af;});}else{return _0x4d64af;}})[_0x7e45('0x48')](function(_0x2c4294){logger[_0x7e45('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2c4294);throw _0x2c4294;});}return _0x4d64af;})[_0x7e45('0x22')](respondWithResult(_0x46b4be,0xc9))['catch'](handleError(_0x46b4be,null));};