b2d705c74a3a38184f3c1f51b2876183011057b8
[motion2.git] / server / api / intSugarcrmAccount / intSugarcrmAccount.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 _0x5e98=['format','%s%s','/service/v4_1/rest.php','login','JSON','stringify','PLAIN','Invalid\x20Login','get_module_fields','Calls','module_fields','endsWith','values','value','statusCode','test','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','bluebird','mustache','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','../../components/integrations/configuration','status','end','offset','undefined','limit','count','set','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','SugarcrmAccount','rawAttributes','fieldName','query','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','type','VIRTUAL','includeAll','include','rows','catch','show','params','keys','options','find','create','body','getConfigurations','SugarcrmConfiguration','order','addConfiguration','findOne','AccountId','Subjects','channel','Descriptions','getDescriptions','SugarcrmField','getFields','assigned_user_id','created_by','description','date_start','duration_minutes','parent_type','parent_name','direction','username','password','remoteUri','slice','substring','lastIndexOf','POST'];(function(_0x28d7b5,_0x1305a4){var _0x1ed035=function(_0x57e1f6){while(--_0x57e1f6){_0x28d7b5['push'](_0x28d7b5['shift']());}};_0x1ed035(++_0x1305a4);}(_0x5e98,0x1d9));var _0x85e9=function(_0x52ce08,_0x346677){_0x52ce08=_0x52ce08-0x0;var _0x4ea4d1=_0x5e98[_0x52ce08];return _0x4ea4d1;};'use strict';var emlformat=require(_0x85e9('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x85e9('0x1'));var jsonpatch=require(_0x85e9('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x85e9('0x3'));var Mustache=require(_0x85e9('0x4'));var util=require('util');var path=require(_0x85e9('0x5'));var sox=require(_0x85e9('0x6'));var csv=require(_0x85e9('0x7'));var ejs=require(_0x85e9('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x85e9('0x9'));var crypto=require(_0x85e9('0xa'));var jsforce=require(_0x85e9('0xb'));var deskjs=require(_0x85e9('0xc'));var toCsv=require(_0x85e9('0x7'));var querystring=require(_0x85e9('0xd'));var Papa=require(_0x85e9('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x85e9('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x85e9('0x10'));var logger=require(_0x85e9('0x11'))('api');var utils=require('../../config/utils');var config=require(_0x85e9('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x85e9('0x13'))['db'];var integrations=require(_0x85e9('0x14'));function respondWithStatusCode(_0x1ed35b,_0x31e2dd){_0x31e2dd=_0x31e2dd||0xcc;return function(_0x427471){if(_0x427471){return _0x1ed35b['sendStatus'](_0x31e2dd);}return _0x1ed35b[_0x85e9('0x15')](_0x31e2dd)[_0x85e9('0x16')]();};}function respondWithResult(_0x265bfe,_0xab5152){_0xab5152=_0xab5152||0xc8;return function(_0x135d3b){if(_0x135d3b){return _0x265bfe[_0x85e9('0x15')](_0xab5152)['json'](_0x135d3b);}};}function respondWithFilteredResult(_0x54a3bf,_0x42037b){return function(_0x2328e7){if(_0x2328e7){var _0x50bb93=typeof _0x42037b[_0x85e9('0x17')]===_0x85e9('0x18')&&typeof _0x42037b[_0x85e9('0x19')]==='undefined';var _0x2b14fd=_0x2328e7[_0x85e9('0x1a')];var _0x185830=_0x50bb93?0x0:_0x42037b[_0x85e9('0x17')];var _0x24a58b=_0x50bb93?_0x2328e7[_0x85e9('0x1a')]:_0x42037b[_0x85e9('0x17')]+_0x42037b[_0x85e9('0x19')];var _0x41acdf;if(_0x24a58b>=_0x2b14fd){_0x24a58b=_0x2b14fd;_0x41acdf=0xc8;}else{_0x41acdf=0xce;}_0x54a3bf[_0x85e9('0x15')](_0x41acdf);return _0x54a3bf[_0x85e9('0x1b')]('Content-Range',_0x185830+'-'+_0x24a58b+'/'+_0x2b14fd)['json'](_0x2328e7);}return null;};}function patchUpdates(_0x592ef9){return function(_0xdfef9e){try{jsonpatch[_0x85e9('0x1c')](_0xdfef9e,_0x592ef9,!![]);}catch(_0x26078b){return BPromise[_0x85e9('0x1d')](_0x26078b);}return _0xdfef9e[_0x85e9('0x1e')]();};}function saveUpdates(_0x5d5f94,_0x13fde2){return function(_0x246e69){if(_0x246e69){return _0x246e69[_0x85e9('0x1f')](_0x5d5f94)[_0x85e9('0x20')](function(_0x2cede2){return _0x2cede2;});}return null;};}function removeEntity(_0x31444e,_0xe47c4a){return function(_0x283617){if(_0x283617){return _0x283617[_0x85e9('0x21')]()[_0x85e9('0x20')](function(){_0x31444e[_0x85e9('0x15')](0xcc)[_0x85e9('0x16')]();});}};}function handleEntityNotFound(_0x31a2ab,_0x470588){return function(_0x1d0e6b){if(!_0x1d0e6b){_0x31a2ab['sendStatus'](0x194);}return _0x1d0e6b;};}function handleError(_0x456e2c,_0x5b4951){_0x5b4951=_0x5b4951||0x1f4;return function(_0x51384c){logger[_0x85e9('0x22')](_0x51384c[_0x85e9('0x23')]);if(_0x51384c[_0x85e9('0x24')]){delete _0x51384c[_0x85e9('0x24')];}_0x456e2c['status'](_0x5b4951)[_0x85e9('0x25')](_0x51384c);};}exports[_0x85e9('0x26')]=function(_0x92ded9,_0x548e8f){var _0x5402fb={},_0xa309dc={},_0x2413d4={'count':0x0,'rows':[]};var _0xf05e68=_[_0x85e9('0x27')](db[_0x85e9('0x28')][_0x85e9('0x29')],function(_0x29ee1d){return{'name':_0x29ee1d[_0x85e9('0x2a')],'type':_0x29ee1d['type']['key']};});_0xa309dc['model']=_[_0x85e9('0x27')](_0xf05e68,_0x85e9('0x24'));_0xa309dc[_0x85e9('0x2b')]=_['keys'](_0x92ded9['query']);_0xa309dc[_0x85e9('0x2c')]=_['intersection'](_0xa309dc[_0x85e9('0x2d')],_0xa309dc[_0x85e9('0x2b')]);_0x5402fb[_0x85e9('0x2e')]=_[_0x85e9('0x2f')](_0xa309dc[_0x85e9('0x2d')],qs[_0x85e9('0x30')](_0x92ded9[_0x85e9('0x2b')][_0x85e9('0x30')]));_0x5402fb[_0x85e9('0x2e')]=_0x5402fb[_0x85e9('0x2e')][_0x85e9('0x31')]?_0x5402fb[_0x85e9('0x2e')]:_0xa309dc['model'];if(!_0x92ded9[_0x85e9('0x2b')][_0x85e9('0x32')](_0x85e9('0x33'))){_0x5402fb[_0x85e9('0x19')]=qs[_0x85e9('0x19')](_0x92ded9[_0x85e9('0x2b')][_0x85e9('0x19')]);_0x5402fb[_0x85e9('0x17')]=qs[_0x85e9('0x17')](_0x92ded9['query'][_0x85e9('0x17')]);}_0x5402fb['order']=qs[_0x85e9('0x34')](_0x92ded9[_0x85e9('0x2b')][_0x85e9('0x34')]);_0x5402fb[_0x85e9('0x35')]=qs['filters'](_[_0x85e9('0x36')](_0x92ded9[_0x85e9('0x2b')],_0xa309dc[_0x85e9('0x2c')]),_0xf05e68);if(_0x92ded9[_0x85e9('0x2b')][_0x85e9('0x37')]){_0x5402fb['where']=_[_0x85e9('0x38')](_0x5402fb[_0x85e9('0x35')],{'$or':_[_0x85e9('0x27')](_0xf05e68,function(_0x133eaa){if(_0x133eaa[_0x85e9('0x39')]!==_0x85e9('0x3a')){var _0x394421={};_0x394421[_0x133eaa[_0x85e9('0x24')]]={'$like':'%'+_0x92ded9[_0x85e9('0x2b')]['filter']+'%'};return _0x394421;}})});}_0x5402fb=_[_0x85e9('0x38')]({},_0x5402fb,_0x92ded9['options']);var _0x10d481={'where':_0x5402fb[_0x85e9('0x35')]};return db['SugarcrmAccount'][_0x85e9('0x1a')](_0x10d481)[_0x85e9('0x20')](function(_0x5259ac){_0x2413d4['count']=_0x5259ac;if(_0x92ded9[_0x85e9('0x2b')][_0x85e9('0x3b')]){_0x5402fb[_0x85e9('0x3c')]=[{'all':!![]}];}return db[_0x85e9('0x28')]['findAll'](_0x5402fb);})[_0x85e9('0x20')](function(_0x641bde){_0x2413d4[_0x85e9('0x3d')]=_0x641bde;return _0x2413d4;})['then'](respondWithFilteredResult(_0x548e8f,_0x5402fb))[_0x85e9('0x3e')](handleError(_0x548e8f,null));};exports[_0x85e9('0x3f')]=function(_0x115fb7,_0x11c072){var _0xf00b41={'raw':![],'where':{'id':_0x115fb7[_0x85e9('0x40')]['id']}},_0x589865={};_0x589865['model']=_[_0x85e9('0x41')](db[_0x85e9('0x28')][_0x85e9('0x29')]);_0x589865['query']=_[_0x85e9('0x41')](_0x115fb7[_0x85e9('0x2b')]);_0x589865['filters']=_[_0x85e9('0x2f')](_0x589865[_0x85e9('0x2d')],_0x589865['query']);_0xf00b41['attributes']=_[_0x85e9('0x2f')](_0x589865[_0x85e9('0x2d')],qs[_0x85e9('0x30')](_0x115fb7['query']['fields']));_0xf00b41[_0x85e9('0x2e')]=_0xf00b41[_0x85e9('0x2e')][_0x85e9('0x31')]?_0xf00b41[_0x85e9('0x2e')]:_0x589865[_0x85e9('0x2d')];if(_0x115fb7[_0x85e9('0x2b')][_0x85e9('0x3b')]){_0xf00b41['include']=[{'all':!![]}];}_0xf00b41=_[_0x85e9('0x38')]({},_0xf00b41,_0x115fb7[_0x85e9('0x42')]);return db[_0x85e9('0x28')][_0x85e9('0x43')](_0xf00b41)[_0x85e9('0x20')](handleEntityNotFound(_0x11c072,null))[_0x85e9('0x20')](respondWithResult(_0x11c072,null))[_0x85e9('0x3e')](handleError(_0x11c072,null));};exports['create']=function(_0x4d541d,_0x156d42){return db['SugarcrmAccount'][_0x85e9('0x44')](_0x4d541d[_0x85e9('0x45')],{})[_0x85e9('0x20')](respondWithResult(_0x156d42,0xc9))[_0x85e9('0x3e')](handleError(_0x156d42,null));};exports[_0x85e9('0x1f')]=function(_0x55a097,_0xc02cf){if(_0x55a097['body']['id']){delete _0x55a097['body']['id'];}return db[_0x85e9('0x28')]['find']({'where':{'id':_0x55a097[_0x85e9('0x40')]['id']}})[_0x85e9('0x20')](handleEntityNotFound(_0xc02cf,null))[_0x85e9('0x20')](saveUpdates(_0x55a097['body'],null))[_0x85e9('0x20')](respondWithResult(_0xc02cf,null))[_0x85e9('0x3e')](handleError(_0xc02cf,null));};exports[_0x85e9('0x21')]=function(_0x3a1b6f,_0x272a97){return db[_0x85e9('0x28')][_0x85e9('0x43')]({'where':{'id':_0x3a1b6f[_0x85e9('0x40')]['id']}})['then'](handleEntityNotFound(_0x272a97,null))[_0x85e9('0x20')](removeEntity(_0x272a97,null))['catch'](handleError(_0x272a97,null));};exports[_0x85e9('0x46')]=function(_0x4847d6,_0xa89b05,_0x2ca2b0){var _0xb4f402={};var _0xf908ce={};var _0x2ef54a;var _0x5e326c;return db[_0x85e9('0x28')]['findOne']({'where':{'id':_0x4847d6[_0x85e9('0x40')]['id']}})[_0x85e9('0x20')](handleEntityNotFound(_0xa89b05,null))[_0x85e9('0x20')](function(_0x36a091){if(_0x36a091){_0x2ef54a=_0x36a091;_0xf908ce[_0x85e9('0x2d')]=_['keys'](db[_0x85e9('0x47')][_0x85e9('0x29')]);_0xf908ce[_0x85e9('0x2b')]=_[_0x85e9('0x41')](_0x4847d6[_0x85e9('0x2b')]);_0xf908ce[_0x85e9('0x2c')]=_[_0x85e9('0x2f')](_0xf908ce[_0x85e9('0x2d')],_0xf908ce[_0x85e9('0x2b')]);_0xb4f402[_0x85e9('0x2e')]=_[_0x85e9('0x2f')](_0xf908ce['model'],qs[_0x85e9('0x30')](_0x4847d6[_0x85e9('0x2b')][_0x85e9('0x30')]));_0xb4f402['attributes']=_0xb4f402[_0x85e9('0x2e')][_0x85e9('0x31')]?_0xb4f402['attributes']:_0xf908ce[_0x85e9('0x2d')];_0xb4f402[_0x85e9('0x48')]=qs['sort'](_0x4847d6['query'][_0x85e9('0x34')]);_0xb4f402[_0x85e9('0x35')]=qs['filters'](_['pick'](_0x4847d6[_0x85e9('0x2b')],_0xf908ce[_0x85e9('0x2c')]));if(_0x4847d6[_0x85e9('0x2b')]['filter']){_0xb4f402[_0x85e9('0x35')]=_[_0x85e9('0x38')](_0xb4f402['where'],{'$or':_['map'](_0xb4f402[_0x85e9('0x2e')],function(_0x33344b){var _0x264c1e={};_0x264c1e[_0x33344b]={'$like':'%'+_0x4847d6['query'][_0x85e9('0x37')]+'%'};return _0x264c1e;})});}_0xb4f402=_[_0x85e9('0x38')]({},_0xb4f402,_0x4847d6[_0x85e9('0x42')]);return _0x2ef54a['getConfigurations'](_0xb4f402);}})[_0x85e9('0x20')](function(_0x1f9fe5){if(_0x1f9fe5){_0x5e326c=_0x1f9fe5[_0x85e9('0x31')];if(!_0x4847d6[_0x85e9('0x2b')][_0x85e9('0x32')](_0x85e9('0x33'))){_0xb4f402[_0x85e9('0x19')]=qs['limit'](_0x4847d6[_0x85e9('0x2b')][_0x85e9('0x19')]);_0xb4f402[_0x85e9('0x17')]=qs['offset'](_0x4847d6['query']['offset']);}return _0x2ef54a[_0x85e9('0x46')](_0xb4f402);}})[_0x85e9('0x20')](function(_0x3902c8){if(_0x3902c8){return _0x3902c8?{'count':_0x5e326c,'rows':_0x3902c8}:null;}})['then'](respondWithResult(_0xa89b05,null))['catch'](handleError(_0xa89b05,null));};exports[_0x85e9('0x49')]=function(_0x38702a,_0x2a79db,_0x581b1e){if(_0x38702a[_0x85e9('0x45')]['id']){delete _0x38702a[_0x85e9('0x45')]['id'];}return db[_0x85e9('0x28')][_0x85e9('0x4a')]({'where':{'id':_0x38702a[_0x85e9('0x40')]['id']}})[_0x85e9('0x20')](handleEntityNotFound(_0x2a79db,null))[_0x85e9('0x20')](function(_0x277067){if(_0x277067){_0x38702a[_0x85e9('0x45')][_0x85e9('0x4b')]=_0x277067['id'];_0x38702a[_0x85e9('0x45')][_0x85e9('0x4c')]=integrations['getSubjects'](_0x38702a[_0x85e9('0x45')][_0x85e9('0x4d')],_0x38702a[_0x85e9('0x45')]['type']);_0x38702a[_0x85e9('0x45')][_0x85e9('0x4e')]=integrations[_0x85e9('0x4f')](_0x38702a['body'][_0x85e9('0x4d')],_0x38702a[_0x85e9('0x45')][_0x85e9('0x39')]);return db[_0x85e9('0x47')]['create'](_0x38702a['body'],{'include':[{'model':db[_0x85e9('0x50')],'as':_0x85e9('0x4c')},{'model':db[_0x85e9('0x50')],'as':_0x85e9('0x4e')}]});}return null;})['then'](respondWithResult(_0x2a79db,null))[_0x85e9('0x3e')](handleError(_0x2a79db,null));};exports[_0x85e9('0x51')]=function(_0x4f7705,_0x1db09c,_0x387c3e){var _0x4a4372='';var _0x56251a=['id',_0x85e9('0x24'),_0x85e9('0x52'),_0x85e9('0x53'),_0x85e9('0x54'),_0x85e9('0x55'),'duration_hours',_0x85e9('0x56'),'parent_id',_0x85e9('0x57'),_0x85e9('0x58'),_0x85e9('0x59')];return db[_0x85e9('0x28')]['findOne']({'where':{'id':_0x4f7705[_0x85e9('0x40')]['id']},'attributes':['id',_0x85e9('0x5a'),_0x85e9('0x5b'),_0x85e9('0x5c')]})[_0x85e9('0x20')](handleEntityNotFound(_0x1db09c,null))[_0x85e9('0x20')](function(_0x5790af){if(_0x5790af){_0x4a4372=_0x5790af[_0x85e9('0x5c')];var _0x5beb4a=_0x4a4372[_0x85e9('0x5d')](-0x1);if(_0x5beb4a==='/'){_0x4a4372=_0x4a4372[_0x85e9('0x5e')](0x0,_0x4a4372[_0x85e9('0x5f')](_0x5beb4a));}return rp({'method':_0x85e9('0x60'),'uri':util[_0x85e9('0x61')](_0x85e9('0x62'),_0x4a4372,_0x85e9('0x63')),'json':!![],'form':{'method':_0x85e9('0x64'),'input_type':_0x85e9('0x65'),'response_type':_0x85e9('0x65'),'rest_data':JSON[_0x85e9('0x66')]({'user_auth':{'user_name':_0x5790af[_0x85e9('0x5a')],'password':_0x5790af[_0x85e9('0x5b')],'encryption':_0x85e9('0x67')},'application':'xCALLY\x20Motion\x20Integration'})}});}})['then'](function(_0x582089){if(_0x582089&&_0x582089[_0x85e9('0x24')]!==_0x85e9('0x68')&&_0x582089[_0x85e9('0x24')]!=='Password\x20Expired'){return rp({'method':_0x85e9('0x60'),'uri':util[_0x85e9('0x61')](_0x85e9('0x62'),_0x4a4372,_0x85e9('0x63')),'json':!![],'form':{'method':_0x85e9('0x69'),'input_type':_0x85e9('0x65'),'response_type':_0x85e9('0x65'),'rest_data':JSON[_0x85e9('0x66')]({'session':_0x582089['id'],'module_name':_0x85e9('0x6a')})}})[_0x85e9('0x20')](function(_0x299800){if(_0x299800){var _0x3be17d=_['values'](_0x299800[_0x85e9('0x6b')]);_['remove'](_0x3be17d,function(_0x20d7c0){return _0x56251a['includes'](_0x20d7c0[_0x85e9('0x24')]);});return{'count':_0x3be17d[_0x85e9('0x31')],'rows':_[_0x85e9('0x27')](_0x3be17d,function(_0x16e610){return{'id':_0x16e610[_0x85e9('0x24')],'name':_0x16e610['label'],'custom':_[_0x85e9('0x6c')](_0x16e610['name'],'_c')?!![]:![],'options':_0x16e610[_0x85e9('0x42')]?_[_0x85e9('0x27')](_[_0x85e9('0x6d')](_0x16e610[_0x85e9('0x42')]),function(_0x57b6b9){return{'name':_0x57b6b9[_0x85e9('0x6e')],'value':_0x57b6b9[_0x85e9('0x24')]};}):[]};})};}})['then'](respondWithResult(_0x1db09c,null))[_0x85e9('0x3e')](function(_0x11bb8b){var _0x3cbf80=_0x4f7705[_0x85e9('0x2b')]['test']?0x1f4:_0x11bb8b[_0x85e9('0x6f')]||0x1f4;logger[_0x85e9('0x22')]('getFields,\x20%s,\x20%s,\x20%s',_0x85e9('0x51'),_0x3cbf80,JSON['stringify'](_0x11bb8b));delete _0x11bb8b[_0x85e9('0x24')];if(_0x3cbf80===0x191){_0x3cbf80=0x190;}_0x1db09c['status'](_0x3cbf80)[_0x85e9('0x25')](_0x4f7705[_0x85e9('0x2b')][_0x85e9('0x70')]?{'message':_0x85e9('0x71'),'statusCode':_0x11bb8b[_0x85e9('0x6f')]}:_0x11bb8b);});}else{var _0x1508f2=0x1f4;_0x1db09c[_0x85e9('0x15')](_0x1508f2)[_0x85e9('0x25')]({'message':_0x85e9('0x71'),'statusCode':0x190});}});};