38b61ed133c772666fe2446dcb19fe390dbc26a8
[motion2.git] / server / api / integration / integration.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 _0xd2f0=['where','VIRTUAL','options','count','includeAll','include','rows','catch','show','params','merge','create','body','find','destroy','html-pdf','eml-format','zip-dir','fast-json-patch','moment','bluebird','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','set','apply','reject','save','update','then','error','name','index','Integration','rawAttributes','fieldName','type','key','map','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','limit','order','sort','filter'];(function(_0xbf689c,_0x20dd8f){var _0x300a05=function(_0x530367){while(--_0x530367){_0xbf689c['push'](_0xbf689c['shift']());}};_0x300a05(++_0x20dd8f);}(_0xd2f0,0x18b));var _0x0d2f=function(_0x13c5d8,_0xa5b145){_0x13c5d8=_0x13c5d8-0x0;var _0x1c8c17=_0xd2f0[_0x13c5d8];return _0x1c8c17;};'use strict';var pdf=require(_0x0d2f('0x0'));var emlformat=require(_0x0d2f('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x0d2f('0x2'));var jsonpatch=require(_0x0d2f('0x3'));var rp=require('request-promise');var moment=require(_0x0d2f('0x4'));var BPromise=require(_0x0d2f('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x0d2f('0x6'));var sox=require(_0x0d2f('0x7'));var csv=require('to-csv');var ejs=require(_0x0d2f('0x8'));var fs=require('fs');var _=require(_0x0d2f('0x9'));var squel=require(_0x0d2f('0xa'));var crypto=require(_0x0d2f('0xb'));var jsforce=require(_0x0d2f('0xc'));var deskjs=require(_0x0d2f('0xd'));var toCsv=require(_0x0d2f('0xe'));var querystring=require(_0x0d2f('0xf'));var Papa=require(_0x0d2f('0x10'));var Redis=require(_0x0d2f('0x11'));var authService=require(_0x0d2f('0x12'));var qs=require(_0x0d2f('0x13'));var as=require(_0x0d2f('0x14'));var hardwareService=require(_0x0d2f('0x15'));var logger=require(_0x0d2f('0x16'))(_0x0d2f('0x17'));var utils=require(_0x0d2f('0x18'));var config=require(_0x0d2f('0x19'));var licenseUtil=require(_0x0d2f('0x1a'));var db=require(_0x0d2f('0x1b'))['db'];function respondWithStatusCode(_0x4155d4,_0x37cf96){_0x37cf96=_0x37cf96||0xcc;return function(_0x1dd686){if(_0x1dd686){return _0x4155d4[_0x0d2f('0x1c')](_0x37cf96);}return _0x4155d4[_0x0d2f('0x1d')](_0x37cf96)[_0x0d2f('0x1e')]();};}function respondWithResult(_0x4e4e9c,_0x93a557){_0x93a557=_0x93a557||0xc8;return function(_0x182bdd){if(_0x182bdd){return _0x4e4e9c[_0x0d2f('0x1d')](_0x93a557)[_0x0d2f('0x1f')](_0x182bdd);}};}function respondWithFilteredResult(_0xc9eec1,_0x1f8fcb){return function(_0x492d06){if(_0x492d06){var _0x22e2c1=_0x492d06['count'],_0x4c99a8=_0x1f8fcb['offset'],_0x475ee5=_0x1f8fcb[_0x0d2f('0x20')]+_0x1f8fcb['limit'],_0x36336e;if(_0x475ee5>=_0x22e2c1){_0x475ee5=_0x22e2c1;_0x36336e=0xc8;}else{_0x36336e=0xce;}_0xc9eec1['status'](_0x36336e);return _0xc9eec1[_0x0d2f('0x21')]('Content-Range',_0x4c99a8+'-'+_0x475ee5+'/'+_0x22e2c1)['json'](_0x492d06);}return null;};}function patchUpdates(_0x4eda1e){return function(_0x4dff15){try{jsonpatch[_0x0d2f('0x22')](_0x4dff15,_0x4eda1e,!![]);}catch(_0x3b5b0d){return BPromise[_0x0d2f('0x23')](_0x3b5b0d);}return _0x4dff15[_0x0d2f('0x24')]();};}function saveUpdates(_0x52ea44,_0x47e306){return function(_0x2d6ed7){if(_0x2d6ed7){return _0x2d6ed7[_0x0d2f('0x25')](_0x52ea44)[_0x0d2f('0x26')](function(_0x99249){return _0x99249;});}return null;};}function removeEntity(_0x9d11c7,_0x3cdb97){return function(_0x3ba294){if(_0x3ba294){return _0x3ba294['destroy']()['then'](function(){_0x9d11c7[_0x0d2f('0x1d')](0xcc)[_0x0d2f('0x1e')]();});}};}function handleEntityNotFound(_0x383f50,_0x503044){return function(_0x38fb51){if(!_0x38fb51){_0x383f50[_0x0d2f('0x1c')](0x194);}return _0x38fb51;};}function handleError(_0x40d93f,_0x5ec9e4){_0x5ec9e4=_0x5ec9e4||0x1f4;return function(_0x2f44e1){logger[_0x0d2f('0x27')](_0x2f44e1['stack']);if(_0x2f44e1[_0x0d2f('0x28')]){delete _0x2f44e1['name'];}_0x40d93f['status'](_0x5ec9e4)['send'](_0x2f44e1);};}exports[_0x0d2f('0x29')]=function(_0x50ea5c,_0x590027){var _0x248de6={},_0x54a8fd={},_0x352ecd={'count':0x0,'rows':[]};var _0x49e386=_['map'](db[_0x0d2f('0x2a')][_0x0d2f('0x2b')],function(_0x40a0df){return{'name':_0x40a0df[_0x0d2f('0x2c')],'type':_0x40a0df[_0x0d2f('0x2d')][_0x0d2f('0x2e')]};});_0x54a8fd['model']=_[_0x0d2f('0x2f')](_0x49e386,_0x0d2f('0x28'));_0x54a8fd[_0x0d2f('0x30')]=_[_0x0d2f('0x31')](_0x50ea5c['query']);_0x54a8fd[_0x0d2f('0x32')]=_['intersection'](_0x54a8fd['model'],_0x54a8fd[_0x0d2f('0x30')]);_0x248de6['attributes']=_[_0x0d2f('0x33')](_0x54a8fd[_0x0d2f('0x34')],qs[_0x0d2f('0x35')](_0x50ea5c[_0x0d2f('0x30')][_0x0d2f('0x35')]));_0x248de6['attributes']=_0x248de6[_0x0d2f('0x36')][_0x0d2f('0x37')]?_0x248de6[_0x0d2f('0x36')]:_0x54a8fd['model'];if(!_0x50ea5c[_0x0d2f('0x30')][_0x0d2f('0x38')]('nolimit')){_0x248de6[_0x0d2f('0x39')]=qs[_0x0d2f('0x39')](_0x50ea5c['query'][_0x0d2f('0x39')]);_0x248de6['offset']=qs[_0x0d2f('0x20')](_0x50ea5c[_0x0d2f('0x30')][_0x0d2f('0x20')]);}_0x248de6[_0x0d2f('0x3a')]=qs[_0x0d2f('0x3b')](_0x50ea5c[_0x0d2f('0x30')]['sort']);_0x248de6['where']=qs['filters'](_['pick'](_0x50ea5c[_0x0d2f('0x30')],_0x54a8fd[_0x0d2f('0x32')]),_0x49e386);if(_0x50ea5c[_0x0d2f('0x30')][_0x0d2f('0x3c')]){_0x248de6[_0x0d2f('0x3d')]=_['merge'](_0x248de6['where'],{'$or':_[_0x0d2f('0x2f')](_0x49e386,function(_0xc7200e){if(_0xc7200e[_0x0d2f('0x2d')]!==_0x0d2f('0x3e')){var _0x1b1947={};_0x1b1947[_0xc7200e['name']]={'$like':'%'+_0x50ea5c[_0x0d2f('0x30')]['filter']+'%'};return _0x1b1947;}})});}_0x248de6=_['merge']({},_0x248de6,_0x50ea5c[_0x0d2f('0x3f')]);var _0x32787b={'where':_0x248de6[_0x0d2f('0x3d')]};return db['Integration'][_0x0d2f('0x40')](_0x32787b)[_0x0d2f('0x26')](function(_0x3ca05d){_0x352ecd[_0x0d2f('0x40')]=_0x3ca05d;if(_0x50ea5c['query'][_0x0d2f('0x41')]){_0x248de6[_0x0d2f('0x42')]=[{'all':!![]}];}return db['Integration']['findAll'](_0x248de6);})[_0x0d2f('0x26')](function(_0xd13b1){_0x352ecd[_0x0d2f('0x43')]=_0xd13b1;return _0x352ecd;})[_0x0d2f('0x26')](respondWithFilteredResult(_0x590027,_0x248de6))[_0x0d2f('0x44')](handleError(_0x590027,null));};exports[_0x0d2f('0x45')]=function(_0x9daeb9,_0x294e20){var _0x4ce28b={'raw':![],'where':{'id':_0x9daeb9[_0x0d2f('0x46')]['id']}},_0xe3ac96={};_0xe3ac96['model']=_['keys'](db['Integration'][_0x0d2f('0x2b')]);_0xe3ac96[_0x0d2f('0x30')]=_[_0x0d2f('0x31')](_0x9daeb9['query']);_0xe3ac96[_0x0d2f('0x32')]=_[_0x0d2f('0x33')](_0xe3ac96[_0x0d2f('0x34')],_0xe3ac96[_0x0d2f('0x30')]);_0x4ce28b[_0x0d2f('0x36')]=_[_0x0d2f('0x33')](_0xe3ac96[_0x0d2f('0x34')],qs[_0x0d2f('0x35')](_0x9daeb9[_0x0d2f('0x30')][_0x0d2f('0x35')]));_0x4ce28b['attributes']=_0x4ce28b[_0x0d2f('0x36')][_0x0d2f('0x37')]?_0x4ce28b['attributes']:_0xe3ac96['model'];if(_0x9daeb9[_0x0d2f('0x30')][_0x0d2f('0x41')]){_0x4ce28b[_0x0d2f('0x42')]=[{'all':!![]}];}_0x4ce28b=_[_0x0d2f('0x47')]({},_0x4ce28b,_0x9daeb9[_0x0d2f('0x3f')]);return db['Integration']['find'](_0x4ce28b)[_0x0d2f('0x26')](handleEntityNotFound(_0x294e20,null))[_0x0d2f('0x26')](respondWithResult(_0x294e20,null))[_0x0d2f('0x44')](handleError(_0x294e20,null));};exports[_0x0d2f('0x48')]=function(_0x12c919,_0x128797){return db['Integration'][_0x0d2f('0x48')](_0x12c919[_0x0d2f('0x49')],{})[_0x0d2f('0x26')](respondWithResult(_0x128797,0xc9))[_0x0d2f('0x44')](handleError(_0x128797,null));};exports[_0x0d2f('0x25')]=function(_0x59084a,_0x3d3ea8){if(_0x59084a[_0x0d2f('0x49')]['id']){delete _0x59084a[_0x0d2f('0x49')]['id'];}return db['Integration'][_0x0d2f('0x4a')]({'where':{'id':_0x59084a[_0x0d2f('0x46')]['id']}})['then'](handleEntityNotFound(_0x3d3ea8,null))[_0x0d2f('0x26')](saveUpdates(_0x59084a[_0x0d2f('0x49')],null))[_0x0d2f('0x26')](respondWithResult(_0x3d3ea8,null))['catch'](handleError(_0x3d3ea8,null));};exports[_0x0d2f('0x4b')]=function(_0x4254d3,_0x416437){return db[_0x0d2f('0x2a')][_0x0d2f('0x4a')]({'where':{'id':_0x4254d3[_0x0d2f('0x46')]['id']}})[_0x0d2f('0x26')](handleEntityNotFound(_0x416437,null))['then'](removeEntity(_0x416437,null))[_0x0d2f('0x44')](handleError(_0x416437,null));};