f18290b9142afd6d20b7b50e16c8b0b0aebdddb6
[motion2.git] / server / api / intVtigerAccount / intVtigerAccount.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 _0x0170=['offset','undefined','count','limit','set','apply','reject','update','then','destroy','error','stack','name','index','map','VtigerAccount','rawAttributes','fieldName','type','key','query','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','getConfigurations','findOne','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','VtigerConfiguration','VtigerField','md5','getFields','username','description','moduleName','remoteUri','serverUrl','accessKey','substring','lastIndexOf','format','GET','success','POST','result','token','describe','sessionName','autogenerated','reference','remove','includes','editable','label','startsWith','cf_','picklist','picklistValues','log','vTiger\x20error:\x20','statusCode','getFields,\x20%s,\x20%s,\x20%s','send','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end'];(function(_0x128bef,_0xc7a0af){var _0x1ba862=function(_0x4858e8){while(--_0x4858e8){_0x128bef['push'](_0x128bef['shift']());}};_0x1ba862(++_0xc7a0af);}(_0x0170,0x156));var _0x0017=function(_0x1e44e1,_0x3c5b37){_0x1e44e1=_0x1e44e1-0x0;var _0x14cd1f=_0x0170[_0x1e44e1];return _0x14cd1f;};'use strict';var emlformat=require(_0x0017('0x0'));var rimraf=require(_0x0017('0x1'));var zipdir=require(_0x0017('0x2'));var jsonpatch=require(_0x0017('0x3'));var rp=require(_0x0017('0x4'));var moment=require(_0x0017('0x5'));var BPromise=require(_0x0017('0x6'));var Mustache=require(_0x0017('0x7'));var util=require(_0x0017('0x8'));var path=require(_0x0017('0x9'));var sox=require(_0x0017('0xa'));var csv=require(_0x0017('0xb'));var ejs=require(_0x0017('0xc'));var fs=require('fs');var fs_extra=require(_0x0017('0xd'));var _=require('lodash');var squel=require(_0x0017('0xe'));var crypto=require(_0x0017('0xf'));var jsforce=require(_0x0017('0x10'));var deskjs=require(_0x0017('0x11'));var toCsv=require(_0x0017('0xb'));var querystring=require(_0x0017('0x12'));var Papa=require(_0x0017('0x13'));var Redis=require(_0x0017('0x14'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0017('0x15'));var logger=require(_0x0017('0x16'))(_0x0017('0x17'));var utils=require('../../config/utils');var config=require(_0x0017('0x18'));var licenseUtil=require(_0x0017('0x19'));var db=require('../../mysqldb')['db'];var integrations=require(_0x0017('0x1a'));function respondWithStatusCode(_0x172031,_0x350260){_0x350260=_0x350260||0xcc;return function(_0xc2cd9f){if(_0xc2cd9f){return _0x172031[_0x0017('0x1b')](_0x350260);}return _0x172031[_0x0017('0x1c')](_0x350260)[_0x0017('0x1d')]();};}function respondWithResult(_0x13bd9a,_0x57ce77){_0x57ce77=_0x57ce77||0xc8;return function(_0x5d76a2){if(_0x5d76a2){return _0x13bd9a[_0x0017('0x1c')](_0x57ce77)['json'](_0x5d76a2);}};}function respondWithFilteredResult(_0x5bbde0,_0x2bdebc){return function(_0x40f312){if(_0x40f312){var _0x547181=typeof _0x2bdebc[_0x0017('0x1e')]===_0x0017('0x1f')&&typeof _0x2bdebc['limit']===_0x0017('0x1f');var _0x5e5039=_0x40f312[_0x0017('0x20')];var _0x23a39f=_0x547181?0x0:_0x2bdebc['offset'];var _0x106430=_0x547181?_0x40f312['count']:_0x2bdebc[_0x0017('0x1e')]+_0x2bdebc[_0x0017('0x21')];var _0x3da9c8;if(_0x106430>=_0x5e5039){_0x106430=_0x5e5039;_0x3da9c8=0xc8;}else{_0x3da9c8=0xce;}_0x5bbde0[_0x0017('0x1c')](_0x3da9c8);return _0x5bbde0[_0x0017('0x22')]('Content-Range',_0x23a39f+'-'+_0x106430+'/'+_0x5e5039)['json'](_0x40f312);}return null;};}function patchUpdates(_0x52bd26){return function(_0x331493){try{jsonpatch[_0x0017('0x23')](_0x331493,_0x52bd26,!![]);}catch(_0x3864f3){return BPromise[_0x0017('0x24')](_0x3864f3);}return _0x331493['save']();};}function saveUpdates(_0x3f080a,_0x19a664){return function(_0x2766e0){if(_0x2766e0){return _0x2766e0[_0x0017('0x25')](_0x3f080a)[_0x0017('0x26')](function(_0x12df1d){return _0x12df1d;});}return null;};}function removeEntity(_0x56f124,_0x292848){return function(_0x4b0532){if(_0x4b0532){return _0x4b0532[_0x0017('0x27')]()[_0x0017('0x26')](function(){_0x56f124[_0x0017('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x13daca,_0x2e8583){return function(_0x26a422){if(!_0x26a422){_0x13daca['sendStatus'](0x194);}return _0x26a422;};}function handleError(_0x5cea5a,_0x415bd9){_0x415bd9=_0x415bd9||0x1f4;return function(_0x463940){logger[_0x0017('0x28')](_0x463940[_0x0017('0x29')]);if(_0x463940[_0x0017('0x2a')]){delete _0x463940['name'];}_0x5cea5a[_0x0017('0x1c')](_0x415bd9)['send'](_0x463940);};}exports[_0x0017('0x2b')]=function(_0x1547e6,_0x4dce0b){var _0x51687e={},_0x29ec6d={},_0x240e4d={'count':0x0,'rows':[]};var _0x289a5f=_[_0x0017('0x2c')](db[_0x0017('0x2d')][_0x0017('0x2e')],function(_0x579a9d){return{'name':_0x579a9d[_0x0017('0x2f')],'type':_0x579a9d[_0x0017('0x30')][_0x0017('0x31')]};});_0x29ec6d['model']=_['map'](_0x289a5f,'name');_0x29ec6d[_0x0017('0x32')]=_['keys'](_0x1547e6[_0x0017('0x32')]);_0x29ec6d['filters']=_['intersection'](_0x29ec6d[_0x0017('0x33')],_0x29ec6d[_0x0017('0x32')]);_0x51687e[_0x0017('0x34')]=_[_0x0017('0x35')](_0x29ec6d[_0x0017('0x33')],qs[_0x0017('0x36')](_0x1547e6[_0x0017('0x32')]['fields']));_0x51687e[_0x0017('0x34')]=_0x51687e['attributes'][_0x0017('0x37')]?_0x51687e[_0x0017('0x34')]:_0x29ec6d[_0x0017('0x33')];if(!_0x1547e6[_0x0017('0x32')][_0x0017('0x38')](_0x0017('0x39'))){_0x51687e[_0x0017('0x21')]=qs['limit'](_0x1547e6[_0x0017('0x32')][_0x0017('0x21')]);_0x51687e[_0x0017('0x1e')]=qs[_0x0017('0x1e')](_0x1547e6[_0x0017('0x32')]['offset']);}_0x51687e[_0x0017('0x3a')]=qs['sort'](_0x1547e6[_0x0017('0x32')][_0x0017('0x3b')]);_0x51687e[_0x0017('0x3c')]=qs[_0x0017('0x3d')](_[_0x0017('0x3e')](_0x1547e6[_0x0017('0x32')],_0x29ec6d[_0x0017('0x3d')]),_0x289a5f);if(_0x1547e6[_0x0017('0x32')][_0x0017('0x3f')]){_0x51687e[_0x0017('0x3c')]=_[_0x0017('0x40')](_0x51687e[_0x0017('0x3c')],{'$or':_['map'](_0x289a5f,function(_0x2f8a2f){if(_0x2f8a2f['type']!==_0x0017('0x41')){var _0x2b372f={};_0x2b372f[_0x2f8a2f[_0x0017('0x2a')]]={'$like':'%'+_0x1547e6[_0x0017('0x32')][_0x0017('0x3f')]+'%'};return _0x2b372f;}})});}_0x51687e=_[_0x0017('0x40')]({},_0x51687e,_0x1547e6[_0x0017('0x42')]);var _0x3e699b={'where':_0x51687e[_0x0017('0x3c')]};return db[_0x0017('0x2d')][_0x0017('0x20')](_0x3e699b)[_0x0017('0x26')](function(_0x56effe){_0x240e4d['count']=_0x56effe;if(_0x1547e6[_0x0017('0x32')][_0x0017('0x43')]){_0x51687e[_0x0017('0x44')]=[{'all':!![]}];}return db[_0x0017('0x2d')][_0x0017('0x45')](_0x51687e);})[_0x0017('0x26')](function(_0x145ef5){_0x240e4d[_0x0017('0x46')]=_0x145ef5;return _0x240e4d;})['then'](respondWithFilteredResult(_0x4dce0b,_0x51687e))[_0x0017('0x47')](handleError(_0x4dce0b,null));};exports[_0x0017('0x48')]=function(_0x185fee,_0x6f52bb){var _0xa8b28d={'raw':![],'where':{'id':_0x185fee[_0x0017('0x49')]['id']}},_0x5dc6a6={};_0x5dc6a6['model']=_[_0x0017('0x4a')](db[_0x0017('0x2d')][_0x0017('0x2e')]);_0x5dc6a6['query']=_[_0x0017('0x4a')](_0x185fee[_0x0017('0x32')]);_0x5dc6a6[_0x0017('0x3d')]=_[_0x0017('0x35')](_0x5dc6a6['model'],_0x5dc6a6[_0x0017('0x32')]);_0xa8b28d[_0x0017('0x34')]=_[_0x0017('0x35')](_0x5dc6a6[_0x0017('0x33')],qs[_0x0017('0x36')](_0x185fee['query'][_0x0017('0x36')]));_0xa8b28d[_0x0017('0x34')]=_0xa8b28d[_0x0017('0x34')][_0x0017('0x37')]?_0xa8b28d[_0x0017('0x34')]:_0x5dc6a6['model'];if(_0x185fee[_0x0017('0x32')][_0x0017('0x43')]){_0xa8b28d[_0x0017('0x44')]=[{'all':!![]}];}_0xa8b28d=_[_0x0017('0x40')]({},_0xa8b28d,_0x185fee[_0x0017('0x42')]);return db[_0x0017('0x2d')][_0x0017('0x4b')](_0xa8b28d)[_0x0017('0x26')](handleEntityNotFound(_0x6f52bb,null))[_0x0017('0x26')](respondWithResult(_0x6f52bb,null))[_0x0017('0x47')](handleError(_0x6f52bb,null));};exports['create']=function(_0xbf4363,_0x38636a){return db[_0x0017('0x2d')][_0x0017('0x4c')](_0xbf4363[_0x0017('0x4d')],{})[_0x0017('0x26')](respondWithResult(_0x38636a,0xc9))[_0x0017('0x47')](handleError(_0x38636a,null));};exports[_0x0017('0x25')]=function(_0x4b2f84,_0x1a7dee){if(_0x4b2f84[_0x0017('0x4d')]['id']){delete _0x4b2f84['body']['id'];}return db[_0x0017('0x2d')][_0x0017('0x4b')]({'where':{'id':_0x4b2f84[_0x0017('0x49')]['id']}})[_0x0017('0x26')](handleEntityNotFound(_0x1a7dee,null))[_0x0017('0x26')](saveUpdates(_0x4b2f84['body'],null))[_0x0017('0x26')](respondWithResult(_0x1a7dee,null))['catch'](handleError(_0x1a7dee,null));};exports[_0x0017('0x27')]=function(_0x233011,_0x72d887){return db[_0x0017('0x2d')]['find']({'where':{'id':_0x233011[_0x0017('0x49')]['id']}})[_0x0017('0x26')](handleEntityNotFound(_0x72d887,null))['then'](removeEntity(_0x72d887,null))[_0x0017('0x47')](handleError(_0x72d887,null));};exports[_0x0017('0x4e')]=function(_0x39735e,_0x4839a6,_0x4985a9){var _0x2e828d={};var _0x117d20={};var _0x5e11de;var _0x290213;return db[_0x0017('0x2d')][_0x0017('0x4f')]({'where':{'id':_0x39735e[_0x0017('0x49')]['id']}})[_0x0017('0x26')](handleEntityNotFound(_0x4839a6,null))[_0x0017('0x26')](function(_0x5f49c8){if(_0x5f49c8){_0x5e11de=_0x5f49c8;_0x117d20[_0x0017('0x33')]=_[_0x0017('0x4a')](db['VtigerConfiguration']['rawAttributes']);_0x117d20['query']=_[_0x0017('0x4a')](_0x39735e['query']);_0x117d20[_0x0017('0x3d')]=_[_0x0017('0x35')](_0x117d20[_0x0017('0x33')],_0x117d20[_0x0017('0x32')]);_0x2e828d['attributes']=_[_0x0017('0x35')](_0x117d20[_0x0017('0x33')],qs[_0x0017('0x36')](_0x39735e[_0x0017('0x32')][_0x0017('0x36')]));_0x2e828d['attributes']=_0x2e828d['attributes'][_0x0017('0x37')]?_0x2e828d[_0x0017('0x34')]:_0x117d20[_0x0017('0x33')];_0x2e828d[_0x0017('0x3a')]=qs[_0x0017('0x3b')](_0x39735e[_0x0017('0x32')]['sort']);_0x2e828d[_0x0017('0x3c')]=qs[_0x0017('0x3d')](_['pick'](_0x39735e[_0x0017('0x32')],_0x117d20[_0x0017('0x3d')]));if(_0x39735e[_0x0017('0x32')][_0x0017('0x3f')]){_0x2e828d[_0x0017('0x3c')]=_[_0x0017('0x40')](_0x2e828d[_0x0017('0x3c')],{'$or':_[_0x0017('0x2c')](_0x2e828d[_0x0017('0x34')],function(_0x14ffe4){var _0xa21de7={};_0xa21de7[_0x14ffe4]={'$like':'%'+_0x39735e[_0x0017('0x32')][_0x0017('0x3f')]+'%'};return _0xa21de7;})});}_0x2e828d=_[_0x0017('0x40')]({},_0x2e828d,_0x39735e[_0x0017('0x42')]);return _0x5e11de[_0x0017('0x4e')](_0x2e828d);}})[_0x0017('0x26')](function(_0x290d3b){if(_0x290d3b){_0x290213=_0x290d3b[_0x0017('0x37')];if(!_0x39735e['query'][_0x0017('0x38')](_0x0017('0x39'))){_0x2e828d[_0x0017('0x21')]=qs[_0x0017('0x21')](_0x39735e['query'][_0x0017('0x21')]);_0x2e828d['offset']=qs[_0x0017('0x1e')](_0x39735e[_0x0017('0x32')]['offset']);}return _0x5e11de[_0x0017('0x4e')](_0x2e828d);}})[_0x0017('0x26')](function(_0x5ceb2c){if(_0x5ceb2c){return _0x5ceb2c?{'count':_0x290213,'rows':_0x5ceb2c}:null;}})['then'](respondWithResult(_0x4839a6,null))[_0x0017('0x47')](handleError(_0x4839a6,null));};exports[_0x0017('0x50')]=function(_0x147936,_0x442c08,_0x499aa1){if(_0x147936[_0x0017('0x4d')]['id']){delete _0x147936[_0x0017('0x4d')]['id'];}return db[_0x0017('0x2d')][_0x0017('0x4f')]({'where':{'id':_0x147936[_0x0017('0x49')]['id']}})[_0x0017('0x26')](handleEntityNotFound(_0x442c08,null))[_0x0017('0x26')](function(_0x27e711){if(_0x27e711){_0x147936['body'][_0x0017('0x51')]=_0x27e711['id'];_0x147936['body'][_0x0017('0x52')]=integrations[_0x0017('0x53')](_0x147936[_0x0017('0x4d')][_0x0017('0x54')],_0x147936[_0x0017('0x4d')]['type']);_0x147936[_0x0017('0x4d')][_0x0017('0x55')]=integrations[_0x0017('0x56')](_0x147936[_0x0017('0x4d')]['channel'],_0x147936[_0x0017('0x4d')]['type']);return db[_0x0017('0x57')]['create'](_0x147936['body'],{'include':[{'model':db[_0x0017('0x58')],'as':_0x0017('0x52')},{'model':db[_0x0017('0x58')],'as':_0x0017('0x55')}]});}return null;})[_0x0017('0x26')](respondWithResult(_0x442c08,null))['catch'](handleError(_0x442c08,null));};var md5=require(_0x0017('0x59'));exports[_0x0017('0x5a')]=function(_0x543056,_0x21963d,_0x17cd0a){var _0x58f020=null;var _0x59d351=null;var _0x1ff220=null;var _0x537e0c=null;var _0x274ad7='';return db[_0x0017('0x2d')]['findOne']({'where':{'id':_0x543056[_0x0017('0x49')]['id']},'attributes':['id',_0x0017('0x2a'),_0x0017('0x5b'),_0x0017('0x5c'),_0x0017('0x5d'),_0x0017('0x5e'),_0x0017('0x5f'),_0x0017('0x60')]})['then'](handleEntityNotFound(_0x21963d,null))[_0x0017('0x26')](function(_0x26cdfb){if(_0x26cdfb){_0x58f020=_0x26cdfb['username'];_0x59d351=_0x26cdfb[_0x0017('0x60')];_0x1ff220=_0x26cdfb['moduleName'];_0x274ad7=_0x26cdfb[_0x0017('0x5e')];var _0x20e401=_0x274ad7['slice'](-0x1);if(_0x20e401==='/'){_0x274ad7=_0x274ad7[_0x0017('0x61')](0x0,_0x274ad7[_0x0017('0x62')](_0x20e401));}_0x537e0c=util[_0x0017('0x63')]('%s/webservice.php',_0x274ad7);var _0x1ca11d={'method':_0x0017('0x64'),'uri':_0x537e0c,'qs':{'operation':'getchallenge','username':_0x26cdfb['username']},'json':!![]};return rp(_0x1ca11d);}})[_0x0017('0x26')](function(_0x16dd57){if(_0x16dd57[_0x0017('0x65')]){var _0x2d47e1={'method':_0x0017('0x66'),'uri':_0x537e0c,'form':{'operation':'login','username':_0x58f020,'accessKey':md5(_0x16dd57[_0x0017('0x67')][_0x0017('0x68')]+_0x59d351)},'json':!![]};return rp(_0x2d47e1);}})[_0x0017('0x26')](function(_0x57e4e9){if(_0x57e4e9[_0x0017('0x65')]){var _0x31928e={'method':_0x0017('0x64'),'uri':_0x537e0c,'qs':{'operation':_0x0017('0x69'),'username':_0x58f020,'sessionName':_0x57e4e9[_0x0017('0x67')][_0x0017('0x6a')],'elementType':_0x1ff220},'json':!![]};return rp(_0x31928e);}})[_0x0017('0x26')](function(_0x3e73fe){if(_0x3e73fe['success']){var _0x63edae=[_0x0017('0x6b'),_0x0017('0x6c'),'owner'];_[_0x0017('0x6d')](_0x3e73fe['result'][_0x0017('0x36')],function(_0x3b5f0d){return _0x63edae[_0x0017('0x6e')](_0x3b5f0d['type'][_0x0017('0x2a')]);});_[_0x0017('0x6d')](_0x3e73fe[_0x0017('0x67')][_0x0017('0x36')],function(_0x1b32dd){return _0x1b32dd[_0x0017('0x6f')]==='false';});return{'count':_0x3e73fe['result'][_0x0017('0x36')][_0x0017('0x37')],'rows':_['map'](_0x3e73fe[_0x0017('0x67')]['fields'],function(_0x5edf93){return{'id':_0x5edf93[_0x0017('0x2a')],'name':_0x5edf93[_0x0017('0x70')],'custom':_[_0x0017('0x71')](_0x5edf93[_0x0017('0x2a')],_0x0017('0x72'))?!![]:![],'options':_0x5edf93[_0x0017('0x30')][_0x0017('0x2a')]===_0x0017('0x73')&&_0x5edf93['type'][_0x0017('0x74')]['length']>0x0?_[_0x0017('0x2c')](_0x5edf93[_0x0017('0x30')][_0x0017('0x74')],function(_0x1baaba){return{'name':_0x1baaba[_0x0017('0x70')],'value':_0x1baaba['value']};}):[]};})};}})[_0x0017('0x26')](respondWithResult(_0x21963d,null))[_0x0017('0x47')](function(_0x28d96e){console[_0x0017('0x75')](_0x0017('0x76')+_0x28d96e);var _0x4ff263=_0x543056[_0x0017('0x32')]['test']?0x1f4:_0x28d96e[_0x0017('0x77')]||0x1f4;logger[_0x0017('0x28')](_0x0017('0x78'),_0x0017('0x5a'),_0x4ff263,JSON['stringify'](_0x28d96e));delete _0x28d96e[_0x0017('0x2a')];if(_0x4ff263===0x191){_0x4ff263=0x190;}_0x21963d[_0x0017('0x1c')](_0x4ff263)[_0x0017('0x79')](_0x543056[_0x0017('0x32')][_0x0017('0x7a')]?{'message':_0x0017('0x7b'),'statusCode':_0x28d96e[_0x0017('0x77')]}:_0x28d96e);});};