Built motion from commit 85328c08.|2.5.50
[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 _0x0163=['apply','reject','update','destroy','get','CannedAnswers','then','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','CannedAnswer','includeAll','findAll','rows','show','params','include','options','find','catch','body','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','sendStatus','status','end','undefined','limit','count','offset','json'];(function(_0x1678c8,_0x1c32f4){var _0x387aa9=function(_0x2803bd){while(--_0x2803bd){_0x1678c8['push'](_0x1678c8['shift']());}};_0x387aa9(++_0x1c32f4);}(_0x0163,0x136));var _0x3016=function(_0x4e41db,_0xf3e14c){_0x4e41db=_0x4e41db-0x0;var _0x6255cc=_0x0163[_0x4e41db];return _0x6255cc;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3016('0x0'));var zipdir=require(_0x3016('0x1'));var jsonpatch=require(_0x3016('0x2'));var rp=require(_0x3016('0x3'));var moment=require(_0x3016('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x3016('0x5'));var util=require(_0x3016('0x6'));var path=require('path');var sox=require(_0x3016('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3016('0x8'));var _=require(_0x3016('0x9'));var squel=require(_0x3016('0xa'));var crypto=require(_0x3016('0xb'));var jsforce=require(_0x3016('0xc'));var deskjs=require(_0x3016('0xd'));var toCsv=require(_0x3016('0xe'));var querystring=require(_0x3016('0xf'));var Papa=require('papaparse');var Redis=require(_0x3016('0x10'));var authService=require(_0x3016('0x11'));var qs=require(_0x3016('0x12'));var as=require(_0x3016('0x13'));var hardwareService=require(_0x3016('0x14'));var logger=require('../../config/logger')(_0x3016('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x552fbf,_0x4aed71){_0x4aed71=_0x4aed71||0xcc;return function(_0x44055b){if(_0x44055b){return _0x552fbf[_0x3016('0x16')](_0x4aed71);}return _0x552fbf[_0x3016('0x17')](_0x4aed71)[_0x3016('0x18')]();};}function respondWithResult(_0x1c56ca,_0x36a673){_0x36a673=_0x36a673||0xc8;return function(_0x20b5b0){if(_0x20b5b0){return _0x1c56ca[_0x3016('0x17')](_0x36a673)['json'](_0x20b5b0);}};}function respondWithFilteredResult(_0x24d187,_0xe0ea99){return function(_0x1474ba){if(_0x1474ba){var _0x5834a5=typeof _0xe0ea99['offset']===_0x3016('0x19')&&typeof _0xe0ea99[_0x3016('0x1a')]==='undefined';var _0x91c30c=_0x1474ba[_0x3016('0x1b')];var _0x41871f=_0x5834a5?0x0:_0xe0ea99[_0x3016('0x1c')];var _0x306404=_0x5834a5?_0x1474ba['count']:_0xe0ea99['offset']+_0xe0ea99[_0x3016('0x1a')];var _0x192f7b;if(_0x306404>=_0x91c30c){_0x306404=_0x91c30c;_0x192f7b=0xc8;}else{_0x192f7b=0xce;}_0x24d187[_0x3016('0x17')](_0x192f7b);return _0x24d187['set']('Content-Range',_0x41871f+'-'+_0x306404+'/'+_0x91c30c)[_0x3016('0x1d')](_0x1474ba);}return null;};}function patchUpdates(_0x209e76){return function(_0x2528dc){try{jsonpatch[_0x3016('0x1e')](_0x2528dc,_0x209e76,!![]);}catch(_0x161bb8){return BPromise[_0x3016('0x1f')](_0x161bb8);}return _0x2528dc['save']();};}function saveUpdates(_0x5dcc36,_0x13c439){return function(_0x5f1927){if(_0x5f1927){return _0x5f1927[_0x3016('0x20')](_0x5dcc36)['then'](function(_0xc315fa){return _0xc315fa;});}return null;};}function removeEntity(_0x2f643d,_0x3fce13){return function(_0x374e9b){if(_0x374e9b){return _0x374e9b[_0x3016('0x21')]()['then'](function(){var _0x4900a0=_0x374e9b[_0x3016('0x22')]({'plain':!![]});var _0x30c351=_0x3016('0x23');return db['UserProfileResource'][_0x3016('0x21')]({'where':{'type':_0x30c351,'resourceId':_0x4900a0['id']}})[_0x3016('0x24')](function(){return _0x374e9b;});})[_0x3016('0x24')](function(){_0x2f643d[_0x3016('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5ec530,_0x538bd2){return function(_0x342424){if(!_0x342424){_0x5ec530[_0x3016('0x16')](0x194);}return _0x342424;};}function handleError(_0x5919ce,_0x59556b){_0x59556b=_0x59556b||0x1f4;return function(_0xbe60d9){logger['error'](_0xbe60d9['stack']);if(_0xbe60d9[_0x3016('0x25')]){delete _0xbe60d9['name'];}_0x5919ce[_0x3016('0x17')](_0x59556b)['send'](_0xbe60d9);};}exports[_0x3016('0x26')]=function(_0x405862,_0x3113e3){var _0x48ce62={},_0x35d6fc={},_0x39da7c={'count':0x0,'rows':[]};var _0x5aa594=_[_0x3016('0x27')](db['CannedAnswer'][_0x3016('0x28')],function(_0x264ec9){return{'name':_0x264ec9[_0x3016('0x29')],'type':_0x264ec9[_0x3016('0x2a')][_0x3016('0x2b')]};});_0x35d6fc[_0x3016('0x2c')]=_[_0x3016('0x27')](_0x5aa594,_0x3016('0x25'));_0x35d6fc[_0x3016('0x2d')]=_[_0x3016('0x2e')](_0x405862[_0x3016('0x2d')]);_0x35d6fc[_0x3016('0x2f')]=_['intersection'](_0x35d6fc[_0x3016('0x2c')],_0x35d6fc[_0x3016('0x2d')]);_0x48ce62['attributes']=_[_0x3016('0x30')](_0x35d6fc[_0x3016('0x2c')],qs['fields'](_0x405862['query'][_0x3016('0x31')]));_0x48ce62[_0x3016('0x32')]=_0x48ce62[_0x3016('0x32')][_0x3016('0x33')]?_0x48ce62[_0x3016('0x32')]:_0x35d6fc['model'];if(!_0x405862[_0x3016('0x2d')][_0x3016('0x34')](_0x3016('0x35'))){_0x48ce62[_0x3016('0x1a')]=qs[_0x3016('0x1a')](_0x405862[_0x3016('0x2d')][_0x3016('0x1a')]);_0x48ce62[_0x3016('0x1c')]=qs[_0x3016('0x1c')](_0x405862[_0x3016('0x2d')][_0x3016('0x1c')]);}_0x48ce62[_0x3016('0x36')]=qs[_0x3016('0x37')](_0x405862[_0x3016('0x2d')][_0x3016('0x37')]);_0x48ce62['where']=qs[_0x3016('0x2f')](_[_0x3016('0x38')](_0x405862['query'],_0x35d6fc[_0x3016('0x2f')]),_0x5aa594);if(_0x405862[_0x3016('0x2d')][_0x3016('0x39')]){_0x48ce62[_0x3016('0x3a')]=_[_0x3016('0x3b')](_0x48ce62[_0x3016('0x3a')],{'$or':[{'key':{'$like':'%'+_0x405862[_0x3016('0x2d')]['filter']+'%'}},{'value':{'$like':'%'+_0x405862[_0x3016('0x2d')][_0x3016('0x39')]+'%'}}]});}_0x48ce62=_[_0x3016('0x3b')]({},_0x48ce62,_0x405862['options']);var _0x4b6dca={'where':_0x48ce62['where']};return db[_0x3016('0x3c')][_0x3016('0x1b')](_0x4b6dca)[_0x3016('0x24')](function(_0x139e59){_0x39da7c['count']=_0x139e59;if(_0x405862[_0x3016('0x2d')][_0x3016('0x3d')]){_0x48ce62['include']=[{'all':!![]}];}return db[_0x3016('0x3c')][_0x3016('0x3e')](_0x48ce62);})[_0x3016('0x24')](function(_0x5184f3){_0x39da7c[_0x3016('0x3f')]=_0x5184f3;return _0x39da7c;})[_0x3016('0x24')](respondWithFilteredResult(_0x3113e3,_0x48ce62))['catch'](handleError(_0x3113e3,null));};exports[_0x3016('0x40')]=function(_0x1caeaa,_0x3a5b9c){var _0x1b0d98={'raw':!![],'where':{'id':_0x1caeaa[_0x3016('0x41')]['id']}},_0x509c71={};_0x509c71[_0x3016('0x2c')]=_[_0x3016('0x2e')](db[_0x3016('0x3c')][_0x3016('0x28')]);_0x509c71['query']=_[_0x3016('0x2e')](_0x1caeaa[_0x3016('0x2d')]);_0x509c71['filters']=_[_0x3016('0x30')](_0x509c71[_0x3016('0x2c')],_0x509c71[_0x3016('0x2d')]);_0x1b0d98[_0x3016('0x32')]=_[_0x3016('0x30')](_0x509c71['model'],qs['fields'](_0x1caeaa[_0x3016('0x2d')][_0x3016('0x31')]));_0x1b0d98[_0x3016('0x32')]=_0x1b0d98[_0x3016('0x32')]['length']?_0x1b0d98[_0x3016('0x32')]:_0x509c71[_0x3016('0x2c')];if(_0x1caeaa[_0x3016('0x2d')][_0x3016('0x3d')]){_0x1b0d98[_0x3016('0x42')]=[{'all':!![]}];}_0x1b0d98=_[_0x3016('0x3b')]({},_0x1b0d98,_0x1caeaa[_0x3016('0x43')]);return db[_0x3016('0x3c')][_0x3016('0x44')](_0x1b0d98)['then'](handleEntityNotFound(_0x3a5b9c,null))[_0x3016('0x24')](respondWithResult(_0x3a5b9c,null))[_0x3016('0x45')](handleError(_0x3a5b9c,null));};exports[_0x3016('0x20')]=function(_0x5b2ce6,_0x322e1a){if(_0x5b2ce6['body']['id']){delete _0x5b2ce6[_0x3016('0x46')]['id'];}return db['CannedAnswer']['find']({'where':{'id':_0x5b2ce6[_0x3016('0x41')]['id']}})[_0x3016('0x24')](handleEntityNotFound(_0x322e1a,null))[_0x3016('0x24')](saveUpdates(_0x5b2ce6[_0x3016('0x46')],null))[_0x3016('0x24')](respondWithResult(_0x322e1a,null))['catch'](handleError(_0x322e1a,null));};exports[_0x3016('0x21')]=function(_0x805295,_0x2acd13){return db[_0x3016('0x3c')][_0x3016('0x44')]({'where':{'id':_0x805295[_0x3016('0x41')]['id']}})[_0x3016('0x24')](handleEntityNotFound(_0x2acd13,null))[_0x3016('0x24')](removeEntity(_0x2acd13,null))['catch'](handleError(_0x2acd13,null));};exports['create']=function(_0x55f823,_0x1a8572){var _0x15beae={'key':_0x55f823['body'][_0x3016('0x2b')]};if(_0x55f823[_0x3016('0x46')][_0x3016('0x47')]){_0x15beae[_0x3016('0x47')]=_0x55f823[_0x3016('0x46')][_0x3016('0x47')];}else if(_0x55f823[_0x3016('0x46')][_0x3016('0x48')]){_0x15beae['SmsAccountId']=_0x55f823[_0x3016('0x46')]['SmsAccountId'];}else if(_0x55f823[_0x3016('0x46')][_0x3016('0x49')]){_0x15beae[_0x3016('0x49')]=_0x55f823['body']['OpenchannelAccountId'];}else if(_0x55f823[_0x3016('0x46')]['ChatWebsiteId']){_0x15beae[_0x3016('0x4a')]=_0x55f823[_0x3016('0x46')][_0x3016('0x4a')];}return db[_0x3016('0x3c')][_0x3016('0x44')]({'where':_0x15beae})[_0x3016('0x24')](function(_0x21b8ea){if(_0x21b8ea){throw new db[(_0x3016('0x4b'))]['ValidationError']('The\x20inserted\x20key\x20already\x20exists.');}return db[_0x3016('0x3c')][_0x3016('0x4c')](_0x55f823[_0x3016('0x46')]);})[_0x3016('0x24')](function(_0x349522){var _0x485577=_0x55f823[_0x3016('0x4d')]['get']({'plain':!![]});if(!_0x485577)throw new Error(_0x3016('0x4e'));if(_0x485577[_0x3016('0x4f')]===_0x3016('0x4d')){var _0x12e7d9=_0x349522[_0x3016('0x22')]({'plain':!![]});return db[_0x3016('0x50')][_0x3016('0x44')]({'where':{'name':_0x3016('0x23'),'userProfileId':_0x485577[_0x3016('0x51')]},'raw':!![]})[_0x3016('0x24')](function(_0x4457e0){if(_0x4457e0&&_0x4457e0[_0x3016('0x52')]===0x0){return db[_0x3016('0x53')][_0x3016('0x4c')]({'name':_0x12e7d9['name'],'resourceId':_0x12e7d9['id'],'type':_0x4457e0[_0x3016('0x25')],'sectionId':_0x4457e0['id']},{})[_0x3016('0x24')](function(){return _0x349522;});}else{return _0x349522;}})[_0x3016('0x45')](function(_0x28284b){logger['error'](_0x3016('0x54'),_0x28284b);throw _0x28284b;});}return _0x349522;})[_0x3016('0x24')](respondWithResult(_0x1a8572,0xc9))[_0x3016('0x45')](handleError(_0x1a8572,null));};