40e70fe950683d94fcbd2722413387f9728691fe
[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 _0xe231=['api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','undefined','count','offset','limit','set','Content-Range','json','apply','save','update','then','destroy','end','error','name','send','index','map','Integration','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','create','body','find','params','eml-format','zip-dir','fast-json-patch','request-promise','mustache','path','sox','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger'];(function(_0x3d41ba,_0x4fce49){var _0x375cfd=function(_0x329929){while(--_0x329929){_0x3d41ba['push'](_0x3d41ba['shift']());}};_0x375cfd(++_0x4fce49);}(_0xe231,0x114));var _0x1e23=function(_0x53ddab,_0x4ada9d){_0x53ddab=_0x53ddab-0x0;var _0x5819ac=_0xe231[_0x53ddab];return _0x5819ac;};'use strict';var emlformat=require(_0x1e23('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1e23('0x1'));var jsonpatch=require(_0x1e23('0x2'));var rp=require(_0x1e23('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x1e23('0x4'));var util=require('util');var path=require(_0x1e23('0x5'));var sox=require(_0x1e23('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1e23('0x7'));var _=require(_0x1e23('0x8'));var squel=require('squel');var crypto=require(_0x1e23('0x9'));var jsforce=require(_0x1e23('0xa'));var deskjs=require(_0x1e23('0xb'));var toCsv=require('to-csv');var querystring=require(_0x1e23('0xc'));var Papa=require(_0x1e23('0xd'));var Redis=require(_0x1e23('0xe'));var authService=require(_0x1e23('0xf'));var qs=require(_0x1e23('0x10'));var as=require(_0x1e23('0x11'));var hardwareService=require(_0x1e23('0x12'));var logger=require(_0x1e23('0x13'))(_0x1e23('0x14'));var utils=require(_0x1e23('0x15'));var config=require(_0x1e23('0x16'));var licenseUtil=require(_0x1e23('0x17'));var db=require(_0x1e23('0x18'))['db'];function respondWithStatusCode(_0x2b973c,_0x170169){_0x170169=_0x170169||0xcc;return function(_0x2be092){if(_0x2be092){return _0x2b973c[_0x1e23('0x19')](_0x170169);}return _0x2b973c[_0x1e23('0x1a')](_0x170169)['end']();};}function respondWithResult(_0x30d87c,_0x218ff6){_0x218ff6=_0x218ff6||0xc8;return function(_0x83bb5a){if(_0x83bb5a){return _0x30d87c[_0x1e23('0x1a')](_0x218ff6)['json'](_0x83bb5a);}};}function respondWithFilteredResult(_0xc72533,_0x3ea8b6){return function(_0x30ef31){if(_0x30ef31){var _0x46caf1=typeof _0x3ea8b6['offset']===_0x1e23('0x1b')&&typeof _0x3ea8b6['limit']===_0x1e23('0x1b');var _0x46277b=_0x30ef31[_0x1e23('0x1c')];var _0x29b4e6=_0x46caf1?0x0:_0x3ea8b6[_0x1e23('0x1d')];var _0x108a27=_0x46caf1?_0x30ef31[_0x1e23('0x1c')]:_0x3ea8b6[_0x1e23('0x1d')]+_0x3ea8b6[_0x1e23('0x1e')];var _0x41e2b2;if(_0x108a27>=_0x46277b){_0x108a27=_0x46277b;_0x41e2b2=0xc8;}else{_0x41e2b2=0xce;}_0xc72533[_0x1e23('0x1a')](_0x41e2b2);return _0xc72533[_0x1e23('0x1f')](_0x1e23('0x20'),_0x29b4e6+'-'+_0x108a27+'/'+_0x46277b)[_0x1e23('0x21')](_0x30ef31);}return null;};}function patchUpdates(_0xd71766){return function(_0x2d67c9){try{jsonpatch[_0x1e23('0x22')](_0x2d67c9,_0xd71766,!![]);}catch(_0x43ea7b){return BPromise['reject'](_0x43ea7b);}return _0x2d67c9[_0x1e23('0x23')]();};}function saveUpdates(_0x12b478,_0xc26a8b){return function(_0x5cab5b){if(_0x5cab5b){return _0x5cab5b[_0x1e23('0x24')](_0x12b478)[_0x1e23('0x25')](function(_0x138354){return _0x138354;});}return null;};}function removeEntity(_0x27a6e6,_0x497bde){return function(_0x226a8a){if(_0x226a8a){return _0x226a8a[_0x1e23('0x26')]()['then'](function(){_0x27a6e6[_0x1e23('0x1a')](0xcc)[_0x1e23('0x27')]();});}};}function handleEntityNotFound(_0x56ab79,_0x27cdc6){return function(_0xafe34d){if(!_0xafe34d){_0x56ab79[_0x1e23('0x19')](0x194);}return _0xafe34d;};}function handleError(_0x38b685,_0x5859fb){_0x5859fb=_0x5859fb||0x1f4;return function(_0x90bc2f){logger[_0x1e23('0x28')](_0x90bc2f['stack']);if(_0x90bc2f[_0x1e23('0x29')]){delete _0x90bc2f[_0x1e23('0x29')];}_0x38b685[_0x1e23('0x1a')](_0x5859fb)[_0x1e23('0x2a')](_0x90bc2f);};}exports[_0x1e23('0x2b')]=function(_0x455614,_0x2bed25){var _0x20b27c={},_0x28c32a={},_0x389671={'count':0x0,'rows':[]};var _0x173cdf=_[_0x1e23('0x2c')](db[_0x1e23('0x2d')][_0x1e23('0x2e')],function(_0x4c56ba){return{'name':_0x4c56ba[_0x1e23('0x2f')],'type':_0x4c56ba[_0x1e23('0x30')]['key']};});_0x28c32a[_0x1e23('0x31')]=_[_0x1e23('0x2c')](_0x173cdf,_0x1e23('0x29'));_0x28c32a[_0x1e23('0x32')]=_[_0x1e23('0x33')](_0x455614[_0x1e23('0x32')]);_0x28c32a[_0x1e23('0x34')]=_[_0x1e23('0x35')](_0x28c32a['model'],_0x28c32a[_0x1e23('0x32')]);_0x20b27c[_0x1e23('0x36')]=_[_0x1e23('0x35')](_0x28c32a[_0x1e23('0x31')],qs['fields'](_0x455614['query'][_0x1e23('0x37')]));_0x20b27c[_0x1e23('0x36')]=_0x20b27c[_0x1e23('0x36')][_0x1e23('0x38')]?_0x20b27c[_0x1e23('0x36')]:_0x28c32a['model'];if(!_0x455614[_0x1e23('0x32')]['hasOwnProperty'](_0x1e23('0x39'))){_0x20b27c['limit']=qs[_0x1e23('0x1e')](_0x455614[_0x1e23('0x32')]['limit']);_0x20b27c[_0x1e23('0x1d')]=qs[_0x1e23('0x1d')](_0x455614[_0x1e23('0x32')]['offset']);}_0x20b27c[_0x1e23('0x3a')]=qs['sort'](_0x455614['query'][_0x1e23('0x3b')]);_0x20b27c[_0x1e23('0x3c')]=qs['filters'](_['pick'](_0x455614[_0x1e23('0x32')],_0x28c32a['filters']),_0x173cdf);if(_0x455614[_0x1e23('0x32')][_0x1e23('0x3d')]){_0x20b27c[_0x1e23('0x3c')]=_[_0x1e23('0x3e')](_0x20b27c['where'],{'$or':_['map'](_0x173cdf,function(_0x337f50){if(_0x337f50[_0x1e23('0x30')]!==_0x1e23('0x3f')){var _0x89dc26={};_0x89dc26[_0x337f50[_0x1e23('0x29')]]={'$like':'%'+_0x455614[_0x1e23('0x32')][_0x1e23('0x3d')]+'%'};return _0x89dc26;}})});}_0x20b27c=_[_0x1e23('0x3e')]({},_0x20b27c,_0x455614[_0x1e23('0x40')]);var _0x206d5b={'where':_0x20b27c[_0x1e23('0x3c')]};return db['Integration'][_0x1e23('0x1c')](_0x206d5b)[_0x1e23('0x25')](function(_0x418125){_0x389671[_0x1e23('0x1c')]=_0x418125;if(_0x455614[_0x1e23('0x32')][_0x1e23('0x41')]){_0x20b27c[_0x1e23('0x42')]=[{'all':!![]}];}return db[_0x1e23('0x2d')][_0x1e23('0x43')](_0x20b27c);})[_0x1e23('0x25')](function(_0xc47d49){_0x389671[_0x1e23('0x44')]=_0xc47d49;return _0x389671;})[_0x1e23('0x25')](respondWithFilteredResult(_0x2bed25,_0x20b27c))[_0x1e23('0x45')](handleError(_0x2bed25,null));};exports['show']=function(_0x1bb9d5,_0x4c5da5){var _0x56c000={'raw':![],'where':{'id':_0x1bb9d5['params']['id']}},_0x2cec9b={};_0x2cec9b[_0x1e23('0x31')]=_[_0x1e23('0x33')](db['Integration'][_0x1e23('0x2e')]);_0x2cec9b[_0x1e23('0x32')]=_[_0x1e23('0x33')](_0x1bb9d5[_0x1e23('0x32')]);_0x2cec9b['filters']=_[_0x1e23('0x35')](_0x2cec9b[_0x1e23('0x31')],_0x2cec9b[_0x1e23('0x32')]);_0x56c000[_0x1e23('0x36')]=_[_0x1e23('0x35')](_0x2cec9b[_0x1e23('0x31')],qs[_0x1e23('0x37')](_0x1bb9d5[_0x1e23('0x32')][_0x1e23('0x37')]));_0x56c000[_0x1e23('0x36')]=_0x56c000[_0x1e23('0x36')][_0x1e23('0x38')]?_0x56c000[_0x1e23('0x36')]:_0x2cec9b[_0x1e23('0x31')];if(_0x1bb9d5['query'][_0x1e23('0x41')]){_0x56c000[_0x1e23('0x42')]=[{'all':!![]}];}_0x56c000=_['merge']({},_0x56c000,_0x1bb9d5['options']);return db[_0x1e23('0x2d')]['find'](_0x56c000)[_0x1e23('0x25')](handleEntityNotFound(_0x4c5da5,null))[_0x1e23('0x25')](respondWithResult(_0x4c5da5,null))[_0x1e23('0x45')](handleError(_0x4c5da5,null));};exports[_0x1e23('0x46')]=function(_0x52be10,_0x5b4864){return db['Integration'][_0x1e23('0x46')](_0x52be10[_0x1e23('0x47')],{})[_0x1e23('0x25')](respondWithResult(_0x5b4864,0xc9))[_0x1e23('0x45')](handleError(_0x5b4864,null));};exports[_0x1e23('0x24')]=function(_0x37ad8b,_0x775b41){if(_0x37ad8b[_0x1e23('0x47')]['id']){delete _0x37ad8b[_0x1e23('0x47')]['id'];}return db['Integration'][_0x1e23('0x48')]({'where':{'id':_0x37ad8b[_0x1e23('0x49')]['id']}})['then'](handleEntityNotFound(_0x775b41,null))[_0x1e23('0x25')](saveUpdates(_0x37ad8b[_0x1e23('0x47')],null))[_0x1e23('0x25')](respondWithResult(_0x775b41,null))[_0x1e23('0x45')](handleError(_0x775b41,null));};exports[_0x1e23('0x26')]=function(_0x398535,_0x179af3){return db[_0x1e23('0x2d')][_0x1e23('0x48')]({'where':{'id':_0x398535['params']['id']}})[_0x1e23('0x25')](handleEntityNotFound(_0x179af3,null))[_0x1e23('0x25')](removeEntity(_0x179af3,null))['catch'](handleError(_0x179af3,null));};