da8a2d5ab106d219b0b5f068367f9c044be28fc3
[motion2.git] / server / api / UserChatInteraction / UserChatInteraction.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 _0x0c19=['eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','then','UserProfileResource','error','stack','name','send','index','map','UserChatInteraction','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','merge','options','includeAll','include','findAll','catch','show','keys','find','create','body','user','get','role','UserChatInteractions','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','html-pdf'];(function(_0x412572,_0x37e9e2){var _0x20881f=function(_0x58e4d2){while(--_0x58e4d2){_0x412572['push'](_0x412572['shift']());}};_0x20881f(++_0x37e9e2);}(_0x0c19,0xf5));var _0x90c1=function(_0x353774,_0x467ba5){_0x353774=_0x353774-0x0;var _0x3c97cf=_0x0c19[_0x353774];return _0x3c97cf;};'use strict';var pdf=require(_0x90c1('0x0'));var emlformat=require(_0x90c1('0x1'));var rimraf=require(_0x90c1('0x2'));var zipdir=require(_0x90c1('0x3'));var jsonpatch=require(_0x90c1('0x4'));var rp=require(_0x90c1('0x5'));var moment=require('moment');var BPromise=require(_0x90c1('0x6'));var Mustache=require(_0x90c1('0x7'));var util=require(_0x90c1('0x8'));var path=require('path');var sox=require(_0x90c1('0x9'));var csv=require(_0x90c1('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x90c1('0xb'));var squel=require(_0x90c1('0xc'));var crypto=require(_0x90c1('0xd'));var jsforce=require(_0x90c1('0xe'));var deskjs=require(_0x90c1('0xf'));var toCsv=require(_0x90c1('0xa'));var querystring=require(_0x90c1('0x10'));var Papa=require('papaparse');var Redis=require(_0x90c1('0x11'));var authService=require(_0x90c1('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x90c1('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x90c1('0x14'));var utils=require('../../config/utils');var config=require(_0x90c1('0x15'));var licenseUtil=require(_0x90c1('0x16'));var db=require(_0x90c1('0x17'))['db'];function respondWithStatusCode(_0x2d9964,_0x4aa112){_0x4aa112=_0x4aa112||0xcc;return function(_0x59a0ca){if(_0x59a0ca){return _0x2d9964[_0x90c1('0x18')](_0x4aa112);}return _0x2d9964[_0x90c1('0x19')](_0x4aa112)[_0x90c1('0x1a')]();};}function respondWithResult(_0x3a8b82,_0x52a659){_0x52a659=_0x52a659||0xc8;return function(_0xaaab35){if(_0xaaab35){return _0x3a8b82[_0x90c1('0x19')](_0x52a659)[_0x90c1('0x1b')](_0xaaab35);}};}function respondWithFilteredResult(_0x139c67,_0x38fcea){return function(_0x1cfb86){if(_0x1cfb86){var _0x4f77bf=_0x1cfb86[_0x90c1('0x1c')],_0x39dc3c=_0x38fcea[_0x90c1('0x1d')],_0x387b94=_0x38fcea[_0x90c1('0x1d')]+_0x38fcea[_0x90c1('0x1e')],_0x45a64c;if(_0x387b94>=_0x4f77bf){_0x387b94=_0x4f77bf;_0x45a64c=0xc8;}else{_0x45a64c=0xce;}_0x139c67[_0x90c1('0x19')](_0x45a64c);return _0x139c67[_0x90c1('0x1f')](_0x90c1('0x20'),_0x39dc3c+'-'+_0x387b94+'/'+_0x4f77bf)[_0x90c1('0x1b')](_0x1cfb86);}return null;};}function patchUpdates(_0x5ddafe){return function(_0x302ca2){try{jsonpatch[_0x90c1('0x21')](_0x302ca2,_0x5ddafe,!![]);}catch(_0x37e21b){return BPromise[_0x90c1('0x22')](_0x37e21b);}return _0x302ca2[_0x90c1('0x23')]();};}function saveUpdates(_0x3c8cc6,_0x5a8358){return function(_0x412d9f){if(_0x412d9f){return _0x412d9f['update'](_0x3c8cc6)[_0x90c1('0x24')](function(_0x490182){return _0x490182;});}return null;};}function removeEntity(_0x4b0480,_0x18323c){return function(_0x512cd9){if(_0x512cd9){return _0x512cd9['destroy']()[_0x90c1('0x24')](function(){var _0x5f4c05=_0x512cd9['get']({'plain':!![]});var _0x36fe37='UserChatInteractions';return db[_0x90c1('0x25')]['destroy']({'where':{'type':_0x36fe37,'resourceId':_0x5f4c05['id']}})[_0x90c1('0x24')](function(){return _0x512cd9;});})[_0x90c1('0x24')](function(){_0x4b0480[_0x90c1('0x19')](0xcc)[_0x90c1('0x1a')]();});}};}function handleEntityNotFound(_0x174506,_0x3902c8){return function(_0x2a60fb){if(!_0x2a60fb){_0x174506['sendStatus'](0x194);}return _0x2a60fb;};}function handleError(_0x26ee39,_0x163939){_0x163939=_0x163939||0x1f4;return function(_0x18d8ab){logger[_0x90c1('0x26')](_0x18d8ab[_0x90c1('0x27')]);if(_0x18d8ab[_0x90c1('0x28')]){delete _0x18d8ab[_0x90c1('0x28')];}_0x26ee39[_0x90c1('0x19')](_0x163939)[_0x90c1('0x29')](_0x18d8ab);};}exports[_0x90c1('0x2a')]=function(_0x17b923,_0x2f85dc){var _0x46c65b={},_0x39f856={},_0x36ee47={'count':0x0,'rows':[]};var _0x4a5f29=_[_0x90c1('0x2b')](db[_0x90c1('0x2c')][_0x90c1('0x2d')],function(_0x5be73c){return{'name':_0x5be73c[_0x90c1('0x2e')],'type':_0x5be73c[_0x90c1('0x2f')][_0x90c1('0x30')]};});_0x39f856[_0x90c1('0x31')]=_[_0x90c1('0x2b')](_0x4a5f29,_0x90c1('0x28'));_0x39f856[_0x90c1('0x32')]=_['keys'](_0x17b923[_0x90c1('0x32')]);_0x39f856[_0x90c1('0x33')]=_[_0x90c1('0x34')](_0x39f856['model'],_0x39f856[_0x90c1('0x32')]);_0x46c65b[_0x90c1('0x35')]=_[_0x90c1('0x34')](_0x39f856[_0x90c1('0x31')],qs[_0x90c1('0x36')](_0x17b923[_0x90c1('0x32')][_0x90c1('0x36')]));_0x46c65b[_0x90c1('0x35')]=_0x46c65b[_0x90c1('0x35')][_0x90c1('0x37')]?_0x46c65b[_0x90c1('0x35')]:_0x39f856[_0x90c1('0x31')];if(!_0x17b923[_0x90c1('0x32')][_0x90c1('0x38')]('nolimit')){_0x46c65b[_0x90c1('0x1e')]=qs[_0x90c1('0x1e')](_0x17b923[_0x90c1('0x32')][_0x90c1('0x1e')]);_0x46c65b['offset']=qs['offset'](_0x17b923[_0x90c1('0x32')][_0x90c1('0x1d')]);}_0x46c65b[_0x90c1('0x39')]=qs[_0x90c1('0x3a')](_0x17b923['query']['sort']);_0x46c65b[_0x90c1('0x3b')]=qs[_0x90c1('0x33')](_[_0x90c1('0x3c')](_0x17b923[_0x90c1('0x32')],_0x39f856[_0x90c1('0x33')]),_0x4a5f29);if(_0x17b923['query']['filter']){_0x46c65b['where']=_[_0x90c1('0x3d')](_0x46c65b[_0x90c1('0x3b')],{'$or':_[_0x90c1('0x2b')](_0x4a5f29,function(_0x4e1dc5){if(_0x4e1dc5[_0x90c1('0x2f')]!=='VIRTUAL'){var _0x5cc23f={};_0x5cc23f[_0x4e1dc5[_0x90c1('0x28')]]={'$like':'%'+_0x17b923[_0x90c1('0x32')]['filter']+'%'};return _0x5cc23f;}})});}_0x46c65b=_[_0x90c1('0x3d')]({},_0x46c65b,_0x17b923[_0x90c1('0x3e')]);var _0x916ce1={'where':_0x46c65b[_0x90c1('0x3b')]};return db[_0x90c1('0x2c')][_0x90c1('0x1c')](_0x916ce1)['then'](function(_0x3fb4ed){_0x36ee47['count']=_0x3fb4ed;if(_0x17b923[_0x90c1('0x32')][_0x90c1('0x3f')]){_0x46c65b[_0x90c1('0x40')]=[{'all':!![]}];}return db[_0x90c1('0x2c')][_0x90c1('0x41')](_0x46c65b);})[_0x90c1('0x24')](function(_0x31c6a0){_0x36ee47['rows']=_0x31c6a0;return _0x36ee47;})['then'](respondWithFilteredResult(_0x2f85dc,_0x46c65b))[_0x90c1('0x42')](handleError(_0x2f85dc,null));};exports[_0x90c1('0x43')]=function(_0x1699a1,_0x4175d1){var _0x30545a={'raw':!![],'where':{'id':_0x1699a1['params']['id']}},_0x4ad106={};_0x4ad106[_0x90c1('0x31')]=_[_0x90c1('0x44')](db['UserChatInteraction'][_0x90c1('0x2d')]);_0x4ad106['query']=_['keys'](_0x1699a1[_0x90c1('0x32')]);_0x4ad106['filters']=_[_0x90c1('0x34')](_0x4ad106['model'],_0x4ad106['query']);_0x30545a[_0x90c1('0x35')]=_[_0x90c1('0x34')](_0x4ad106[_0x90c1('0x31')],qs[_0x90c1('0x36')](_0x1699a1['query'][_0x90c1('0x36')]));_0x30545a[_0x90c1('0x35')]=_0x30545a[_0x90c1('0x35')][_0x90c1('0x37')]?_0x30545a['attributes']:_0x4ad106[_0x90c1('0x31')];if(_0x1699a1[_0x90c1('0x32')]['includeAll']){_0x30545a[_0x90c1('0x40')]=[{'all':!![]}];}_0x30545a=_[_0x90c1('0x3d')]({},_0x30545a,_0x1699a1[_0x90c1('0x3e')]);return db[_0x90c1('0x2c')][_0x90c1('0x45')](_0x30545a)['then'](handleEntityNotFound(_0x4175d1,null))[_0x90c1('0x24')](respondWithResult(_0x4175d1,null))['catch'](handleError(_0x4175d1,null));};exports[_0x90c1('0x46')]=function(_0x4dfe8b,_0x44e29d){return db[_0x90c1('0x2c')][_0x90c1('0x46')](_0x4dfe8b[_0x90c1('0x47')],{})[_0x90c1('0x24')](function(_0x3aa812){var _0x1d00e4=_0x4dfe8b[_0x90c1('0x48')][_0x90c1('0x49')]({'plain':!![]});if(!_0x1d00e4)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1d00e4[_0x90c1('0x4a')]==='user'){var _0x2bb75a=_0x3aa812[_0x90c1('0x49')]({'plain':!![]});var _0x36addd=_0x90c1('0x4b');return db[_0x90c1('0x4c')][_0x90c1('0x45')]({'where':{'name':_0x36addd,'userProfileId':_0x1d00e4[_0x90c1('0x4d')]},'raw':!![]})[_0x90c1('0x24')](function(_0xa117d1){if(_0xa117d1&&_0xa117d1[_0x90c1('0x4e')]===0x0){return db[_0x90c1('0x25')]['create']({'name':_0x2bb75a[_0x90c1('0x28')],'resourceId':_0x2bb75a['id'],'type':_0xa117d1[_0x90c1('0x28')],'sectionId':_0xa117d1['id']},{})[_0x90c1('0x24')](function(){return _0x3aa812;});}else{return _0x3aa812;}})['catch'](function(_0x34a7b6){logger[_0x90c1('0x26')](_0x90c1('0x4f'),_0x34a7b6);throw _0x34a7b6;});}return _0x3aa812;})['then'](respondWithResult(_0x44e29d,0xc9))['catch'](handleError(_0x44e29d,null));};exports[_0x90c1('0x50')]=function(_0x1d5723,_0x5a4940){if(_0x1d5723[_0x90c1('0x47')]['id']){delete _0x1d5723['body']['id'];}return db['UserChatInteraction']['find']({'where':{'id':_0x1d5723[_0x90c1('0x51')]['id']}})['then'](handleEntityNotFound(_0x5a4940,null))[_0x90c1('0x24')](saveUpdates(_0x1d5723[_0x90c1('0x47')],null))[_0x90c1('0x24')](respondWithResult(_0x5a4940,null))[_0x90c1('0x42')](handleError(_0x5a4940,null));};exports['destroy']=function(_0x53d98f,_0x1f339f){return db[_0x90c1('0x2c')][_0x90c1('0x45')]({'where':{'id':_0x53d98f[_0x90c1('0x51')]['id']}})['then'](handleEntityNotFound(_0x1f339f,null))['then'](removeEntity(_0x1f339f,null))[_0x90c1('0x42')](handleError(_0x1f339f,null));};