Built motion from commit d1eab355.|2.6.28
[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 _0x7b9e=['OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','CannedAnswers','UserProfileResource','destroy','stack','name','send','map','rawAttributes','fieldName','query','keys','intersection','attributes','model','fields','length','hasOwnProperty','order','sort','where','filters','filter','merge','options','CannedAnswer','includeAll','include','findAll','rows','catch','show','params','find','body','key','MailAccountId','SmsAccountId'];(function(_0x1ca062,_0x2a5f1d){var _0x501b77=function(_0x29d451){while(--_0x29d451){_0x1ca062['push'](_0x1ca062['shift']());}};_0x501b77(++_0x2a5f1d);}(_0x7b9e,0x175));var _0xe7b9=function(_0x325426,_0x4a6549){_0x325426=_0x325426-0x0;var _0x22dba1=_0x7b9e[_0x325426];return _0x22dba1;};'use strict';var emlformat=require(_0xe7b9('0x0'));var rimraf=require(_0xe7b9('0x1'));var zipdir=require(_0xe7b9('0x2'));var jsonpatch=require(_0xe7b9('0x3'));var rp=require('request-promise');var moment=require(_0xe7b9('0x4'));var BPromise=require(_0xe7b9('0x5'));var Mustache=require(_0xe7b9('0x6'));var util=require('util');var path=require(_0xe7b9('0x7'));var sox=require(_0xe7b9('0x8'));var csv=require(_0xe7b9('0x9'));var ejs=require(_0xe7b9('0xa'));var fs=require('fs');var fs_extra=require(_0xe7b9('0xb'));var _=require(_0xe7b9('0xc'));var squel=require('squel');var crypto=require(_0xe7b9('0xd'));var jsforce=require(_0xe7b9('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xe7b9('0x9'));var querystring=require(_0xe7b9('0xf'));var Papa=require(_0xe7b9('0x10'));var Redis=require(_0xe7b9('0x11'));var authService=require(_0xe7b9('0x12'));var qs=require(_0xe7b9('0x13'));var as=require(_0xe7b9('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xe7b9('0x15'));var utils=require(_0xe7b9('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xe7b9('0x17'));var db=require(_0xe7b9('0x18'))['db'];function respondWithStatusCode(_0xd197c1,_0x42d76c){_0x42d76c=_0x42d76c||0xcc;return function(_0x332354){if(_0x332354){return _0xd197c1[_0xe7b9('0x19')](_0x42d76c);}return _0xd197c1[_0xe7b9('0x1a')](_0x42d76c)[_0xe7b9('0x1b')]();};}function respondWithResult(_0x4474b1,_0xb35fca){_0xb35fca=_0xb35fca||0xc8;return function(_0x1fa932){if(_0x1fa932){return _0x4474b1[_0xe7b9('0x1a')](_0xb35fca)[_0xe7b9('0x1c')](_0x1fa932);}};}function respondWithFilteredResult(_0x587461,_0x21c628){return function(_0x517648){if(_0x517648){var _0x5bd3da=typeof _0x21c628[_0xe7b9('0x1d')]===_0xe7b9('0x1e')&&typeof _0x21c628[_0xe7b9('0x1f')]==='undefined';var _0x186b7f=_0x517648[_0xe7b9('0x20')];var _0x1a44cb=_0x5bd3da?0x0:_0x21c628[_0xe7b9('0x1d')];var _0x550475=_0x5bd3da?_0x517648[_0xe7b9('0x20')]:_0x21c628[_0xe7b9('0x1d')]+_0x21c628[_0xe7b9('0x1f')];var _0x1d7012;if(_0x550475>=_0x186b7f){_0x550475=_0x186b7f;_0x1d7012=0xc8;}else{_0x1d7012=0xce;}_0x587461[_0xe7b9('0x1a')](_0x1d7012);return _0x587461[_0xe7b9('0x21')](_0xe7b9('0x22'),_0x1a44cb+'-'+_0x550475+'/'+_0x186b7f)['json'](_0x517648);}return null;};}function patchUpdates(_0x11ad19){return function(_0x52c8e5){try{jsonpatch[_0xe7b9('0x23')](_0x52c8e5,_0x11ad19,!![]);}catch(_0x4aa194){return BPromise[_0xe7b9('0x24')](_0x4aa194);}return _0x52c8e5[_0xe7b9('0x25')]();};}function saveUpdates(_0x901ed4,_0x2c88ad){return function(_0x5ed099){if(_0x5ed099){return _0x5ed099[_0xe7b9('0x26')](_0x901ed4)[_0xe7b9('0x27')](function(_0x5f0b0b){return _0x5f0b0b;});}return null;};}function removeEntity(_0x2b169d,_0x7ca25a){return function(_0x302cf9){if(_0x302cf9){return _0x302cf9['destroy']()[_0xe7b9('0x27')](function(){var _0x224e9b=_0x302cf9['get']({'plain':!![]});var _0x1494b2=_0xe7b9('0x28');return db[_0xe7b9('0x29')][_0xe7b9('0x2a')]({'where':{'type':_0x1494b2,'resourceId':_0x224e9b['id']}})[_0xe7b9('0x27')](function(){return _0x302cf9;});})['then'](function(){_0x2b169d[_0xe7b9('0x1a')](0xcc)[_0xe7b9('0x1b')]();});}};}function handleEntityNotFound(_0xfac8fe,_0x2a8b0f){return function(_0x32252c){if(!_0x32252c){_0xfac8fe[_0xe7b9('0x19')](0x194);}return _0x32252c;};}function handleError(_0x59350b,_0x31d59f){_0x31d59f=_0x31d59f||0x1f4;return function(_0x2e0416){logger['error'](_0x2e0416[_0xe7b9('0x2b')]);if(_0x2e0416[_0xe7b9('0x2c')]){delete _0x2e0416[_0xe7b9('0x2c')];}_0x59350b['status'](_0x31d59f)[_0xe7b9('0x2d')](_0x2e0416);};}exports['index']=function(_0x197bc8,_0x59bae1){var _0x2898c3={},_0xfa25ba={},_0x3be22a={'count':0x0,'rows':[]};var _0xf3a22a=_[_0xe7b9('0x2e')](db['CannedAnswer'][_0xe7b9('0x2f')],function(_0x4d9035){return{'name':_0x4d9035[_0xe7b9('0x30')],'type':_0x4d9035['type']['key']};});_0xfa25ba['model']=_[_0xe7b9('0x2e')](_0xf3a22a,_0xe7b9('0x2c'));_0xfa25ba[_0xe7b9('0x31')]=_[_0xe7b9('0x32')](_0x197bc8[_0xe7b9('0x31')]);_0xfa25ba['filters']=_[_0xe7b9('0x33')](_0xfa25ba['model'],_0xfa25ba[_0xe7b9('0x31')]);_0x2898c3[_0xe7b9('0x34')]=_[_0xe7b9('0x33')](_0xfa25ba[_0xe7b9('0x35')],qs[_0xe7b9('0x36')](_0x197bc8['query'][_0xe7b9('0x36')]));_0x2898c3[_0xe7b9('0x34')]=_0x2898c3[_0xe7b9('0x34')][_0xe7b9('0x37')]?_0x2898c3[_0xe7b9('0x34')]:_0xfa25ba[_0xe7b9('0x35')];if(!_0x197bc8['query'][_0xe7b9('0x38')]('nolimit')){_0x2898c3[_0xe7b9('0x1f')]=qs[_0xe7b9('0x1f')](_0x197bc8[_0xe7b9('0x31')][_0xe7b9('0x1f')]);_0x2898c3[_0xe7b9('0x1d')]=qs['offset'](_0x197bc8[_0xe7b9('0x31')][_0xe7b9('0x1d')]);}_0x2898c3[_0xe7b9('0x39')]=qs['sort'](_0x197bc8[_0xe7b9('0x31')][_0xe7b9('0x3a')]);_0x2898c3[_0xe7b9('0x3b')]=qs[_0xe7b9('0x3c')](_['pick'](_0x197bc8[_0xe7b9('0x31')],_0xfa25ba[_0xe7b9('0x3c')]),_0xf3a22a);if(_0x197bc8['query'][_0xe7b9('0x3d')]){_0x2898c3[_0xe7b9('0x3b')]=_['merge'](_0x2898c3[_0xe7b9('0x3b')],{'$or':[{'key':{'$like':'%'+_0x197bc8['query']['filter']+'%'}},{'value':{'$like':'%'+_0x197bc8[_0xe7b9('0x31')][_0xe7b9('0x3d')]+'%'}}]});}_0x2898c3=_[_0xe7b9('0x3e')]({},_0x2898c3,_0x197bc8[_0xe7b9('0x3f')]);var _0x572442={'where':_0x2898c3['where']};return db[_0xe7b9('0x40')][_0xe7b9('0x20')](_0x572442)[_0xe7b9('0x27')](function(_0x57de41){_0x3be22a[_0xe7b9('0x20')]=_0x57de41;if(_0x197bc8[_0xe7b9('0x31')][_0xe7b9('0x41')]){_0x2898c3[_0xe7b9('0x42')]=[{'all':!![]}];}return db['CannedAnswer'][_0xe7b9('0x43')](_0x2898c3);})['then'](function(_0xde6661){_0x3be22a[_0xe7b9('0x44')]=_0xde6661;return _0x3be22a;})['then'](respondWithFilteredResult(_0x59bae1,_0x2898c3))[_0xe7b9('0x45')](handleError(_0x59bae1,null));};exports[_0xe7b9('0x46')]=function(_0x4eeb0d,_0x1819ad){var _0x388743={'raw':!![],'where':{'id':_0x4eeb0d[_0xe7b9('0x47')]['id']}},_0x904ac0={};_0x904ac0[_0xe7b9('0x35')]=_[_0xe7b9('0x32')](db[_0xe7b9('0x40')]['rawAttributes']);_0x904ac0[_0xe7b9('0x31')]=_[_0xe7b9('0x32')](_0x4eeb0d[_0xe7b9('0x31')]);_0x904ac0[_0xe7b9('0x3c')]=_[_0xe7b9('0x33')](_0x904ac0['model'],_0x904ac0[_0xe7b9('0x31')]);_0x388743['attributes']=_[_0xe7b9('0x33')](_0x904ac0[_0xe7b9('0x35')],qs[_0xe7b9('0x36')](_0x4eeb0d['query'][_0xe7b9('0x36')]));_0x388743['attributes']=_0x388743[_0xe7b9('0x34')][_0xe7b9('0x37')]?_0x388743['attributes']:_0x904ac0['model'];if(_0x4eeb0d[_0xe7b9('0x31')][_0xe7b9('0x41')]){_0x388743[_0xe7b9('0x42')]=[{'all':!![]}];}_0x388743=_[_0xe7b9('0x3e')]({},_0x388743,_0x4eeb0d['options']);return db[_0xe7b9('0x40')][_0xe7b9('0x48')](_0x388743)[_0xe7b9('0x27')](handleEntityNotFound(_0x1819ad,null))['then'](respondWithResult(_0x1819ad,null))[_0xe7b9('0x45')](handleError(_0x1819ad,null));};exports[_0xe7b9('0x26')]=function(_0x34ac90,_0x540e7b){if(_0x34ac90[_0xe7b9('0x49')]['id']){delete _0x34ac90[_0xe7b9('0x49')]['id'];}return db[_0xe7b9('0x40')]['find']({'where':{'id':_0x34ac90[_0xe7b9('0x47')]['id']}})[_0xe7b9('0x27')](handleEntityNotFound(_0x540e7b,null))[_0xe7b9('0x27')](saveUpdates(_0x34ac90[_0xe7b9('0x49')],null))[_0xe7b9('0x27')](respondWithResult(_0x540e7b,null))['catch'](handleError(_0x540e7b,null));};exports['destroy']=function(_0xe6edc5,_0x317910){return db['CannedAnswer'][_0xe7b9('0x48')]({'where':{'id':_0xe6edc5['params']['id']}})[_0xe7b9('0x27')](handleEntityNotFound(_0x317910,null))[_0xe7b9('0x27')](removeEntity(_0x317910,null))[_0xe7b9('0x45')](handleError(_0x317910,null));};exports['create']=function(_0x3e516c,_0x48a46f){var _0x293acd={'key':_0x3e516c[_0xe7b9('0x49')][_0xe7b9('0x4a')]};if(_0x3e516c['body'][_0xe7b9('0x4b')]){_0x293acd[_0xe7b9('0x4b')]=_0x3e516c[_0xe7b9('0x49')][_0xe7b9('0x4b')];}else if(_0x3e516c[_0xe7b9('0x49')][_0xe7b9('0x4c')]){_0x293acd[_0xe7b9('0x4c')]=_0x3e516c[_0xe7b9('0x49')][_0xe7b9('0x4c')];}else if(_0x3e516c[_0xe7b9('0x49')][_0xe7b9('0x4d')]){_0x293acd['OpenchannelAccountId']=_0x3e516c[_0xe7b9('0x49')][_0xe7b9('0x4d')];}else if(_0x3e516c[_0xe7b9('0x49')][_0xe7b9('0x4e')]){_0x293acd[_0xe7b9('0x4e')]=_0x3e516c[_0xe7b9('0x49')][_0xe7b9('0x4e')];}return db[_0xe7b9('0x40')]['find']({'where':_0x293acd})[_0xe7b9('0x27')](function(_0x302f36){if(_0x302f36){throw new db[(_0xe7b9('0x4f'))][(_0xe7b9('0x50'))](_0xe7b9('0x51'));}return db[_0xe7b9('0x40')][_0xe7b9('0x52')](_0x3e516c[_0xe7b9('0x49')]);})[_0xe7b9('0x27')](function(_0x3a6363){var _0x27b035=_0x3e516c[_0xe7b9('0x53')][_0xe7b9('0x54')]({'plain':!![]});if(!_0x27b035)throw new Error(_0xe7b9('0x55'));if(_0x27b035['role']===_0xe7b9('0x53')){var _0x38180f=_0x3a6363[_0xe7b9('0x54')]({'plain':!![]});return db['UserProfileSection'][_0xe7b9('0x48')]({'where':{'name':'CannedAnswers','userProfileId':_0x27b035[_0xe7b9('0x56')]},'raw':!![]})[_0xe7b9('0x27')](function(_0xf621d1){if(_0xf621d1&&_0xf621d1[_0xe7b9('0x57')]===0x0){return db[_0xe7b9('0x29')][_0xe7b9('0x52')]({'name':_0x38180f[_0xe7b9('0x2c')],'resourceId':_0x38180f['id'],'type':_0xf621d1[_0xe7b9('0x2c')],'sectionId':_0xf621d1['id']},{})['then'](function(){return _0x3a6363;});}else{return _0x3a6363;}})[_0xe7b9('0x45')](function(_0x2bef30){logger[_0xe7b9('0x58')](_0xe7b9('0x59'),_0x2bef30);throw _0x2bef30;});}return _0x3a6363;})[_0xe7b9('0x27')](respondWithResult(_0x48a46f,0xc9))[_0xe7b9('0x45')](handleError(_0x48a46f,null));};