Built motion from commit 10af8726.|2.6.34
[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 _0x5e42=['apply','save','update','then','destroy','stack','name','send','index','map','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','merge','where','VIRTUAL','filter','options','VtigerAccount','includeAll','include','findAll','rows','catch','params','rawAttributes','keys','find','body','getConfigurations','VtigerConfiguration','findOne','AccountId','Subjects','getSubjects','Descriptions','channel','create','VtigerField','md5','getFields','username','description','serverUrl','accessKey','moduleName','remoteUri','substring','lastIndexOf','%s/webservice.php','GET','getchallenge','success','POST','login','result','token','describe','reference','remove','includes','editable','false','label','startsWith','cf_','picklist','picklistValues','value','log','vTiger\x20error:\x20','test','error','stringify','statusCode','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','sox','to-csv','lodash','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','offset','limit','undefined','count','set'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x5e42,0xcb));var _0x25e4=function(_0x2eec1f,_0x1b9987){_0x2eec1f=_0x2eec1f-0x0;var _0x543075=_0x5e42[_0x2eec1f];return _0x543075;};'use strict';var emlformat=require(_0x25e4('0x0'));var rimraf=require(_0x25e4('0x1'));var zipdir=require(_0x25e4('0x2'));var jsonpatch=require(_0x25e4('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x25e4('0x4'));var Mustache=require(_0x25e4('0x5'));var util=require(_0x25e4('0x6'));var path=require('path');var sox=require(_0x25e4('0x7'));var csv=require(_0x25e4('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x25e4('0x9'));var squel=require(_0x25e4('0xa'));var crypto=require('crypto');var jsforce=require(_0x25e4('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x25e4('0x8'));var querystring=require(_0x25e4('0xc'));var Papa=require(_0x25e4('0xd'));var Redis=require('ioredis');var authService=require(_0x25e4('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x25e4('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x25e4('0x10'));var utils=require(_0x25e4('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0x25e4('0x12'));var db=require(_0x25e4('0x13'))['db'];var integrations=require(_0x25e4('0x14'));function respondWithStatusCode(_0x38f292,_0x4cbcbe){_0x4cbcbe=_0x4cbcbe||0xcc;return function(_0x3c0dba){if(_0x3c0dba){return _0x38f292[_0x25e4('0x15')](_0x4cbcbe);}return _0x38f292[_0x25e4('0x16')](_0x4cbcbe)['end']();};}function respondWithResult(_0x22c3c9,_0x36973f){_0x36973f=_0x36973f||0xc8;return function(_0xc2a72){if(_0xc2a72){return _0x22c3c9[_0x25e4('0x16')](_0x36973f)[_0x25e4('0x17')](_0xc2a72);}};}function respondWithFilteredResult(_0x42071c,_0x3b104b){return function(_0x4ec409){if(_0x4ec409){var _0x41d845=typeof _0x3b104b[_0x25e4('0x18')]==='undefined'&&typeof _0x3b104b[_0x25e4('0x19')]===_0x25e4('0x1a');var _0x360073=_0x4ec409[_0x25e4('0x1b')];var _0x20fb0c=_0x41d845?0x0:_0x3b104b[_0x25e4('0x18')];var _0x1c0296=_0x41d845?_0x4ec409['count']:_0x3b104b[_0x25e4('0x18')]+_0x3b104b['limit'];var _0x552a31;if(_0x1c0296>=_0x360073){_0x1c0296=_0x360073;_0x552a31=0xc8;}else{_0x552a31=0xce;}_0x42071c[_0x25e4('0x16')](_0x552a31);return _0x42071c[_0x25e4('0x1c')]('Content-Range',_0x20fb0c+'-'+_0x1c0296+'/'+_0x360073)[_0x25e4('0x17')](_0x4ec409);}return null;};}function patchUpdates(_0x45ebd5){return function(_0x10defd){try{jsonpatch[_0x25e4('0x1d')](_0x10defd,_0x45ebd5,!![]);}catch(_0x1da6f2){return BPromise['reject'](_0x1da6f2);}return _0x10defd[_0x25e4('0x1e')]();};}function saveUpdates(_0x5490c0,_0x35ede3){return function(_0x3e8092){if(_0x3e8092){return _0x3e8092[_0x25e4('0x1f')](_0x5490c0)[_0x25e4('0x20')](function(_0x35fc28){return _0x35fc28;});}return null;};}function removeEntity(_0x32a8c6,_0x4da052){return function(_0x4ca425){if(_0x4ca425){return _0x4ca425[_0x25e4('0x21')]()[_0x25e4('0x20')](function(){_0x32a8c6[_0x25e4('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x356fe0,_0x375eca){return function(_0x3094ab){if(!_0x3094ab){_0x356fe0[_0x25e4('0x15')](0x194);}return _0x3094ab;};}function handleError(_0x4434cd,_0x3299a1){_0x3299a1=_0x3299a1||0x1f4;return function(_0x5c4ca0){logger['error'](_0x5c4ca0[_0x25e4('0x22')]);if(_0x5c4ca0[_0x25e4('0x23')]){delete _0x5c4ca0[_0x25e4('0x23')];}_0x4434cd[_0x25e4('0x16')](_0x3299a1)[_0x25e4('0x24')](_0x5c4ca0);};}exports[_0x25e4('0x25')]=function(_0x1b2cb1,_0x3f5cbc){var _0x4c06ad={},_0x129b05={},_0x49cee4={'count':0x0,'rows':[]};var _0x500ff6=_[_0x25e4('0x26')](db['VtigerAccount']['rawAttributes'],function(_0x5919df){return{'name':_0x5919df[_0x25e4('0x27')],'type':_0x5919df[_0x25e4('0x28')][_0x25e4('0x29')]};});_0x129b05[_0x25e4('0x2a')]=_[_0x25e4('0x26')](_0x500ff6,_0x25e4('0x23'));_0x129b05['query']=_['keys'](_0x1b2cb1[_0x25e4('0x2b')]);_0x129b05[_0x25e4('0x2c')]=_[_0x25e4('0x2d')](_0x129b05['model'],_0x129b05['query']);_0x4c06ad[_0x25e4('0x2e')]=_[_0x25e4('0x2d')](_0x129b05['model'],qs[_0x25e4('0x2f')](_0x1b2cb1[_0x25e4('0x2b')][_0x25e4('0x2f')]));_0x4c06ad[_0x25e4('0x2e')]=_0x4c06ad[_0x25e4('0x2e')][_0x25e4('0x30')]?_0x4c06ad[_0x25e4('0x2e')]:_0x129b05['model'];if(!_0x1b2cb1['query'][_0x25e4('0x31')](_0x25e4('0x32'))){_0x4c06ad[_0x25e4('0x19')]=qs['limit'](_0x1b2cb1['query'][_0x25e4('0x19')]);_0x4c06ad['offset']=qs[_0x25e4('0x18')](_0x1b2cb1[_0x25e4('0x2b')]['offset']);}_0x4c06ad[_0x25e4('0x33')]=qs[_0x25e4('0x34')](_0x1b2cb1['query'][_0x25e4('0x34')]);_0x4c06ad['where']=qs['filters'](_[_0x25e4('0x35')](_0x1b2cb1[_0x25e4('0x2b')],_0x129b05[_0x25e4('0x2c')]),_0x500ff6);if(_0x1b2cb1[_0x25e4('0x2b')]['filter']){_0x4c06ad['where']=_[_0x25e4('0x36')](_0x4c06ad[_0x25e4('0x37')],{'$or':_['map'](_0x500ff6,function(_0xaa4350){if(_0xaa4350[_0x25e4('0x28')]!==_0x25e4('0x38')){var _0x323872={};_0x323872[_0xaa4350[_0x25e4('0x23')]]={'$like':'%'+_0x1b2cb1['query'][_0x25e4('0x39')]+'%'};return _0x323872;}})});}_0x4c06ad=_[_0x25e4('0x36')]({},_0x4c06ad,_0x1b2cb1[_0x25e4('0x3a')]);var _0x1b2e65={'where':_0x4c06ad[_0x25e4('0x37')]};return db[_0x25e4('0x3b')][_0x25e4('0x1b')](_0x1b2e65)['then'](function(_0x348210){_0x49cee4[_0x25e4('0x1b')]=_0x348210;if(_0x1b2cb1[_0x25e4('0x2b')][_0x25e4('0x3c')]){_0x4c06ad[_0x25e4('0x3d')]=[{'all':!![]}];}return db[_0x25e4('0x3b')][_0x25e4('0x3e')](_0x4c06ad);})[_0x25e4('0x20')](function(_0x538415){_0x49cee4[_0x25e4('0x3f')]=_0x538415;return _0x49cee4;})[_0x25e4('0x20')](respondWithFilteredResult(_0x3f5cbc,_0x4c06ad))[_0x25e4('0x40')](handleError(_0x3f5cbc,null));};exports['show']=function(_0x12558c,_0x13e951){var _0x4a0598={'raw':![],'where':{'id':_0x12558c[_0x25e4('0x41')]['id']}},_0x1888b0={};_0x1888b0[_0x25e4('0x2a')]=_['keys'](db[_0x25e4('0x3b')][_0x25e4('0x42')]);_0x1888b0[_0x25e4('0x2b')]=_[_0x25e4('0x43')](_0x12558c[_0x25e4('0x2b')]);_0x1888b0[_0x25e4('0x2c')]=_[_0x25e4('0x2d')](_0x1888b0[_0x25e4('0x2a')],_0x1888b0['query']);_0x4a0598['attributes']=_[_0x25e4('0x2d')](_0x1888b0['model'],qs[_0x25e4('0x2f')](_0x12558c['query']['fields']));_0x4a0598['attributes']=_0x4a0598[_0x25e4('0x2e')][_0x25e4('0x30')]?_0x4a0598[_0x25e4('0x2e')]:_0x1888b0[_0x25e4('0x2a')];if(_0x12558c['query'][_0x25e4('0x3c')]){_0x4a0598[_0x25e4('0x3d')]=[{'all':!![]}];}_0x4a0598=_[_0x25e4('0x36')]({},_0x4a0598,_0x12558c['options']);return db[_0x25e4('0x3b')][_0x25e4('0x44')](_0x4a0598)[_0x25e4('0x20')](handleEntityNotFound(_0x13e951,null))[_0x25e4('0x20')](respondWithResult(_0x13e951,null))['catch'](handleError(_0x13e951,null));};exports['create']=function(_0x3b42c5,_0x40466a){return db[_0x25e4('0x3b')]['create'](_0x3b42c5['body'],{})[_0x25e4('0x20')](respondWithResult(_0x40466a,0xc9))['catch'](handleError(_0x40466a,null));};exports[_0x25e4('0x1f')]=function(_0x2fb1b0,_0x5e9b7e){if(_0x2fb1b0['body']['id']){delete _0x2fb1b0[_0x25e4('0x45')]['id'];}return db[_0x25e4('0x3b')]['find']({'where':{'id':_0x2fb1b0['params']['id']}})[_0x25e4('0x20')](handleEntityNotFound(_0x5e9b7e,null))[_0x25e4('0x20')](saveUpdates(_0x2fb1b0[_0x25e4('0x45')],null))['then'](respondWithResult(_0x5e9b7e,null))[_0x25e4('0x40')](handleError(_0x5e9b7e,null));};exports['destroy']=function(_0x7d0601,_0x3717c5){return db['VtigerAccount'][_0x25e4('0x44')]({'where':{'id':_0x7d0601[_0x25e4('0x41')]['id']}})['then'](handleEntityNotFound(_0x3717c5,null))[_0x25e4('0x20')](removeEntity(_0x3717c5,null))['catch'](handleError(_0x3717c5,null));};exports[_0x25e4('0x46')]=function(_0x22d132,_0x9f65ca,_0x5a05f8){var _0x4a500c={};var _0xad5db8={};var _0x12dbea;var _0x193f81;return db[_0x25e4('0x3b')]['findOne']({'where':{'id':_0x22d132[_0x25e4('0x41')]['id']}})['then'](handleEntityNotFound(_0x9f65ca,null))['then'](function(_0x4bbd7e){if(_0x4bbd7e){_0x12dbea=_0x4bbd7e;_0xad5db8[_0x25e4('0x2a')]=_['keys'](db[_0x25e4('0x47')]['rawAttributes']);_0xad5db8[_0x25e4('0x2b')]=_[_0x25e4('0x43')](_0x22d132[_0x25e4('0x2b')]);_0xad5db8[_0x25e4('0x2c')]=_[_0x25e4('0x2d')](_0xad5db8[_0x25e4('0x2a')],_0xad5db8[_0x25e4('0x2b')]);_0x4a500c['attributes']=_[_0x25e4('0x2d')](_0xad5db8[_0x25e4('0x2a')],qs[_0x25e4('0x2f')](_0x22d132['query'][_0x25e4('0x2f')]));_0x4a500c[_0x25e4('0x2e')]=_0x4a500c[_0x25e4('0x2e')][_0x25e4('0x30')]?_0x4a500c[_0x25e4('0x2e')]:_0xad5db8[_0x25e4('0x2a')];_0x4a500c[_0x25e4('0x33')]=qs[_0x25e4('0x34')](_0x22d132[_0x25e4('0x2b')][_0x25e4('0x34')]);_0x4a500c['where']=qs[_0x25e4('0x2c')](_[_0x25e4('0x35')](_0x22d132[_0x25e4('0x2b')],_0xad5db8[_0x25e4('0x2c')]));if(_0x22d132['query'][_0x25e4('0x39')]){_0x4a500c[_0x25e4('0x37')]=_['merge'](_0x4a500c['where'],{'$or':_[_0x25e4('0x26')](_0x4a500c[_0x25e4('0x2e')],function(_0x420628){var _0x3ff59e={};_0x3ff59e[_0x420628]={'$like':'%'+_0x22d132[_0x25e4('0x2b')][_0x25e4('0x39')]+'%'};return _0x3ff59e;})});}_0x4a500c=_[_0x25e4('0x36')]({},_0x4a500c,_0x22d132['options']);return _0x12dbea[_0x25e4('0x46')](_0x4a500c);}})['then'](function(_0x1bb772){if(_0x1bb772){_0x193f81=_0x1bb772[_0x25e4('0x30')];if(!_0x22d132[_0x25e4('0x2b')][_0x25e4('0x31')]('nolimit')){_0x4a500c[_0x25e4('0x19')]=qs[_0x25e4('0x19')](_0x22d132[_0x25e4('0x2b')][_0x25e4('0x19')]);_0x4a500c['offset']=qs[_0x25e4('0x18')](_0x22d132[_0x25e4('0x2b')][_0x25e4('0x18')]);}return _0x12dbea[_0x25e4('0x46')](_0x4a500c);}})[_0x25e4('0x20')](function(_0xd009b){if(_0xd009b){return _0xd009b?{'count':_0x193f81,'rows':_0xd009b}:null;}})[_0x25e4('0x20')](respondWithResult(_0x9f65ca,null))[_0x25e4('0x40')](handleError(_0x9f65ca,null));};exports['addConfiguration']=function(_0x58f665,_0x5292d8,_0x2d08b8){if(_0x58f665['body']['id']){delete _0x58f665[_0x25e4('0x45')]['id'];}return db['VtigerAccount'][_0x25e4('0x48')]({'where':{'id':_0x58f665['params']['id']}})[_0x25e4('0x20')](handleEntityNotFound(_0x5292d8,null))[_0x25e4('0x20')](function(_0x39a195){if(_0x39a195){_0x58f665[_0x25e4('0x45')][_0x25e4('0x49')]=_0x39a195['id'];_0x58f665[_0x25e4('0x45')][_0x25e4('0x4a')]=integrations[_0x25e4('0x4b')](_0x58f665[_0x25e4('0x45')]['channel'],_0x58f665['body'][_0x25e4('0x28')]);_0x58f665[_0x25e4('0x45')][_0x25e4('0x4c')]=integrations['getDescriptions'](_0x58f665[_0x25e4('0x45')][_0x25e4('0x4d')],_0x58f665[_0x25e4('0x45')][_0x25e4('0x28')]);return db[_0x25e4('0x47')][_0x25e4('0x4e')](_0x58f665['body'],{'include':[{'model':db['VtigerField'],'as':_0x25e4('0x4a')},{'model':db[_0x25e4('0x4f')],'as':_0x25e4('0x4c')}]});}return null;})['then'](respondWithResult(_0x5292d8,null))['catch'](handleError(_0x5292d8,null));};var md5=require(_0x25e4('0x50'));exports[_0x25e4('0x51')]=function(_0x5840a0,_0xed21e,_0x5c7334){var _0x441320=null;var _0x47df53=null;var _0x24fc68=null;var _0xdbf04c=null;var _0x47e1b2='';return db[_0x25e4('0x3b')][_0x25e4('0x48')]({'where':{'id':_0x5840a0[_0x25e4('0x41')]['id']},'attributes':['id','name',_0x25e4('0x52'),_0x25e4('0x53'),'moduleName','remoteUri',_0x25e4('0x54'),_0x25e4('0x55')]})[_0x25e4('0x20')](handleEntityNotFound(_0xed21e,null))['then'](function(_0x159a92){if(_0x159a92){_0x441320=_0x159a92[_0x25e4('0x52')];_0x47df53=_0x159a92[_0x25e4('0x55')];_0x24fc68=_0x159a92[_0x25e4('0x56')];_0x47e1b2=_0x159a92[_0x25e4('0x57')];var _0x22f2c4=_0x47e1b2['slice'](-0x1);if(_0x22f2c4==='/'){_0x47e1b2=_0x47e1b2[_0x25e4('0x58')](0x0,_0x47e1b2[_0x25e4('0x59')](_0x22f2c4));}_0xdbf04c=util['format'](_0x25e4('0x5a'),_0x47e1b2);var _0x2fb32b={'method':_0x25e4('0x5b'),'uri':_0xdbf04c,'qs':{'operation':_0x25e4('0x5c'),'username':_0x159a92['username']},'json':!![]};return rp(_0x2fb32b);}})['then'](function(_0x116323){if(_0x116323[_0x25e4('0x5d')]){var _0x43a590={'method':_0x25e4('0x5e'),'uri':_0xdbf04c,'form':{'operation':_0x25e4('0x5f'),'username':_0x441320,'accessKey':md5(_0x116323[_0x25e4('0x60')][_0x25e4('0x61')]+_0x47df53)},'json':!![]};return rp(_0x43a590);}})[_0x25e4('0x20')](function(_0x125be8){if(_0x125be8[_0x25e4('0x5d')]){var _0x3caf28={'method':_0x25e4('0x5b'),'uri':_0xdbf04c,'qs':{'operation':_0x25e4('0x62'),'username':_0x441320,'sessionName':_0x125be8[_0x25e4('0x60')]['sessionName'],'elementType':_0x24fc68},'json':!![]};return rp(_0x3caf28);}})['then'](function(_0x416bac){if(_0x416bac[_0x25e4('0x5d')]){var _0x3b8dda=['autogenerated',_0x25e4('0x63'),'owner'];_[_0x25e4('0x64')](_0x416bac[_0x25e4('0x60')]['fields'],function(_0x4e0f3e){return _0x3b8dda[_0x25e4('0x65')](_0x4e0f3e[_0x25e4('0x28')][_0x25e4('0x23')]);});_[_0x25e4('0x64')](_0x416bac[_0x25e4('0x60')][_0x25e4('0x2f')],function(_0x16b3ff){return _0x16b3ff[_0x25e4('0x66')]===_0x25e4('0x67');});return{'count':_0x416bac['result']['fields'][_0x25e4('0x30')],'rows':_['map'](_0x416bac[_0x25e4('0x60')][_0x25e4('0x2f')],function(_0x109dae){return{'id':_0x109dae[_0x25e4('0x23')],'name':_0x109dae[_0x25e4('0x68')],'custom':_[_0x25e4('0x69')](_0x109dae['name'],_0x25e4('0x6a'))?!![]:![],'options':_0x109dae[_0x25e4('0x28')]['name']===_0x25e4('0x6b')&&_0x109dae['type'][_0x25e4('0x6c')][_0x25e4('0x30')]>0x0?_[_0x25e4('0x26')](_0x109dae['type'][_0x25e4('0x6c')],function(_0x48ec62){return{'name':_0x48ec62[_0x25e4('0x68')],'value':_0x48ec62[_0x25e4('0x6d')]};}):[]};})};}})[_0x25e4('0x20')](respondWithResult(_0xed21e,null))['catch'](function(_0x299465){console[_0x25e4('0x6e')](_0x25e4('0x6f')+_0x299465);var _0x3b07a=_0x5840a0[_0x25e4('0x2b')][_0x25e4('0x70')]?0x1f4:_0x299465['statusCode']||0x1f4;logger[_0x25e4('0x71')]('getFields,\x20%s,\x20%s,\x20%s',_0x25e4('0x51'),_0x3b07a,JSON[_0x25e4('0x72')](_0x299465));delete _0x299465[_0x25e4('0x23')];if(_0x3b07a===0x191){_0x3b07a=0x190;}_0xed21e[_0x25e4('0x16')](_0x3b07a)['send'](_0x5840a0['query'][_0x25e4('0x70')]?{'message':'Wrong\x20credentials','statusCode':_0x299465[_0x25e4('0x73')]}:_0x299465);});};