93add3be63b410ae6d1aa6b0f44ac154aed6a004
[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 _0x0cbb=['query','intersection','attributes','fields','length','hasOwnProperty','order','sort','pick','filters','filter','where','merge','options','count','includeAll','include','findAll','rows','catch','params','keys','find','body','destroy','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','CannedAnswers','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','limit','undefined','set','apply','reject','save','update','then','UserProfileResource','error','stack','name','index','CannedAnswer','rawAttributes','fieldName','type','key','model','map'];(function(_0x50ba88,_0x44d9dd){var _0x155479=function(_0x2fa4c9){while(--_0x2fa4c9){_0x50ba88['push'](_0x50ba88['shift']());}};_0x155479(++_0x44d9dd);}(_0x0cbb,0x1ee));var _0xb0cb=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0cbb[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xb0cb('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb0cb('0x1'));var jsonpatch=require(_0xb0cb('0x2'));var rp=require(_0xb0cb('0x3'));var moment=require(_0xb0cb('0x4'));var BPromise=require(_0xb0cb('0x5'));var Mustache=require(_0xb0cb('0x6'));var util=require(_0xb0cb('0x7'));var path=require('path');var sox=require(_0xb0cb('0x8'));var csv=require('to-csv');var ejs=require(_0xb0cb('0x9'));var fs=require('fs');var fs_extra=require(_0xb0cb('0xa'));var _=require(_0xb0cb('0xb'));var squel=require(_0xb0cb('0xc'));var crypto=require('crypto');var jsforce=require(_0xb0cb('0xd'));var deskjs=require(_0xb0cb('0xe'));var toCsv=require(_0xb0cb('0xf'));var querystring=require(_0xb0cb('0x10'));var Papa=require(_0xb0cb('0x11'));var Redis=require(_0xb0cb('0x12'));var authService=require(_0xb0cb('0x13'));var qs=require(_0xb0cb('0x14'));var as=require(_0xb0cb('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb0cb('0x16'))(_0xb0cb('0x17'));var utils=require(_0xb0cb('0x18'));var config=require(_0xb0cb('0x19'));var licenseUtil=require(_0xb0cb('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x33b5ea,_0x447d46){_0x447d46=_0x447d46||0xcc;return function(_0x52fcf2){if(_0x52fcf2){return _0x33b5ea[_0xb0cb('0x1b')](_0x447d46);}return _0x33b5ea[_0xb0cb('0x1c')](_0x447d46)[_0xb0cb('0x1d')]();};}function respondWithResult(_0x402bcd,_0x365bd5){_0x365bd5=_0x365bd5||0xc8;return function(_0x19b04a){if(_0x19b04a){return _0x402bcd[_0xb0cb('0x1c')](_0x365bd5)[_0xb0cb('0x1e')](_0x19b04a);}};}function respondWithFilteredResult(_0x3d85ee,_0x197f14){return function(_0x30854b){if(_0x30854b){var _0x4b0a7c=typeof _0x197f14[_0xb0cb('0x1f')]==='undefined'&&typeof _0x197f14[_0xb0cb('0x20')]===_0xb0cb('0x21');var _0x55fd5a=_0x30854b['count'];var _0x214a7=_0x4b0a7c?0x0:_0x197f14['offset'];var _0x183f3d=_0x4b0a7c?_0x30854b['count']:_0x197f14[_0xb0cb('0x1f')]+_0x197f14['limit'];var _0x7c4b8b;if(_0x183f3d>=_0x55fd5a){_0x183f3d=_0x55fd5a;_0x7c4b8b=0xc8;}else{_0x7c4b8b=0xce;}_0x3d85ee['status'](_0x7c4b8b);return _0x3d85ee[_0xb0cb('0x22')]('Content-Range',_0x214a7+'-'+_0x183f3d+'/'+_0x55fd5a)[_0xb0cb('0x1e')](_0x30854b);}return null;};}function patchUpdates(_0x47351f){return function(_0x19991e){try{jsonpatch[_0xb0cb('0x23')](_0x19991e,_0x47351f,!![]);}catch(_0x4ee322){return BPromise[_0xb0cb('0x24')](_0x4ee322);}return _0x19991e[_0xb0cb('0x25')]();};}function saveUpdates(_0x420ecd,_0x20f469){return function(_0x73d6ea){if(_0x73d6ea){return _0x73d6ea[_0xb0cb('0x26')](_0x420ecd)[_0xb0cb('0x27')](function(_0x533f39){return _0x533f39;});}return null;};}function removeEntity(_0x4475c9,_0x540f17){return function(_0xe20a77){if(_0xe20a77){return _0xe20a77['destroy']()['then'](function(){var _0x2a6adb=_0xe20a77['get']({'plain':!![]});var _0x1a57ff='CannedAnswers';return db[_0xb0cb('0x28')]['destroy']({'where':{'type':_0x1a57ff,'resourceId':_0x2a6adb['id']}})[_0xb0cb('0x27')](function(){return _0xe20a77;});})['then'](function(){_0x4475c9[_0xb0cb('0x1c')](0xcc)[_0xb0cb('0x1d')]();});}};}function handleEntityNotFound(_0x56dbb7,_0x55f0cd){return function(_0x945449){if(!_0x945449){_0x56dbb7['sendStatus'](0x194);}return _0x945449;};}function handleError(_0x2879e6,_0x54f3bc){_0x54f3bc=_0x54f3bc||0x1f4;return function(_0x573415){logger[_0xb0cb('0x29')](_0x573415[_0xb0cb('0x2a')]);if(_0x573415[_0xb0cb('0x2b')]){delete _0x573415[_0xb0cb('0x2b')];}_0x2879e6[_0xb0cb('0x1c')](_0x54f3bc)['send'](_0x573415);};}exports[_0xb0cb('0x2c')]=function(_0x455632,_0x13ec92){var _0x1ccd21={},_0x1211e9={},_0x49f8bf={'count':0x0,'rows':[]};var _0x9f34e4=_['map'](db[_0xb0cb('0x2d')][_0xb0cb('0x2e')],function(_0x463764){return{'name':_0x463764[_0xb0cb('0x2f')],'type':_0x463764[_0xb0cb('0x30')][_0xb0cb('0x31')]};});_0x1211e9[_0xb0cb('0x32')]=_[_0xb0cb('0x33')](_0x9f34e4,_0xb0cb('0x2b'));_0x1211e9[_0xb0cb('0x34')]=_['keys'](_0x455632['query']);_0x1211e9['filters']=_[_0xb0cb('0x35')](_0x1211e9['model'],_0x1211e9[_0xb0cb('0x34')]);_0x1ccd21[_0xb0cb('0x36')]=_[_0xb0cb('0x35')](_0x1211e9[_0xb0cb('0x32')],qs['fields'](_0x455632[_0xb0cb('0x34')][_0xb0cb('0x37')]));_0x1ccd21[_0xb0cb('0x36')]=_0x1ccd21[_0xb0cb('0x36')][_0xb0cb('0x38')]?_0x1ccd21[_0xb0cb('0x36')]:_0x1211e9[_0xb0cb('0x32')];if(!_0x455632[_0xb0cb('0x34')][_0xb0cb('0x39')]('nolimit')){_0x1ccd21[_0xb0cb('0x20')]=qs[_0xb0cb('0x20')](_0x455632[_0xb0cb('0x34')][_0xb0cb('0x20')]);_0x1ccd21[_0xb0cb('0x1f')]=qs[_0xb0cb('0x1f')](_0x455632[_0xb0cb('0x34')]['offset']);}_0x1ccd21[_0xb0cb('0x3a')]=qs[_0xb0cb('0x3b')](_0x455632[_0xb0cb('0x34')][_0xb0cb('0x3b')]);_0x1ccd21['where']=qs['filters'](_[_0xb0cb('0x3c')](_0x455632[_0xb0cb('0x34')],_0x1211e9[_0xb0cb('0x3d')]),_0x9f34e4);if(_0x455632['query'][_0xb0cb('0x3e')]){_0x1ccd21[_0xb0cb('0x3f')]=_['merge'](_0x1ccd21[_0xb0cb('0x3f')],{'$or':[{'key':{'$like':'%'+_0x455632['query'][_0xb0cb('0x3e')]+'%'}},{'value':{'$like':'%'+_0x455632[_0xb0cb('0x34')][_0xb0cb('0x3e')]+'%'}}]});}_0x1ccd21=_[_0xb0cb('0x40')]({},_0x1ccd21,_0x455632[_0xb0cb('0x41')]);var _0x4e2827={'where':_0x1ccd21[_0xb0cb('0x3f')]};return db[_0xb0cb('0x2d')][_0xb0cb('0x42')](_0x4e2827)[_0xb0cb('0x27')](function(_0x143b51){_0x49f8bf[_0xb0cb('0x42')]=_0x143b51;if(_0x455632[_0xb0cb('0x34')][_0xb0cb('0x43')]){_0x1ccd21[_0xb0cb('0x44')]=[{'all':!![]}];}return db['CannedAnswer'][_0xb0cb('0x45')](_0x1ccd21);})[_0xb0cb('0x27')](function(_0x5ed84a){_0x49f8bf[_0xb0cb('0x46')]=_0x5ed84a;return _0x49f8bf;})['then'](respondWithFilteredResult(_0x13ec92,_0x1ccd21))[_0xb0cb('0x47')](handleError(_0x13ec92,null));};exports['show']=function(_0x38e8c3,_0x51b1f0){var _0x417934={'raw':!![],'where':{'id':_0x38e8c3[_0xb0cb('0x48')]['id']}},_0x1b0a71={};_0x1b0a71[_0xb0cb('0x32')]=_[_0xb0cb('0x49')](db[_0xb0cb('0x2d')][_0xb0cb('0x2e')]);_0x1b0a71[_0xb0cb('0x34')]=_['keys'](_0x38e8c3['query']);_0x1b0a71[_0xb0cb('0x3d')]=_[_0xb0cb('0x35')](_0x1b0a71['model'],_0x1b0a71['query']);_0x417934[_0xb0cb('0x36')]=_[_0xb0cb('0x35')](_0x1b0a71[_0xb0cb('0x32')],qs[_0xb0cb('0x37')](_0x38e8c3[_0xb0cb('0x34')]['fields']));_0x417934[_0xb0cb('0x36')]=_0x417934[_0xb0cb('0x36')][_0xb0cb('0x38')]?_0x417934[_0xb0cb('0x36')]:_0x1b0a71[_0xb0cb('0x32')];if(_0x38e8c3[_0xb0cb('0x34')][_0xb0cb('0x43')]){_0x417934[_0xb0cb('0x44')]=[{'all':!![]}];}_0x417934=_[_0xb0cb('0x40')]({},_0x417934,_0x38e8c3[_0xb0cb('0x41')]);return db[_0xb0cb('0x2d')][_0xb0cb('0x4a')](_0x417934)[_0xb0cb('0x27')](handleEntityNotFound(_0x51b1f0,null))[_0xb0cb('0x27')](respondWithResult(_0x51b1f0,null))['catch'](handleError(_0x51b1f0,null));};exports[_0xb0cb('0x26')]=function(_0x205781,_0x5eaf7f){if(_0x205781[_0xb0cb('0x4b')]['id']){delete _0x205781[_0xb0cb('0x4b')]['id'];}return db['CannedAnswer'][_0xb0cb('0x4a')]({'where':{'id':_0x205781[_0xb0cb('0x48')]['id']}})[_0xb0cb('0x27')](handleEntityNotFound(_0x5eaf7f,null))['then'](saveUpdates(_0x205781[_0xb0cb('0x4b')],null))[_0xb0cb('0x27')](respondWithResult(_0x5eaf7f,null))[_0xb0cb('0x47')](handleError(_0x5eaf7f,null));};exports[_0xb0cb('0x4c')]=function(_0x590b13,_0x294932){return db['CannedAnswer'][_0xb0cb('0x4a')]({'where':{'id':_0x590b13['params']['id']}})[_0xb0cb('0x27')](handleEntityNotFound(_0x294932,null))[_0xb0cb('0x27')](removeEntity(_0x294932,null))[_0xb0cb('0x47')](handleError(_0x294932,null));};exports[_0xb0cb('0x4d')]=function(_0x4f5533,_0x25f4a5){var _0x4402a7={'key':_0x4f5533[_0xb0cb('0x4b')][_0xb0cb('0x31')]};if(_0x4f5533[_0xb0cb('0x4b')][_0xb0cb('0x4e')]){_0x4402a7[_0xb0cb('0x4e')]=_0x4f5533['body'][_0xb0cb('0x4e')];}else if(_0x4f5533[_0xb0cb('0x4b')][_0xb0cb('0x4f')]){_0x4402a7['SmsAccountId']=_0x4f5533[_0xb0cb('0x4b')][_0xb0cb('0x4f')];}else if(_0x4f5533[_0xb0cb('0x4b')]['OpenchannelAccountId']){_0x4402a7[_0xb0cb('0x50')]=_0x4f5533[_0xb0cb('0x4b')][_0xb0cb('0x50')];}else if(_0x4f5533[_0xb0cb('0x4b')][_0xb0cb('0x51')]){_0x4402a7[_0xb0cb('0x51')]=_0x4f5533[_0xb0cb('0x4b')]['ChatWebsiteId'];}return db[_0xb0cb('0x2d')]['find']({'where':_0x4402a7})[_0xb0cb('0x27')](function(_0x171ce9){if(_0x171ce9){throw new db[(_0xb0cb('0x52'))]['ValidationError']('The\x20inserted\x20key\x20already\x20exists.');}return db[_0xb0cb('0x2d')][_0xb0cb('0x4d')](_0x4f5533[_0xb0cb('0x4b')]);})[_0xb0cb('0x27')](function(_0x3d5688){var _0x295380=_0x4f5533[_0xb0cb('0x53')]['get']({'plain':!![]});if(!_0x295380)throw new Error(_0xb0cb('0x54'));if(_0x295380[_0xb0cb('0x55')]===_0xb0cb('0x53')){var _0x458045=_0x3d5688[_0xb0cb('0x56')]({'plain':!![]});return db[_0xb0cb('0x57')][_0xb0cb('0x4a')]({'where':{'name':_0xb0cb('0x58'),'userProfileId':_0x295380[_0xb0cb('0x59')]},'raw':!![]})[_0xb0cb('0x27')](function(_0x2194ba){if(_0x2194ba&&_0x2194ba['autoAssociation']===0x0){return db[_0xb0cb('0x28')][_0xb0cb('0x4d')]({'name':_0x458045[_0xb0cb('0x2b')],'resourceId':_0x458045['id'],'type':_0x2194ba['name'],'sectionId':_0x2194ba['id']},{})[_0xb0cb('0x27')](function(){return _0x3d5688;});}else{return _0x3d5688;}})[_0xb0cb('0x47')](function(_0x34360c){logger[_0xb0cb('0x29')](_0xb0cb('0x5a'),_0x34360c);throw _0x34360c;});}return _0x3d5688;})[_0xb0cb('0x27')](respondWithResult(_0x25f4a5,0xc9))[_0xb0cb('0x47')](handleError(_0x25f4a5,null));};