c1b432cda8972e83c4122743e970e72ae1f027a3
[motion2.git] / server / api / action / action.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 _0xd7b9=['mustache','util','path','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','set','json','apply','reject','save','update','destroy','then','error','stack','name','send','body','Action','find','catch','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment'];(function(_0x308b5c,_0x31bf56){var _0x2de469=function(_0x298e66){while(--_0x298e66){_0x308b5c['push'](_0x308b5c['shift']());}};_0x2de469(++_0x31bf56);}(_0xd7b9,0x12c));var _0x9d7b=function(_0x1c22f0,_0x1924e2){_0x1c22f0=_0x1c22f0-0x0;var _0x5a32d8=_0xd7b9[_0x1c22f0];return _0x5a32d8;};'use strict';var emlformat=require(_0x9d7b('0x0'));var rimraf=require(_0x9d7b('0x1'));var zipdir=require(_0x9d7b('0x2'));var jsonpatch=require(_0x9d7b('0x3'));var rp=require(_0x9d7b('0x4'));var moment=require(_0x9d7b('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x9d7b('0x6'));var util=require(_0x9d7b('0x7'));var path=require(_0x9d7b('0x8'));var sox=require('sox');var csv=require(_0x9d7b('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9d7b('0xa'));var _=require('lodash');var squel=require(_0x9d7b('0xb'));var crypto=require(_0x9d7b('0xc'));var jsforce=require(_0x9d7b('0xd'));var deskjs=require(_0x9d7b('0xe'));var toCsv=require(_0x9d7b('0x9'));var querystring=require(_0x9d7b('0xf'));var Papa=require(_0x9d7b('0x10'));var Redis=require(_0x9d7b('0x11'));var authService=require(_0x9d7b('0x12'));var qs=require(_0x9d7b('0x13'));var as=require(_0x9d7b('0x14'));var hardwareService=require(_0x9d7b('0x15'));var logger=require(_0x9d7b('0x16'))(_0x9d7b('0x17'));var utils=require('../../config/utils');var config=require(_0x9d7b('0x18'));var licenseUtil=require(_0x9d7b('0x19'));var db=require(_0x9d7b('0x1a'))['db'];function respondWithStatusCode(_0x12fc68,_0x4bb5b3){_0x4bb5b3=_0x4bb5b3||0xcc;return function(_0x5c70f1){if(_0x5c70f1){return _0x12fc68[_0x9d7b('0x1b')](_0x4bb5b3);}return _0x12fc68[_0x9d7b('0x1c')](_0x4bb5b3)[_0x9d7b('0x1d')]();};}function respondWithResult(_0x3cb368,_0x329255){_0x329255=_0x329255||0xc8;return function(_0x5905b4){if(_0x5905b4){return _0x3cb368[_0x9d7b('0x1c')](_0x329255)['json'](_0x5905b4);}};}function respondWithFilteredResult(_0x3d19c1,_0x58209e){return function(_0x4a1fea){if(_0x4a1fea){var _0x4ab7d0=typeof _0x58209e[_0x9d7b('0x1e')]==='undefined'&&typeof _0x58209e[_0x9d7b('0x1f')]===_0x9d7b('0x20');var _0x5b74a4=_0x4a1fea[_0x9d7b('0x21')];var _0x1d1a7f=_0x4ab7d0?0x0:_0x58209e['offset'];var _0x3800da=_0x4ab7d0?_0x4a1fea[_0x9d7b('0x21')]:_0x58209e[_0x9d7b('0x1e')]+_0x58209e[_0x9d7b('0x1f')];var _0x4a9e18;if(_0x3800da>=_0x5b74a4){_0x3800da=_0x5b74a4;_0x4a9e18=0xc8;}else{_0x4a9e18=0xce;}_0x3d19c1['status'](_0x4a9e18);return _0x3d19c1[_0x9d7b('0x22')]('Content-Range',_0x1d1a7f+'-'+_0x3800da+'/'+_0x5b74a4)[_0x9d7b('0x23')](_0x4a1fea);}return null;};}function patchUpdates(_0x4fd040){return function(_0x139d4b){try{jsonpatch[_0x9d7b('0x24')](_0x139d4b,_0x4fd040,!![]);}catch(_0x27cdc8){return BPromise[_0x9d7b('0x25')](_0x27cdc8);}return _0x139d4b[_0x9d7b('0x26')]();};}function saveUpdates(_0x464abb,_0x261880){return function(_0x4f7d7e){if(_0x4f7d7e){return _0x4f7d7e[_0x9d7b('0x27')](_0x464abb)['then'](function(_0x340d78){return _0x340d78;});}return null;};}function removeEntity(_0x25b510,_0x1fabd4){return function(_0x2a404e){if(_0x2a404e){return _0x2a404e[_0x9d7b('0x28')]()[_0x9d7b('0x29')](function(){_0x25b510[_0x9d7b('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x53b741,_0x524ad0){return function(_0x1e5fdd){if(!_0x1e5fdd){_0x53b741[_0x9d7b('0x1b')](0x194);}return _0x1e5fdd;};}function handleError(_0x2f9d43,_0x3ba0a0){_0x3ba0a0=_0x3ba0a0||0x1f4;return function(_0x9aa3eb){logger[_0x9d7b('0x2a')](_0x9aa3eb[_0x9d7b('0x2b')]);if(_0x9aa3eb[_0x9d7b('0x2c')]){delete _0x9aa3eb['name'];}_0x2f9d43[_0x9d7b('0x1c')](_0x3ba0a0)[_0x9d7b('0x2d')](_0x9aa3eb);};}exports[_0x9d7b('0x27')]=function(_0x16d1d0,_0x5d374d){if(_0x16d1d0[_0x9d7b('0x2e')]['id']){delete _0x16d1d0['body']['id'];}return db[_0x9d7b('0x2f')][_0x9d7b('0x30')]({'where':{'id':_0x16d1d0['params']['id']}})[_0x9d7b('0x29')](handleEntityNotFound(_0x5d374d,null))[_0x9d7b('0x29')](saveUpdates(_0x16d1d0[_0x9d7b('0x2e')],null))[_0x9d7b('0x29')](respondWithResult(_0x5d374d,null))[_0x9d7b('0x31')](handleError(_0x5d374d,null));};exports[_0x9d7b('0x28')]=function(_0x423de2,_0xa14b67){return db[_0x9d7b('0x2f')][_0x9d7b('0x30')]({'where':{'id':_0x423de2[_0x9d7b('0x32')]['id']}})[_0x9d7b('0x29')](handleEntityNotFound(_0xa14b67,null))[_0x9d7b('0x29')](removeEntity(_0xa14b67,null))[_0x9d7b('0x31')](handleError(_0xa14b67,null));};