752a39e8a998a952c2ac33a66b8f95174321b906
[motion2.git] / server / api / jscriptySessionReport / jscriptySessionReport.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 _0x3d47=['attributes','fields','length','nolimit','sort','where','filter','type','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','create','body','update','find','describe','getQuestions','findOne','JscriptyQuestionReport','hasOwnProperty','order','pick','SessionId','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','apply','reject','save','then','destroy','stack','name','send','index','map','JscriptySessionReport','rawAttributes','fieldName','key','model','query','keys','filters','intersection'];(function(_0x16051a,_0x5e4326){var _0x35d20d=function(_0x52b02e){while(--_0x52b02e){_0x16051a['push'](_0x16051a['shift']());}};_0x35d20d(++_0x5e4326);}(_0x3d47,0xc4));var _0x73d4=function(_0x175734,_0x326882){_0x175734=_0x175734-0x0;var _0x37170e=_0x3d47[_0x175734];return _0x37170e;};'use strict';var emlformat=require(_0x73d4('0x0'));var rimraf=require(_0x73d4('0x1'));var zipdir=require(_0x73d4('0x2'));var jsonpatch=require(_0x73d4('0x3'));var rp=require(_0x73d4('0x4'));var moment=require(_0x73d4('0x5'));var BPromise=require(_0x73d4('0x6'));var Mustache=require(_0x73d4('0x7'));var util=require(_0x73d4('0x8'));var path=require(_0x73d4('0x9'));var sox=require(_0x73d4('0xa'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x73d4('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x73d4('0xc'));var jsforce=require(_0x73d4('0xd'));var deskjs=require(_0x73d4('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x73d4('0xf'));var authService=require(_0x73d4('0x10'));var qs=require(_0x73d4('0x11'));var as=require(_0x73d4('0x12'));var hardwareService=require(_0x73d4('0x13'));var logger=require(_0x73d4('0x14'))(_0x73d4('0x15'));var utils=require(_0x73d4('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x73d4('0x17'));var db=require(_0x73d4('0x18'))['db'];function respondWithStatusCode(_0x57425a,_0x25eaae){_0x25eaae=_0x25eaae||0xcc;return function(_0x34e3b3){if(_0x34e3b3){return _0x57425a[_0x73d4('0x19')](_0x25eaae);}return _0x57425a['status'](_0x25eaae)[_0x73d4('0x1a')]();};}function respondWithResult(_0x5d8dd0,_0x1aa187){_0x1aa187=_0x1aa187||0xc8;return function(_0x35d105){if(_0x35d105){return _0x5d8dd0[_0x73d4('0x1b')](_0x1aa187)[_0x73d4('0x1c')](_0x35d105);}};}function respondWithFilteredResult(_0x26d641,_0x605259){return function(_0x2fa083){if(_0x2fa083){var _0x511046=typeof _0x605259[_0x73d4('0x1d')]===_0x73d4('0x1e')&&typeof _0x605259[_0x73d4('0x1f')]===_0x73d4('0x1e');var _0x57b38b=_0x2fa083[_0x73d4('0x20')];var _0x547885=_0x511046?0x0:_0x605259[_0x73d4('0x1d')];var _0x4cfe46=_0x511046?_0x2fa083['count']:_0x605259[_0x73d4('0x1d')]+_0x605259['limit'];var _0x70f466;if(_0x4cfe46>=_0x57b38b){_0x4cfe46=_0x57b38b;_0x70f466=0xc8;}else{_0x70f466=0xce;}_0x26d641[_0x73d4('0x1b')](_0x70f466);return _0x26d641[_0x73d4('0x21')]('Content-Range',_0x547885+'-'+_0x4cfe46+'/'+_0x57b38b)[_0x73d4('0x1c')](_0x2fa083);}return null;};}function patchUpdates(_0x54d116){return function(_0x22f82d){try{jsonpatch[_0x73d4('0x22')](_0x22f82d,_0x54d116,!![]);}catch(_0x20b69d){return BPromise[_0x73d4('0x23')](_0x20b69d);}return _0x22f82d[_0x73d4('0x24')]();};}function saveUpdates(_0x16ae34,_0x3e1d13){return function(_0x42d13d){if(_0x42d13d){return _0x42d13d['update'](_0x16ae34)[_0x73d4('0x25')](function(_0x3f920f){return _0x3f920f;});}return null;};}function removeEntity(_0x49ad21,_0x5aa04b){return function(_0x1acd50){if(_0x1acd50){return _0x1acd50[_0x73d4('0x26')]()[_0x73d4('0x25')](function(){_0x49ad21[_0x73d4('0x1b')](0xcc)[_0x73d4('0x1a')]();});}};}function handleEntityNotFound(_0x2cac89,_0x50c503){return function(_0x2ae034){if(!_0x2ae034){_0x2cac89[_0x73d4('0x19')](0x194);}return _0x2ae034;};}function handleError(_0x488e57,_0xaf72d9){_0xaf72d9=_0xaf72d9||0x1f4;return function(_0x432e65){logger['error'](_0x432e65[_0x73d4('0x27')]);if(_0x432e65[_0x73d4('0x28')]){delete _0x432e65[_0x73d4('0x28')];}_0x488e57[_0x73d4('0x1b')](_0xaf72d9)[_0x73d4('0x29')](_0x432e65);};}exports[_0x73d4('0x2a')]=function(_0xf7529,_0x1d0fd0){var _0x948c62={},_0x3b2be1={},_0x1de174={'count':0x0,'rows':[]};var _0x3911c9=_[_0x73d4('0x2b')](db[_0x73d4('0x2c')][_0x73d4('0x2d')],function(_0x15e00e){return{'name':_0x15e00e[_0x73d4('0x2e')],'type':_0x15e00e['type'][_0x73d4('0x2f')]};});_0x3b2be1[_0x73d4('0x30')]=_[_0x73d4('0x2b')](_0x3911c9,_0x73d4('0x28'));_0x3b2be1[_0x73d4('0x31')]=_[_0x73d4('0x32')](_0xf7529[_0x73d4('0x31')]);_0x3b2be1[_0x73d4('0x33')]=_[_0x73d4('0x34')](_0x3b2be1['model'],_0x3b2be1[_0x73d4('0x31')]);_0x948c62[_0x73d4('0x35')]=_[_0x73d4('0x34')](_0x3b2be1[_0x73d4('0x30')],qs['fields'](_0xf7529[_0x73d4('0x31')][_0x73d4('0x36')]));_0x948c62[_0x73d4('0x35')]=_0x948c62[_0x73d4('0x35')][_0x73d4('0x37')]?_0x948c62[_0x73d4('0x35')]:_0x3b2be1[_0x73d4('0x30')];if(!_0xf7529[_0x73d4('0x31')]['hasOwnProperty'](_0x73d4('0x38'))){_0x948c62[_0x73d4('0x1f')]=qs[_0x73d4('0x1f')](_0xf7529[_0x73d4('0x31')]['limit']);_0x948c62[_0x73d4('0x1d')]=qs[_0x73d4('0x1d')](_0xf7529['query'][_0x73d4('0x1d')]);}_0x948c62['order']=qs['sort'](_0xf7529[_0x73d4('0x31')][_0x73d4('0x39')]);_0x948c62[_0x73d4('0x3a')]=qs[_0x73d4('0x33')](_['pick'](_0xf7529[_0x73d4('0x31')],_0x3b2be1[_0x73d4('0x33')]),_0x3911c9);if(_0xf7529['query'][_0x73d4('0x3b')]){_0x948c62[_0x73d4('0x3a')]=_['merge'](_0x948c62[_0x73d4('0x3a')],{'$or':_[_0x73d4('0x2b')](_0x3911c9,function(_0xd75b){if(_0xd75b[_0x73d4('0x3c')]!==_0x73d4('0x3d')){var _0x27f0d2={};_0x27f0d2[_0xd75b[_0x73d4('0x28')]]={'$like':'%'+_0xf7529[_0x73d4('0x31')][_0x73d4('0x3b')]+'%'};return _0x27f0d2;}})});}_0x948c62=_[_0x73d4('0x3e')]({},_0x948c62,_0xf7529[_0x73d4('0x3f')]);var _0x5eb93a={'where':_0x948c62[_0x73d4('0x3a')]};return db['JscriptySessionReport'][_0x73d4('0x20')](_0x5eb93a)[_0x73d4('0x25')](function(_0x3ed5fa){_0x1de174[_0x73d4('0x20')]=_0x3ed5fa;if(_0xf7529['query'][_0x73d4('0x40')]){_0x948c62[_0x73d4('0x41')]=[{'all':!![]}];}return db['JscriptySessionReport'][_0x73d4('0x42')](_0x948c62);})['then'](function(_0x42c304){_0x1de174[_0x73d4('0x43')]=_0x42c304;return _0x1de174;})['then'](respondWithFilteredResult(_0x1d0fd0,_0x948c62))[_0x73d4('0x44')](handleError(_0x1d0fd0,null));};exports[_0x73d4('0x45')]=function(_0x2a3dd3,_0x4859fe){var _0x4cc622={'raw':!![],'where':{'id':_0x2a3dd3[_0x73d4('0x46')]['id']}},_0x1cb076={};_0x1cb076['model']=_['keys'](db['JscriptySessionReport']['rawAttributes']);_0x1cb076[_0x73d4('0x31')]=_[_0x73d4('0x32')](_0x2a3dd3[_0x73d4('0x31')]);_0x1cb076[_0x73d4('0x33')]=_[_0x73d4('0x34')](_0x1cb076[_0x73d4('0x30')],_0x1cb076[_0x73d4('0x31')]);_0x4cc622[_0x73d4('0x35')]=_[_0x73d4('0x34')](_0x1cb076['model'],qs[_0x73d4('0x36')](_0x2a3dd3[_0x73d4('0x31')][_0x73d4('0x36')]));_0x4cc622[_0x73d4('0x35')]=_0x4cc622['attributes'][_0x73d4('0x37')]?_0x4cc622[_0x73d4('0x35')]:_0x1cb076[_0x73d4('0x30')];if(_0x2a3dd3[_0x73d4('0x31')][_0x73d4('0x40')]){_0x4cc622[_0x73d4('0x41')]=[{'all':!![]}];}_0x4cc622=_[_0x73d4('0x3e')]({},_0x4cc622,_0x2a3dd3['options']);return db[_0x73d4('0x2c')]['find'](_0x4cc622)[_0x73d4('0x25')](handleEntityNotFound(_0x4859fe,null))[_0x73d4('0x25')](respondWithResult(_0x4859fe,null))[_0x73d4('0x44')](handleError(_0x4859fe,null));};exports[_0x73d4('0x47')]=function(_0x408785,_0x170037){return db[_0x73d4('0x2c')][_0x73d4('0x47')](_0x408785[_0x73d4('0x48')],{})['then'](respondWithResult(_0x170037,0xc9))[_0x73d4('0x44')](handleError(_0x170037,null));};exports[_0x73d4('0x49')]=function(_0x49b384,_0x4aa2a2){if(_0x49b384['body']['id']){delete _0x49b384[_0x73d4('0x48')]['id'];}return db['JscriptySessionReport'][_0x73d4('0x4a')]({'where':{'id':_0x49b384[_0x73d4('0x46')]['id']}})['then'](handleEntityNotFound(_0x4aa2a2,null))[_0x73d4('0x25')](saveUpdates(_0x49b384['body'],null))[_0x73d4('0x25')](respondWithResult(_0x4aa2a2,null))[_0x73d4('0x44')](handleError(_0x4aa2a2,null));};exports[_0x73d4('0x26')]=function(_0x6beceb,_0x4ed764){return db[_0x73d4('0x2c')]['find']({'where':{'id':_0x6beceb[_0x73d4('0x46')]['id']}})[_0x73d4('0x25')](handleEntityNotFound(_0x4ed764,null))['then'](removeEntity(_0x4ed764,null))[_0x73d4('0x44')](handleError(_0x4ed764,null));};exports[_0x73d4('0x4b')]=function(_0x4ad3e2,_0x408bcb){return db[_0x73d4('0x2c')][_0x73d4('0x4b')]()['then'](respondWithResult(_0x408bcb,null))[_0x73d4('0x44')](handleError(_0x408bcb,null));};exports[_0x73d4('0x4c')]=function(_0x3e50be,_0x1adcbd,_0x127ea5){var _0x29c824={'raw':!![],'where':{}};var _0x3d892b={};var _0x359f43={'count':0x0,'rows':[]};return db[_0x73d4('0x2c')][_0x73d4('0x4d')]({'where':{'id':_0x3e50be[_0x73d4('0x46')]['id']}})[_0x73d4('0x25')](handleEntityNotFound(_0x1adcbd,null))[_0x73d4('0x25')](function(_0x24c64d){if(_0x24c64d){_0x3d892b['model']=_['keys'](db[_0x73d4('0x4e')]['rawAttributes']);_0x3d892b[_0x73d4('0x31')]=_[_0x73d4('0x32')](_0x3e50be[_0x73d4('0x31')]);_0x3d892b[_0x73d4('0x33')]=_[_0x73d4('0x34')](_0x3d892b['model'],_0x3d892b[_0x73d4('0x31')]);_0x29c824['attributes']=_[_0x73d4('0x34')](_0x3d892b['model'],qs['fields'](_0x3e50be[_0x73d4('0x31')][_0x73d4('0x36')]));_0x29c824['attributes']=_0x29c824[_0x73d4('0x35')]['length']?_0x29c824['attributes']:_0x3d892b[_0x73d4('0x30')];if(!_0x3e50be[_0x73d4('0x31')][_0x73d4('0x4f')]('nolimit')){_0x29c824[_0x73d4('0x1f')]=qs['limit'](_0x3e50be[_0x73d4('0x31')][_0x73d4('0x1f')]);_0x29c824[_0x73d4('0x1d')]=qs[_0x73d4('0x1d')](_0x3e50be[_0x73d4('0x31')][_0x73d4('0x1d')]);}_0x29c824[_0x73d4('0x50')]=qs[_0x73d4('0x39')](_0x3e50be[_0x73d4('0x31')][_0x73d4('0x39')]);_0x29c824[_0x73d4('0x3a')]=qs[_0x73d4('0x33')](_[_0x73d4('0x51')](_0x3e50be[_0x73d4('0x31')],_0x3d892b[_0x73d4('0x33')]));_0x29c824[_0x73d4('0x3a')][_0x73d4('0x52')]=_0x24c64d['id'];if(_0x3e50be[_0x73d4('0x31')]['filter']){_0x29c824[_0x73d4('0x3a')]=_[_0x73d4('0x3e')](_0x29c824[_0x73d4('0x3a')],{'$or':_['map'](_0x29c824[_0x73d4('0x35')],function(_0x3bf6eb){var _0x2041cc={};_0x2041cc[_0x3bf6eb]={'$like':'%'+_0x3e50be['query'][_0x73d4('0x3b')]+'%'};return _0x2041cc;})});}_0x29c824=_['merge']({},_0x29c824,_0x3e50be['options']);return db[_0x73d4('0x4e')][_0x73d4('0x20')]({'where':_0x29c824[_0x73d4('0x3a')]})['then'](function(_0x290f42){_0x359f43['count']=_0x290f42;if(_0x3e50be[_0x73d4('0x31')][_0x73d4('0x40')]){_0x29c824['include']=[{'all':!![]}];}return db['JscriptyQuestionReport']['findAll'](_0x29c824);})[_0x73d4('0x25')](function(_0x39ce45){_0x359f43[_0x73d4('0x43')]=_0x39ce45;return _0x359f43;});}})[_0x73d4('0x25')](respondWithFilteredResult(_0x1adcbd,_0x29c824))[_0x73d4('0x44')](handleError(_0x1adcbd,null));};