7f24a78eb4ec6a87d18fe70044081a1ff57b3a3e
[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 _0x7d25=['accessKey','remoteUri','substring','lastIndexOf','format','%s/webservice.php','getchallenge','success','POST','login','GET','describe','result','sessionName','autogenerated','reference','owner','remove','false','label','cf_','picklist','picklistValues','value','vTiger\x20error:\x20','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../components/integrations/configuration','status','json','offset','limit','count','set','Content-Range','apply','reject','save','destroy','then','end','sendStatus','error','name','send','index','VtigerAccount','rawAttributes','fieldName','map','query','keys','filters','intersection','model','attributes','fields','nolimit','order','sort','pick','filter','where','type','VIRTUAL','merge','includeAll','include','findAll','rows','catch','show','params','length','create','body','update','getConfigurations','findOne','options','addConfiguration','Subjects','channel','Descriptions','getDescriptions','VtigerConfiguration','VtigerField','username','moduleName'];(function(_0x5c4c2a,_0xebe14a){var _0x325521=function(_0x22688b){while(--_0x22688b){_0x5c4c2a['push'](_0x5c4c2a['shift']());}};_0x325521(++_0xebe14a);}(_0x7d25,0x106));var _0x57d2=function(_0x1da527,_0x2dc953){_0x1da527=_0x1da527-0x0;var _0x40fc7c=_0x7d25[_0x1da527];return _0x40fc7c;};'use strict';var emlformat=require(_0x57d2('0x0'));var rimraf=require(_0x57d2('0x1'));var zipdir=require(_0x57d2('0x2'));var jsonpatch=require(_0x57d2('0x3'));var rp=require(_0x57d2('0x4'));var moment=require(_0x57d2('0x5'));var BPromise=require(_0x57d2('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x57d2('0x7'));var sox=require('sox');var csv=require(_0x57d2('0x8'));var ejs=require(_0x57d2('0x9'));var fs=require('fs');var fs_extra=require(_0x57d2('0xa'));var _=require(_0x57d2('0xb'));var squel=require(_0x57d2('0xc'));var crypto=require(_0x57d2('0xd'));var jsforce=require(_0x57d2('0xe'));var deskjs=require(_0x57d2('0xf'));var toCsv=require('to-csv');var querystring=require(_0x57d2('0x10'));var Papa=require('papaparse');var Redis=require(_0x57d2('0x11'));var authService=require(_0x57d2('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x57d2('0x13'));var hardwareService=require(_0x57d2('0x14'));var logger=require(_0x57d2('0x15'))(_0x57d2('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x57d2('0x17'));var db=require('../../mysqldb')['db'];var integrations=require(_0x57d2('0x18'));function respondWithStatusCode(_0x5765ab,_0x4f183f){_0x4f183f=_0x4f183f||0xcc;return function(_0x4fc8a9){if(_0x4fc8a9){return _0x5765ab['sendStatus'](_0x4f183f);}return _0x5765ab[_0x57d2('0x19')](_0x4f183f)['end']();};}function respondWithResult(_0x127b44,_0x56497d){_0x56497d=_0x56497d||0xc8;return function(_0x18bfe5){if(_0x18bfe5){return _0x127b44[_0x57d2('0x19')](_0x56497d)[_0x57d2('0x1a')](_0x18bfe5);}};}function respondWithFilteredResult(_0x59498b,_0x5226e4){return function(_0x5da953){if(_0x5da953){var _0x160585=typeof _0x5226e4[_0x57d2('0x1b')]==='undefined'&&typeof _0x5226e4[_0x57d2('0x1c')]==='undefined';var _0x2ced04=_0x5da953[_0x57d2('0x1d')];var _0x27d79e=_0x160585?0x0:_0x5226e4[_0x57d2('0x1b')];var _0x408be1=_0x160585?_0x5da953[_0x57d2('0x1d')]:_0x5226e4[_0x57d2('0x1b')]+_0x5226e4[_0x57d2('0x1c')];var _0x44d6b8;if(_0x408be1>=_0x2ced04){_0x408be1=_0x2ced04;_0x44d6b8=0xc8;}else{_0x44d6b8=0xce;}_0x59498b[_0x57d2('0x19')](_0x44d6b8);return _0x59498b[_0x57d2('0x1e')](_0x57d2('0x1f'),_0x27d79e+'-'+_0x408be1+'/'+_0x2ced04)[_0x57d2('0x1a')](_0x5da953);}return null;};}function patchUpdates(_0x2a57e1){return function(_0x557438){try{jsonpatch[_0x57d2('0x20')](_0x557438,_0x2a57e1,!![]);}catch(_0xdc8e38){return BPromise[_0x57d2('0x21')](_0xdc8e38);}return _0x557438[_0x57d2('0x22')]();};}function saveUpdates(_0xf97f0b,_0x4ca907){return function(_0xcc4ef6){if(_0xcc4ef6){return _0xcc4ef6['update'](_0xf97f0b)['then'](function(_0x7ef133){return _0x7ef133;});}return null;};}function removeEntity(_0x4e4f8f,_0x532059){return function(_0x4e6855){if(_0x4e6855){return _0x4e6855[_0x57d2('0x23')]()[_0x57d2('0x24')](function(){_0x4e4f8f[_0x57d2('0x19')](0xcc)[_0x57d2('0x25')]();});}};}function handleEntityNotFound(_0x29d2f1,_0x546b87){return function(_0x262dd1){if(!_0x262dd1){_0x29d2f1[_0x57d2('0x26')](0x194);}return _0x262dd1;};}function handleError(_0x10a78a,_0x5b5145){_0x5b5145=_0x5b5145||0x1f4;return function(_0x11a741){logger[_0x57d2('0x27')](_0x11a741['stack']);if(_0x11a741[_0x57d2('0x28')]){delete _0x11a741[_0x57d2('0x28')];}_0x10a78a[_0x57d2('0x19')](_0x5b5145)[_0x57d2('0x29')](_0x11a741);};}exports[_0x57d2('0x2a')]=function(_0x31799f,_0x245eba){var _0x452f76={},_0x32c5e2={},_0x2bba73={'count':0x0,'rows':[]};var _0xe44cc3=_['map'](db[_0x57d2('0x2b')][_0x57d2('0x2c')],function(_0x4d6d1){return{'name':_0x4d6d1[_0x57d2('0x2d')],'type':_0x4d6d1['type']['key']};});_0x32c5e2['model']=_[_0x57d2('0x2e')](_0xe44cc3,'name');_0x32c5e2[_0x57d2('0x2f')]=_[_0x57d2('0x30')](_0x31799f['query']);_0x32c5e2[_0x57d2('0x31')]=_[_0x57d2('0x32')](_0x32c5e2[_0x57d2('0x33')],_0x32c5e2[_0x57d2('0x2f')]);_0x452f76[_0x57d2('0x34')]=_[_0x57d2('0x32')](_0x32c5e2[_0x57d2('0x33')],qs[_0x57d2('0x35')](_0x31799f[_0x57d2('0x2f')][_0x57d2('0x35')]));_0x452f76[_0x57d2('0x34')]=_0x452f76[_0x57d2('0x34')]['length']?_0x452f76[_0x57d2('0x34')]:_0x32c5e2[_0x57d2('0x33')];if(!_0x31799f[_0x57d2('0x2f')]['hasOwnProperty'](_0x57d2('0x36'))){_0x452f76[_0x57d2('0x1c')]=qs[_0x57d2('0x1c')](_0x31799f[_0x57d2('0x2f')]['limit']);_0x452f76[_0x57d2('0x1b')]=qs['offset'](_0x31799f[_0x57d2('0x2f')][_0x57d2('0x1b')]);}_0x452f76[_0x57d2('0x37')]=qs['sort'](_0x31799f['query'][_0x57d2('0x38')]);_0x452f76['where']=qs[_0x57d2('0x31')](_[_0x57d2('0x39')](_0x31799f['query'],_0x32c5e2[_0x57d2('0x31')]),_0xe44cc3);if(_0x31799f[_0x57d2('0x2f')][_0x57d2('0x3a')]){_0x452f76[_0x57d2('0x3b')]=_['merge'](_0x452f76[_0x57d2('0x3b')],{'$or':_[_0x57d2('0x2e')](_0xe44cc3,function(_0x1960a2){if(_0x1960a2[_0x57d2('0x3c')]!==_0x57d2('0x3d')){var _0x10ecb2={};_0x10ecb2[_0x1960a2[_0x57d2('0x28')]]={'$like':'%'+_0x31799f[_0x57d2('0x2f')]['filter']+'%'};return _0x10ecb2;}})});}_0x452f76=_[_0x57d2('0x3e')]({},_0x452f76,_0x31799f['options']);var _0x4361f2={'where':_0x452f76[_0x57d2('0x3b')]};return db[_0x57d2('0x2b')]['count'](_0x4361f2)[_0x57d2('0x24')](function(_0x51923b){_0x2bba73['count']=_0x51923b;if(_0x31799f['query'][_0x57d2('0x3f')]){_0x452f76[_0x57d2('0x40')]=[{'all':!![]}];}return db[_0x57d2('0x2b')][_0x57d2('0x41')](_0x452f76);})['then'](function(_0x4bfeb0){_0x2bba73[_0x57d2('0x42')]=_0x4bfeb0;return _0x2bba73;})[_0x57d2('0x24')](respondWithFilteredResult(_0x245eba,_0x452f76))[_0x57d2('0x43')](handleError(_0x245eba,null));};exports[_0x57d2('0x44')]=function(_0x2ed81e,_0x4f54f5){var _0x41c5e3={'raw':![],'where':{'id':_0x2ed81e[_0x57d2('0x45')]['id']}},_0x25be15={};_0x25be15[_0x57d2('0x33')]=_[_0x57d2('0x30')](db['VtigerAccount'][_0x57d2('0x2c')]);_0x25be15[_0x57d2('0x2f')]=_[_0x57d2('0x30')](_0x2ed81e['query']);_0x25be15[_0x57d2('0x31')]=_[_0x57d2('0x32')](_0x25be15[_0x57d2('0x33')],_0x25be15[_0x57d2('0x2f')]);_0x41c5e3['attributes']=_[_0x57d2('0x32')](_0x25be15[_0x57d2('0x33')],qs[_0x57d2('0x35')](_0x2ed81e[_0x57d2('0x2f')][_0x57d2('0x35')]));_0x41c5e3['attributes']=_0x41c5e3[_0x57d2('0x34')][_0x57d2('0x46')]?_0x41c5e3['attributes']:_0x25be15[_0x57d2('0x33')];if(_0x2ed81e[_0x57d2('0x2f')][_0x57d2('0x3f')]){_0x41c5e3['include']=[{'all':!![]}];}_0x41c5e3=_[_0x57d2('0x3e')]({},_0x41c5e3,_0x2ed81e['options']);return db[_0x57d2('0x2b')]['find'](_0x41c5e3)[_0x57d2('0x24')](handleEntityNotFound(_0x4f54f5,null))['then'](respondWithResult(_0x4f54f5,null))[_0x57d2('0x43')](handleError(_0x4f54f5,null));};exports['create']=function(_0x33d676,_0x31ed59){return db[_0x57d2('0x2b')][_0x57d2('0x47')](_0x33d676[_0x57d2('0x48')],{})['then'](respondWithResult(_0x31ed59,0xc9))[_0x57d2('0x43')](handleError(_0x31ed59,null));};exports[_0x57d2('0x49')]=function(_0x4159bd,_0x5c3848){if(_0x4159bd[_0x57d2('0x48')]['id']){delete _0x4159bd['body']['id'];}return db[_0x57d2('0x2b')]['find']({'where':{'id':_0x4159bd[_0x57d2('0x45')]['id']}})[_0x57d2('0x24')](handleEntityNotFound(_0x5c3848,null))[_0x57d2('0x24')](saveUpdates(_0x4159bd[_0x57d2('0x48')],null))[_0x57d2('0x24')](respondWithResult(_0x5c3848,null))[_0x57d2('0x43')](handleError(_0x5c3848,null));};exports[_0x57d2('0x23')]=function(_0x392887,_0x4800fb){return db[_0x57d2('0x2b')]['find']({'where':{'id':_0x392887[_0x57d2('0x45')]['id']}})[_0x57d2('0x24')](handleEntityNotFound(_0x4800fb,null))[_0x57d2('0x24')](removeEntity(_0x4800fb,null))['catch'](handleError(_0x4800fb,null));};exports[_0x57d2('0x4a')]=function(_0x20439b,_0x1a101a,_0x35738c){var _0x2e2796={};var _0x2a9fd5={};var _0x7eb0a6;var _0x54ee22;return db[_0x57d2('0x2b')][_0x57d2('0x4b')]({'where':{'id':_0x20439b[_0x57d2('0x45')]['id']}})['then'](handleEntityNotFound(_0x1a101a,null))[_0x57d2('0x24')](function(_0x198a72){if(_0x198a72){_0x7eb0a6=_0x198a72;_0x2a9fd5[_0x57d2('0x33')]=_['keys'](db['VtigerConfiguration'][_0x57d2('0x2c')]);_0x2a9fd5[_0x57d2('0x2f')]=_['keys'](_0x20439b[_0x57d2('0x2f')]);_0x2a9fd5[_0x57d2('0x31')]=_[_0x57d2('0x32')](_0x2a9fd5[_0x57d2('0x33')],_0x2a9fd5[_0x57d2('0x2f')]);_0x2e2796[_0x57d2('0x34')]=_[_0x57d2('0x32')](_0x2a9fd5[_0x57d2('0x33')],qs[_0x57d2('0x35')](_0x20439b['query'][_0x57d2('0x35')]));_0x2e2796[_0x57d2('0x34')]=_0x2e2796[_0x57d2('0x34')][_0x57d2('0x46')]?_0x2e2796[_0x57d2('0x34')]:_0x2a9fd5[_0x57d2('0x33')];_0x2e2796['order']=qs['sort'](_0x20439b[_0x57d2('0x2f')][_0x57d2('0x38')]);_0x2e2796[_0x57d2('0x3b')]=qs[_0x57d2('0x31')](_[_0x57d2('0x39')](_0x20439b[_0x57d2('0x2f')],_0x2a9fd5['filters']));if(_0x20439b[_0x57d2('0x2f')][_0x57d2('0x3a')]){_0x2e2796['where']=_[_0x57d2('0x3e')](_0x2e2796[_0x57d2('0x3b')],{'$or':_[_0x57d2('0x2e')](_0x2e2796['attributes'],function(_0x2724ef){var _0x560d83={};_0x560d83[_0x2724ef]={'$like':'%'+_0x20439b[_0x57d2('0x2f')][_0x57d2('0x3a')]+'%'};return _0x560d83;})});}_0x2e2796=_[_0x57d2('0x3e')]({},_0x2e2796,_0x20439b[_0x57d2('0x4c')]);return _0x7eb0a6[_0x57d2('0x4a')](_0x2e2796);}})[_0x57d2('0x24')](function(_0x2aff38){if(_0x2aff38){_0x54ee22=_0x2aff38[_0x57d2('0x46')];if(!_0x20439b[_0x57d2('0x2f')]['hasOwnProperty'](_0x57d2('0x36'))){_0x2e2796[_0x57d2('0x1c')]=qs[_0x57d2('0x1c')](_0x20439b[_0x57d2('0x2f')][_0x57d2('0x1c')]);_0x2e2796['offset']=qs[_0x57d2('0x1b')](_0x20439b['query'][_0x57d2('0x1b')]);}return _0x7eb0a6[_0x57d2('0x4a')](_0x2e2796);}})[_0x57d2('0x24')](function(_0x42aae3){if(_0x42aae3){return _0x42aae3?{'count':_0x54ee22,'rows':_0x42aae3}:null;}})[_0x57d2('0x24')](respondWithResult(_0x1a101a,null))[_0x57d2('0x43')](handleError(_0x1a101a,null));};exports[_0x57d2('0x4d')]=function(_0x7f310c,_0x27a97e,_0xb837c8){if(_0x7f310c[_0x57d2('0x48')]['id']){delete _0x7f310c[_0x57d2('0x48')]['id'];}return db[_0x57d2('0x2b')][_0x57d2('0x4b')]({'where':{'id':_0x7f310c[_0x57d2('0x45')]['id']}})[_0x57d2('0x24')](handleEntityNotFound(_0x27a97e,null))[_0x57d2('0x24')](function(_0x2c2fc2){if(_0x2c2fc2){_0x7f310c[_0x57d2('0x48')]['AccountId']=_0x2c2fc2['id'];_0x7f310c[_0x57d2('0x48')][_0x57d2('0x4e')]=integrations['getSubjects'](_0x7f310c['body'][_0x57d2('0x4f')],_0x7f310c[_0x57d2('0x48')][_0x57d2('0x3c')]);_0x7f310c[_0x57d2('0x48')][_0x57d2('0x50')]=integrations[_0x57d2('0x51')](_0x7f310c[_0x57d2('0x48')]['channel'],_0x7f310c[_0x57d2('0x48')][_0x57d2('0x3c')]);return db[_0x57d2('0x52')]['create'](_0x7f310c[_0x57d2('0x48')],{'include':[{'model':db[_0x57d2('0x53')],'as':_0x57d2('0x4e')},{'model':db[_0x57d2('0x53')],'as':_0x57d2('0x50')}]});}return null;})[_0x57d2('0x24')](respondWithResult(_0x27a97e,null))[_0x57d2('0x43')](handleError(_0x27a97e,null));};var md5=require('md5');exports['getFields']=function(_0x395963,_0x503c7e,_0x149573){var _0x3d5d64=null;var _0x10b696=null;var _0x41ee8f=null;var _0x5377c8=null;var _0x4103a5='';return db['VtigerAccount'][_0x57d2('0x4b')]({'where':{'id':_0x395963['params']['id']},'attributes':['id',_0x57d2('0x28'),_0x57d2('0x54'),'description',_0x57d2('0x55'),'remoteUri','serverUrl',_0x57d2('0x56')]})[_0x57d2('0x24')](handleEntityNotFound(_0x503c7e,null))[_0x57d2('0x24')](function(_0x2c779e){if(_0x2c779e){_0x3d5d64=_0x2c779e[_0x57d2('0x54')];_0x10b696=_0x2c779e['accessKey'];_0x41ee8f=_0x2c779e[_0x57d2('0x55')];_0x4103a5=_0x2c779e[_0x57d2('0x57')];var _0xfcc5da=_0x4103a5['slice'](-0x1);if(_0xfcc5da==='/'){_0x4103a5=_0x4103a5[_0x57d2('0x58')](0x0,_0x4103a5[_0x57d2('0x59')](_0xfcc5da));}_0x5377c8=util[_0x57d2('0x5a')](_0x57d2('0x5b'),_0x4103a5);var _0xc2d380={'method':'GET','uri':_0x5377c8,'qs':{'operation':_0x57d2('0x5c'),'username':_0x2c779e[_0x57d2('0x54')]},'json':!![]};return rp(_0xc2d380);}})[_0x57d2('0x24')](function(_0x539fa1){if(_0x539fa1[_0x57d2('0x5d')]){var _0x562f4b={'method':_0x57d2('0x5e'),'uri':_0x5377c8,'form':{'operation':_0x57d2('0x5f'),'username':_0x3d5d64,'accessKey':md5(_0x539fa1['result']['token']+_0x10b696)},'json':!![]};return rp(_0x562f4b);}})[_0x57d2('0x24')](function(_0x3bd3d5){if(_0x3bd3d5[_0x57d2('0x5d')]){var _0x44df77={'method':_0x57d2('0x60'),'uri':_0x5377c8,'qs':{'operation':_0x57d2('0x61'),'username':_0x3d5d64,'sessionName':_0x3bd3d5[_0x57d2('0x62')][_0x57d2('0x63')],'elementType':_0x41ee8f},'json':!![]};return rp(_0x44df77);}})[_0x57d2('0x24')](function(_0x478354){if(_0x478354['success']){var _0x5e159b=[_0x57d2('0x64'),_0x57d2('0x65'),_0x57d2('0x66')];_[_0x57d2('0x67')](_0x478354['result']['fields'],function(_0x2fe7be){return _0x5e159b['includes'](_0x2fe7be[_0x57d2('0x3c')][_0x57d2('0x28')]);});_[_0x57d2('0x67')](_0x478354[_0x57d2('0x62')][_0x57d2('0x35')],function(_0x297a1c){return _0x297a1c['editable']===_0x57d2('0x68');});return{'count':_0x478354[_0x57d2('0x62')]['fields'][_0x57d2('0x46')],'rows':_[_0x57d2('0x2e')](_0x478354[_0x57d2('0x62')][_0x57d2('0x35')],function(_0x103b85){return{'id':_0x103b85[_0x57d2('0x28')],'name':_0x103b85[_0x57d2('0x69')],'custom':_['startsWith'](_0x103b85[_0x57d2('0x28')],_0x57d2('0x6a'))?!![]:![],'options':_0x103b85[_0x57d2('0x3c')][_0x57d2('0x28')]===_0x57d2('0x6b')&&_0x103b85[_0x57d2('0x3c')][_0x57d2('0x6c')]['length']>0x0?_[_0x57d2('0x2e')](_0x103b85[_0x57d2('0x3c')][_0x57d2('0x6c')],function(_0x537702){return{'name':_0x537702[_0x57d2('0x69')],'value':_0x537702[_0x57d2('0x6d')]};}):[]};})};}})[_0x57d2('0x24')](respondWithResult(_0x503c7e,null))[_0x57d2('0x43')](function(_0x58e473){console['log'](_0x57d2('0x6e')+_0x58e473);var _0x3a82be=_0x395963['query'][_0x57d2('0x6f')]?0x1f4:_0x58e473[_0x57d2('0x70')]||0x1f4;logger['error'](_0x57d2('0x71'),_0x57d2('0x72'),_0x3a82be,JSON['stringify'](_0x58e473));delete _0x58e473[_0x57d2('0x28')];if(_0x3a82be===0x191){_0x3a82be=0x190;}_0x503c7e[_0x57d2('0x19')](_0x3a82be)['send'](_0x395963[_0x57d2('0x2f')][_0x57d2('0x6f')]?{'message':_0x57d2('0x73'),'statusCode':_0x58e473[_0x57d2('0x70')]}:_0x58e473);});};