29845defe8c1fc92daa4428e54e8ecbc2d822de2
[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 _0x1384=['limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','CannedAnswers','error','stack','name','send','index','map','CannedAnswer','rawAttributes','type','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','includeAll','include','findAll','show','length','catch','body','find','params','key','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','create','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../mysqldb','sendStatus','status','end','json','offset','undefined'];(function(_0x37abf1,_0x3eac42){var _0x588f75=function(_0x206387){while(--_0x206387){_0x37abf1['push'](_0x37abf1['shift']());}};_0x588f75(++_0x3eac42);}(_0x1384,0x1ee));var _0x4138=function(_0xa4ca1,_0x4a0f60){_0xa4ca1=_0xa4ca1-0x0;var _0xf1b88b=_0x1384[_0xa4ca1];return _0xf1b88b;};'use strict';var emlformat=require(_0x4138('0x0'));var rimraf=require(_0x4138('0x1'));var zipdir=require(_0x4138('0x2'));var jsonpatch=require(_0x4138('0x3'));var rp=require('request-promise');var moment=require(_0x4138('0x4'));var BPromise=require(_0x4138('0x5'));var Mustache=require(_0x4138('0x6'));var util=require('util');var path=require(_0x4138('0x7'));var sox=require(_0x4138('0x8'));var csv=require(_0x4138('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4138('0xa'));var squel=require(_0x4138('0xb'));var crypto=require(_0x4138('0xc'));var jsforce=require(_0x4138('0xd'));var deskjs=require(_0x4138('0xe'));var toCsv=require(_0x4138('0x9'));var querystring=require(_0x4138('0xf'));var Papa=require(_0x4138('0x10'));var Redis=require('ioredis');var authService=require(_0x4138('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x4138('0x12'));var hardwareService=require(_0x4138('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0x4138('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x4138('0x15'))['db'];function respondWithStatusCode(_0x5d4db1,_0x7a9085){_0x7a9085=_0x7a9085||0xcc;return function(_0x134964){if(_0x134964){return _0x5d4db1[_0x4138('0x16')](_0x7a9085);}return _0x5d4db1[_0x4138('0x17')](_0x7a9085)[_0x4138('0x18')]();};}function respondWithResult(_0x2df9b4,_0x447c6f){_0x447c6f=_0x447c6f||0xc8;return function(_0x531c69){if(_0x531c69){return _0x2df9b4[_0x4138('0x17')](_0x447c6f)[_0x4138('0x19')](_0x531c69);}};}function respondWithFilteredResult(_0x1ae8af,_0xa35427){return function(_0x32ea64){if(_0x32ea64){var _0x2818c0=typeof _0xa35427[_0x4138('0x1a')]===_0x4138('0x1b')&&typeof _0xa35427[_0x4138('0x1c')]===_0x4138('0x1b');var _0x3a54f7=_0x32ea64[_0x4138('0x1d')];var _0x7c736c=_0x2818c0?0x0:_0xa35427[_0x4138('0x1a')];var _0x1db267=_0x2818c0?_0x32ea64[_0x4138('0x1d')]:_0xa35427[_0x4138('0x1a')]+_0xa35427['limit'];var _0x5b00c6;if(_0x1db267>=_0x3a54f7){_0x1db267=_0x3a54f7;_0x5b00c6=0xc8;}else{_0x5b00c6=0xce;}_0x1ae8af[_0x4138('0x17')](_0x5b00c6);return _0x1ae8af[_0x4138('0x1e')](_0x4138('0x1f'),_0x7c736c+'-'+_0x1db267+'/'+_0x3a54f7)[_0x4138('0x19')](_0x32ea64);}return null;};}function patchUpdates(_0x5c75f6){return function(_0x13bd03){try{jsonpatch[_0x4138('0x20')](_0x13bd03,_0x5c75f6,!![]);}catch(_0x1761c0){return BPromise[_0x4138('0x21')](_0x1761c0);}return _0x13bd03[_0x4138('0x22')]();};}function saveUpdates(_0x5ef81f,_0x996f51){return function(_0x8ceeb1){if(_0x8ceeb1){return _0x8ceeb1[_0x4138('0x23')](_0x5ef81f)[_0x4138('0x24')](function(_0xeb5e72){return _0xeb5e72;});}return null;};}function removeEntity(_0x5e5444,_0x412c3e){return function(_0x2100d2){if(_0x2100d2){return _0x2100d2[_0x4138('0x25')]()['then'](function(){var _0x4590d6=_0x2100d2[_0x4138('0x26')]({'plain':!![]});var _0x5a912a=_0x4138('0x27');return db['UserProfileResource']['destroy']({'where':{'type':_0x5a912a,'resourceId':_0x4590d6['id']}})[_0x4138('0x24')](function(){return _0x2100d2;});})[_0x4138('0x24')](function(){_0x5e5444['status'](0xcc)[_0x4138('0x18')]();});}};}function handleEntityNotFound(_0x45a7a4,_0x36075e){return function(_0x421c66){if(!_0x421c66){_0x45a7a4['sendStatus'](0x194);}return _0x421c66;};}function handleError(_0x5ed19c,_0x44ee07){_0x44ee07=_0x44ee07||0x1f4;return function(_0x51c92a){logger[_0x4138('0x28')](_0x51c92a[_0x4138('0x29')]);if(_0x51c92a['name']){delete _0x51c92a[_0x4138('0x2a')];}_0x5ed19c[_0x4138('0x17')](_0x44ee07)[_0x4138('0x2b')](_0x51c92a);};}exports[_0x4138('0x2c')]=function(_0x42e84c,_0x56465b){var _0x409e4c={},_0x56f4f5={},_0x205fd9={'count':0x0,'rows':[]};var _0x254bbc=_[_0x4138('0x2d')](db[_0x4138('0x2e')][_0x4138('0x2f')],function(_0x1731ef){return{'name':_0x1731ef['fieldName'],'type':_0x1731ef[_0x4138('0x30')]['key']};});_0x56f4f5['model']=_['map'](_0x254bbc,_0x4138('0x2a'));_0x56f4f5[_0x4138('0x31')]=_[_0x4138('0x32')](_0x42e84c['query']);_0x56f4f5[_0x4138('0x33')]=_[_0x4138('0x34')](_0x56f4f5[_0x4138('0x35')],_0x56f4f5[_0x4138('0x31')]);_0x409e4c[_0x4138('0x36')]=_[_0x4138('0x34')](_0x56f4f5[_0x4138('0x35')],qs[_0x4138('0x37')](_0x42e84c[_0x4138('0x31')][_0x4138('0x37')]));_0x409e4c[_0x4138('0x36')]=_0x409e4c['attributes']['length']?_0x409e4c['attributes']:_0x56f4f5[_0x4138('0x35')];if(!_0x42e84c['query'][_0x4138('0x38')](_0x4138('0x39'))){_0x409e4c[_0x4138('0x1c')]=qs[_0x4138('0x1c')](_0x42e84c[_0x4138('0x31')][_0x4138('0x1c')]);_0x409e4c[_0x4138('0x1a')]=qs['offset'](_0x42e84c[_0x4138('0x31')][_0x4138('0x1a')]);}_0x409e4c[_0x4138('0x3a')]=qs[_0x4138('0x3b')](_0x42e84c[_0x4138('0x31')][_0x4138('0x3b')]);_0x409e4c['where']=qs[_0x4138('0x33')](_[_0x4138('0x3c')](_0x42e84c[_0x4138('0x31')],_0x56f4f5[_0x4138('0x33')]),_0x254bbc);if(_0x42e84c[_0x4138('0x31')][_0x4138('0x3d')]){_0x409e4c[_0x4138('0x3e')]=_[_0x4138('0x3f')](_0x409e4c['where'],{'$or':[{'key':{'$like':'%'+_0x42e84c[_0x4138('0x31')][_0x4138('0x3d')]+'%'}},{'value':{'$like':'%'+_0x42e84c['query']['filter']+'%'}}]});}_0x409e4c=_['merge']({},_0x409e4c,_0x42e84c['options']);var _0x889fb1={'where':_0x409e4c['where']};return db['CannedAnswer']['count'](_0x889fb1)['then'](function(_0x5aa822){_0x205fd9[_0x4138('0x1d')]=_0x5aa822;if(_0x42e84c[_0x4138('0x31')][_0x4138('0x40')]){_0x409e4c[_0x4138('0x41')]=[{'all':!![]}];}return db[_0x4138('0x2e')][_0x4138('0x42')](_0x409e4c);})[_0x4138('0x24')](function(_0x37aac1){_0x205fd9['rows']=_0x37aac1;return _0x205fd9;})[_0x4138('0x24')](respondWithFilteredResult(_0x56465b,_0x409e4c))['catch'](handleError(_0x56465b,null));};exports[_0x4138('0x43')]=function(_0x5b5e18,_0x5d4b33){var _0x4b2ce0={'raw':!![],'where':{'id':_0x5b5e18['params']['id']}},_0x59a576={};_0x59a576[_0x4138('0x35')]=_[_0x4138('0x32')](db[_0x4138('0x2e')][_0x4138('0x2f')]);_0x59a576[_0x4138('0x31')]=_[_0x4138('0x32')](_0x5b5e18[_0x4138('0x31')]);_0x59a576[_0x4138('0x33')]=_[_0x4138('0x34')](_0x59a576[_0x4138('0x35')],_0x59a576['query']);_0x4b2ce0[_0x4138('0x36')]=_[_0x4138('0x34')](_0x59a576['model'],qs['fields'](_0x5b5e18[_0x4138('0x31')][_0x4138('0x37')]));_0x4b2ce0['attributes']=_0x4b2ce0[_0x4138('0x36')][_0x4138('0x44')]?_0x4b2ce0[_0x4138('0x36')]:_0x59a576[_0x4138('0x35')];if(_0x5b5e18[_0x4138('0x31')][_0x4138('0x40')]){_0x4b2ce0[_0x4138('0x41')]=[{'all':!![]}];}_0x4b2ce0=_[_0x4138('0x3f')]({},_0x4b2ce0,_0x5b5e18['options']);return db[_0x4138('0x2e')]['find'](_0x4b2ce0)[_0x4138('0x24')](handleEntityNotFound(_0x5d4b33,null))[_0x4138('0x24')](respondWithResult(_0x5d4b33,null))[_0x4138('0x45')](handleError(_0x5d4b33,null));};exports[_0x4138('0x23')]=function(_0x215e15,_0x316fe9){if(_0x215e15[_0x4138('0x46')]['id']){delete _0x215e15[_0x4138('0x46')]['id'];}return db[_0x4138('0x2e')][_0x4138('0x47')]({'where':{'id':_0x215e15[_0x4138('0x48')]['id']}})[_0x4138('0x24')](handleEntityNotFound(_0x316fe9,null))[_0x4138('0x24')](saveUpdates(_0x215e15[_0x4138('0x46')],null))['then'](respondWithResult(_0x316fe9,null))[_0x4138('0x45')](handleError(_0x316fe9,null));};exports[_0x4138('0x25')]=function(_0x5b18ed,_0x2582f4){return db['CannedAnswer']['find']({'where':{'id':_0x5b18ed[_0x4138('0x48')]['id']}})['then'](handleEntityNotFound(_0x2582f4,null))[_0x4138('0x24')](removeEntity(_0x2582f4,null))[_0x4138('0x45')](handleError(_0x2582f4,null));};exports['create']=function(_0x3b9d7f,_0x46e994){var _0x541990={'key':_0x3b9d7f['body'][_0x4138('0x49')]};if(_0x3b9d7f['body'][_0x4138('0x4a')]){_0x541990['MailAccountId']=_0x3b9d7f[_0x4138('0x46')][_0x4138('0x4a')];}else if(_0x3b9d7f['body']['SmsAccountId']){_0x541990[_0x4138('0x4b')]=_0x3b9d7f['body'][_0x4138('0x4b')];}else if(_0x3b9d7f[_0x4138('0x46')][_0x4138('0x4c')]){_0x541990[_0x4138('0x4c')]=_0x3b9d7f[_0x4138('0x46')]['OpenchannelAccountId'];}else if(_0x3b9d7f[_0x4138('0x46')][_0x4138('0x4d')]){_0x541990['ChatWebsiteId']=_0x3b9d7f[_0x4138('0x46')][_0x4138('0x4d')];}return db[_0x4138('0x2e')]['find']({'where':_0x541990})[_0x4138('0x24')](function(_0x4c32b1){if(_0x4c32b1){throw new db['Sequelize']['ValidationError'](_0x4138('0x4e'));}return db[_0x4138('0x2e')]['create'](_0x3b9d7f[_0x4138('0x46')]);})[_0x4138('0x24')](function(_0x247e4d){var _0x402b02=_0x3b9d7f[_0x4138('0x4f')][_0x4138('0x26')]({'plain':!![]});if(!_0x402b02)throw new Error(_0x4138('0x50'));if(_0x402b02[_0x4138('0x51')]===_0x4138('0x4f')){var _0x39a13c=_0x247e4d['get']({'plain':!![]});return db[_0x4138('0x52')]['find']({'where':{'name':_0x4138('0x27'),'userProfileId':_0x402b02[_0x4138('0x53')]},'raw':!![]})['then'](function(_0x4935b2){if(_0x4935b2&&_0x4935b2[_0x4138('0x54')]===0x0){return db[_0x4138('0x55')][_0x4138('0x56')]({'name':_0x39a13c[_0x4138('0x2a')],'resourceId':_0x39a13c['id'],'type':_0x4935b2['name'],'sectionId':_0x4935b2['id']},{})[_0x4138('0x24')](function(){return _0x247e4d;});}else{return _0x247e4d;}})[_0x4138('0x45')](function(_0x3c8e85){logger[_0x4138('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3c8e85);throw _0x3c8e85;});}return _0x247e4d;})['then'](respondWithResult(_0x46e994,0xc9))[_0x4138('0x45')](handleError(_0x46e994,null));};