c44b4f46ebd18ec174c9746cbc65bb9063ae6b10
[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 _0x5a29=['squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','destroy','then','error','stack','name','send','map','VtigerAccount','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','rows','catch','show','params','includeAll','find','body','update','getConfigurations','findOne','VtigerConfiguration','addConfiguration','AccountId','Subjects','getSubjects','getDescriptions','channel','VtigerField','Descriptions','md5','getFields','username','description','serverUrl','moduleName','remoteUri','slice','substring','lastIndexOf','format','GET','getchallenge','POST','result','token','success','describe','sessionName','autogenerated','reference','owner','remove','includes','editable','label','startsWith','picklist','value','log','test','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash'];(function(_0x490304,_0x5f4e85){var _0x52c551=function(_0x20cc46){while(--_0x20cc46){_0x490304['push'](_0x490304['shift']());}};_0x52c551(++_0x5f4e85);}(_0x5a29,0x160));var _0x95a2=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x5a29[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require(_0x95a2('0x0'));var rimraf=require(_0x95a2('0x1'));var zipdir=require(_0x95a2('0x2'));var jsonpatch=require(_0x95a2('0x3'));var rp=require(_0x95a2('0x4'));var moment=require(_0x95a2('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x95a2('0x6'));var util=require(_0x95a2('0x7'));var path=require(_0x95a2('0x8'));var sox=require(_0x95a2('0x9'));var csv=require(_0x95a2('0xa'));var ejs=require(_0x95a2('0xb'));var fs=require('fs');var fs_extra=require(_0x95a2('0xc'));var _=require(_0x95a2('0xd'));var squel=require(_0x95a2('0xe'));var crypto=require(_0x95a2('0xf'));var jsforce=require(_0x95a2('0x10'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x95a2('0x11'));var Papa=require('papaparse');var Redis=require(_0x95a2('0x12'));var authService=require(_0x95a2('0x13'));var qs=require(_0x95a2('0x14'));var as=require(_0x95a2('0x15'));var hardwareService=require(_0x95a2('0x16'));var logger=require(_0x95a2('0x17'))(_0x95a2('0x18'));var utils=require('../../config/utils');var config=require(_0x95a2('0x19'));var licenseUtil=require(_0x95a2('0x1a'));var db=require(_0x95a2('0x1b'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x4a618a,_0x439dee){_0x439dee=_0x439dee||0xcc;return function(_0x1ee92c){if(_0x1ee92c){return _0x4a618a[_0x95a2('0x1c')](_0x439dee);}return _0x4a618a[_0x95a2('0x1d')](_0x439dee)[_0x95a2('0x1e')]();};}function respondWithResult(_0x372eeb,_0x20c1b5){_0x20c1b5=_0x20c1b5||0xc8;return function(_0x23a548){if(_0x23a548){return _0x372eeb[_0x95a2('0x1d')](_0x20c1b5)[_0x95a2('0x1f')](_0x23a548);}};}function respondWithFilteredResult(_0x4c0baa,_0x203e15){return function(_0x3c7a42){if(_0x3c7a42){var _0x305be4=typeof _0x203e15[_0x95a2('0x20')]===_0x95a2('0x21')&&typeof _0x203e15[_0x95a2('0x22')]===_0x95a2('0x21');var _0x5e44a5=_0x3c7a42['count'];var _0x197ef4=_0x305be4?0x0:_0x203e15[_0x95a2('0x20')];var _0x268ccb=_0x305be4?_0x3c7a42[_0x95a2('0x23')]:_0x203e15[_0x95a2('0x20')]+_0x203e15['limit'];var _0xe904b8;if(_0x268ccb>=_0x5e44a5){_0x268ccb=_0x5e44a5;_0xe904b8=0xc8;}else{_0xe904b8=0xce;}_0x4c0baa['status'](_0xe904b8);return _0x4c0baa[_0x95a2('0x24')](_0x95a2('0x25'),_0x197ef4+'-'+_0x268ccb+'/'+_0x5e44a5)[_0x95a2('0x1f')](_0x3c7a42);}return null;};}function patchUpdates(_0x30cf76){return function(_0x3710a6){try{jsonpatch[_0x95a2('0x26')](_0x3710a6,_0x30cf76,!![]);}catch(_0x199e5f){return BPromise[_0x95a2('0x27')](_0x199e5f);}return _0x3710a6['save']();};}function saveUpdates(_0x5be505,_0x4405eb){return function(_0x107195){if(_0x107195){return _0x107195['update'](_0x5be505)['then'](function(_0x2c6067){return _0x2c6067;});}return null;};}function removeEntity(_0x4d8053,_0x482a52){return function(_0x2a3bdf){if(_0x2a3bdf){return _0x2a3bdf[_0x95a2('0x28')]()[_0x95a2('0x29')](function(){_0x4d8053[_0x95a2('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4315a8,_0x2cf1cc){return function(_0x1e12df){if(!_0x1e12df){_0x4315a8[_0x95a2('0x1c')](0x194);}return _0x1e12df;};}function handleError(_0x264c35,_0x485bb1){_0x485bb1=_0x485bb1||0x1f4;return function(_0x4ea5a7){logger[_0x95a2('0x2a')](_0x4ea5a7[_0x95a2('0x2b')]);if(_0x4ea5a7[_0x95a2('0x2c')]){delete _0x4ea5a7['name'];}_0x264c35[_0x95a2('0x1d')](_0x485bb1)[_0x95a2('0x2d')](_0x4ea5a7);};}exports['index']=function(_0x58b0de,_0xf49e78){var _0x233b12={},_0x54cbee={},_0x2117fb={'count':0x0,'rows':[]};var _0x493e36=_[_0x95a2('0x2e')](db[_0x95a2('0x2f')][_0x95a2('0x30')],function(_0x1dc7ce){return{'name':_0x1dc7ce['fieldName'],'type':_0x1dc7ce[_0x95a2('0x31')][_0x95a2('0x32')]};});_0x54cbee[_0x95a2('0x33')]=_[_0x95a2('0x2e')](_0x493e36,_0x95a2('0x2c'));_0x54cbee[_0x95a2('0x34')]=_[_0x95a2('0x35')](_0x58b0de[_0x95a2('0x34')]);_0x54cbee[_0x95a2('0x36')]=_[_0x95a2('0x37')](_0x54cbee['model'],_0x54cbee[_0x95a2('0x34')]);_0x233b12[_0x95a2('0x38')]=_[_0x95a2('0x37')](_0x54cbee['model'],qs[_0x95a2('0x39')](_0x58b0de[_0x95a2('0x34')][_0x95a2('0x39')]));_0x233b12[_0x95a2('0x38')]=_0x233b12[_0x95a2('0x38')][_0x95a2('0x3a')]?_0x233b12[_0x95a2('0x38')]:_0x54cbee[_0x95a2('0x33')];if(!_0x58b0de[_0x95a2('0x34')][_0x95a2('0x3b')](_0x95a2('0x3c'))){_0x233b12[_0x95a2('0x22')]=qs[_0x95a2('0x22')](_0x58b0de[_0x95a2('0x34')][_0x95a2('0x22')]);_0x233b12[_0x95a2('0x20')]=qs[_0x95a2('0x20')](_0x58b0de[_0x95a2('0x34')][_0x95a2('0x20')]);}_0x233b12[_0x95a2('0x3d')]=qs['sort'](_0x58b0de['query'][_0x95a2('0x3e')]);_0x233b12[_0x95a2('0x3f')]=qs[_0x95a2('0x36')](_[_0x95a2('0x40')](_0x58b0de[_0x95a2('0x34')],_0x54cbee[_0x95a2('0x36')]),_0x493e36);if(_0x58b0de[_0x95a2('0x34')][_0x95a2('0x41')]){_0x233b12['where']=_[_0x95a2('0x42')](_0x233b12[_0x95a2('0x3f')],{'$or':_[_0x95a2('0x2e')](_0x493e36,function(_0x3522a8){if(_0x3522a8[_0x95a2('0x31')]!==_0x95a2('0x43')){var _0x292f7d={};_0x292f7d[_0x3522a8[_0x95a2('0x2c')]]={'$like':'%'+_0x58b0de['query'][_0x95a2('0x41')]+'%'};return _0x292f7d;}})});}_0x233b12=_['merge']({},_0x233b12,_0x58b0de[_0x95a2('0x44')]);var _0x2f2638={'where':_0x233b12[_0x95a2('0x3f')]};return db['VtigerAccount'][_0x95a2('0x23')](_0x2f2638)[_0x95a2('0x29')](function(_0x416e72){_0x2117fb['count']=_0x416e72;if(_0x58b0de[_0x95a2('0x34')]['includeAll']){_0x233b12[_0x95a2('0x45')]=[{'all':!![]}];}return db[_0x95a2('0x2f')]['findAll'](_0x233b12);})['then'](function(_0x469b73){_0x2117fb[_0x95a2('0x46')]=_0x469b73;return _0x2117fb;})['then'](respondWithFilteredResult(_0xf49e78,_0x233b12))[_0x95a2('0x47')](handleError(_0xf49e78,null));};exports[_0x95a2('0x48')]=function(_0x21e8ab,_0x382714){var _0x2dc961={'raw':![],'where':{'id':_0x21e8ab[_0x95a2('0x49')]['id']}},_0x3e8422={};_0x3e8422['model']=_[_0x95a2('0x35')](db[_0x95a2('0x2f')]['rawAttributes']);_0x3e8422['query']=_[_0x95a2('0x35')](_0x21e8ab['query']);_0x3e8422[_0x95a2('0x36')]=_[_0x95a2('0x37')](_0x3e8422[_0x95a2('0x33')],_0x3e8422[_0x95a2('0x34')]);_0x2dc961['attributes']=_[_0x95a2('0x37')](_0x3e8422['model'],qs[_0x95a2('0x39')](_0x21e8ab[_0x95a2('0x34')]['fields']));_0x2dc961[_0x95a2('0x38')]=_0x2dc961[_0x95a2('0x38')]['length']?_0x2dc961['attributes']:_0x3e8422[_0x95a2('0x33')];if(_0x21e8ab['query'][_0x95a2('0x4a')]){_0x2dc961[_0x95a2('0x45')]=[{'all':!![]}];}_0x2dc961=_[_0x95a2('0x42')]({},_0x2dc961,_0x21e8ab[_0x95a2('0x44')]);return db[_0x95a2('0x2f')][_0x95a2('0x4b')](_0x2dc961)[_0x95a2('0x29')](handleEntityNotFound(_0x382714,null))[_0x95a2('0x29')](respondWithResult(_0x382714,null))[_0x95a2('0x47')](handleError(_0x382714,null));};exports['create']=function(_0x5b247e,_0x23609f){return db[_0x95a2('0x2f')]['create'](_0x5b247e[_0x95a2('0x4c')],{})[_0x95a2('0x29')](respondWithResult(_0x23609f,0xc9))[_0x95a2('0x47')](handleError(_0x23609f,null));};exports[_0x95a2('0x4d')]=function(_0xd2a50a,_0x52f4f6){if(_0xd2a50a[_0x95a2('0x4c')]['id']){delete _0xd2a50a[_0x95a2('0x4c')]['id'];}return db['VtigerAccount'][_0x95a2('0x4b')]({'where':{'id':_0xd2a50a[_0x95a2('0x49')]['id']}})[_0x95a2('0x29')](handleEntityNotFound(_0x52f4f6,null))['then'](saveUpdates(_0xd2a50a[_0x95a2('0x4c')],null))[_0x95a2('0x29')](respondWithResult(_0x52f4f6,null))['catch'](handleError(_0x52f4f6,null));};exports[_0x95a2('0x28')]=function(_0x487c08,_0x49eb89){return db[_0x95a2('0x2f')][_0x95a2('0x4b')]({'where':{'id':_0x487c08['params']['id']}})[_0x95a2('0x29')](handleEntityNotFound(_0x49eb89,null))['then'](removeEntity(_0x49eb89,null))['catch'](handleError(_0x49eb89,null));};exports[_0x95a2('0x4e')]=function(_0x33eca2,_0x102364,_0x39510e){var _0x4dd350={};var _0x3c6db0={};var _0x3ec8c0;var _0x19e84d;return db['VtigerAccount'][_0x95a2('0x4f')]({'where':{'id':_0x33eca2[_0x95a2('0x49')]['id']}})[_0x95a2('0x29')](handleEntityNotFound(_0x102364,null))['then'](function(_0x28a0e1){if(_0x28a0e1){_0x3ec8c0=_0x28a0e1;_0x3c6db0[_0x95a2('0x33')]=_['keys'](db[_0x95a2('0x50')][_0x95a2('0x30')]);_0x3c6db0[_0x95a2('0x34')]=_['keys'](_0x33eca2[_0x95a2('0x34')]);_0x3c6db0['filters']=_[_0x95a2('0x37')](_0x3c6db0['model'],_0x3c6db0[_0x95a2('0x34')]);_0x4dd350[_0x95a2('0x38')]=_[_0x95a2('0x37')](_0x3c6db0[_0x95a2('0x33')],qs['fields'](_0x33eca2['query'][_0x95a2('0x39')]));_0x4dd350[_0x95a2('0x38')]=_0x4dd350['attributes'][_0x95a2('0x3a')]?_0x4dd350[_0x95a2('0x38')]:_0x3c6db0[_0x95a2('0x33')];_0x4dd350[_0x95a2('0x3d')]=qs[_0x95a2('0x3e')](_0x33eca2[_0x95a2('0x34')][_0x95a2('0x3e')]);_0x4dd350[_0x95a2('0x3f')]=qs[_0x95a2('0x36')](_[_0x95a2('0x40')](_0x33eca2[_0x95a2('0x34')],_0x3c6db0['filters']));if(_0x33eca2[_0x95a2('0x34')][_0x95a2('0x41')]){_0x4dd350[_0x95a2('0x3f')]=_[_0x95a2('0x42')](_0x4dd350[_0x95a2('0x3f')],{'$or':_[_0x95a2('0x2e')](_0x4dd350[_0x95a2('0x38')],function(_0x6be5c){var _0x2aa35d={};_0x2aa35d[_0x6be5c]={'$like':'%'+_0x33eca2[_0x95a2('0x34')]['filter']+'%'};return _0x2aa35d;})});}_0x4dd350=_['merge']({},_0x4dd350,_0x33eca2[_0x95a2('0x44')]);return _0x3ec8c0[_0x95a2('0x4e')](_0x4dd350);}})['then'](function(_0x4455d1){if(_0x4455d1){_0x19e84d=_0x4455d1[_0x95a2('0x3a')];if(!_0x33eca2[_0x95a2('0x34')][_0x95a2('0x3b')]('nolimit')){_0x4dd350[_0x95a2('0x22')]=qs['limit'](_0x33eca2[_0x95a2('0x34')][_0x95a2('0x22')]);_0x4dd350['offset']=qs[_0x95a2('0x20')](_0x33eca2[_0x95a2('0x34')]['offset']);}return _0x3ec8c0[_0x95a2('0x4e')](_0x4dd350);}})[_0x95a2('0x29')](function(_0x2c58e3){if(_0x2c58e3){return _0x2c58e3?{'count':_0x19e84d,'rows':_0x2c58e3}:null;}})[_0x95a2('0x29')](respondWithResult(_0x102364,null))[_0x95a2('0x47')](handleError(_0x102364,null));};exports[_0x95a2('0x51')]=function(_0x1595e5,_0x6252d,_0x36043b){if(_0x1595e5[_0x95a2('0x4c')]['id']){delete _0x1595e5[_0x95a2('0x4c')]['id'];}return db[_0x95a2('0x2f')][_0x95a2('0x4f')]({'where':{'id':_0x1595e5[_0x95a2('0x49')]['id']}})[_0x95a2('0x29')](handleEntityNotFound(_0x6252d,null))['then'](function(_0x479404){if(_0x479404){_0x1595e5[_0x95a2('0x4c')][_0x95a2('0x52')]=_0x479404['id'];_0x1595e5[_0x95a2('0x4c')][_0x95a2('0x53')]=integrations[_0x95a2('0x54')](_0x1595e5['body']['channel'],_0x1595e5['body'][_0x95a2('0x31')]);_0x1595e5[_0x95a2('0x4c')]['Descriptions']=integrations[_0x95a2('0x55')](_0x1595e5[_0x95a2('0x4c')][_0x95a2('0x56')],_0x1595e5['body']['type']);return db[_0x95a2('0x50')]['create'](_0x1595e5[_0x95a2('0x4c')],{'include':[{'model':db[_0x95a2('0x57')],'as':_0x95a2('0x53')},{'model':db[_0x95a2('0x57')],'as':_0x95a2('0x58')}]});}return null;})['then'](respondWithResult(_0x6252d,null))[_0x95a2('0x47')](handleError(_0x6252d,null));};var md5=require(_0x95a2('0x59'));exports[_0x95a2('0x5a')]=function(_0x3b1c0f,_0x196ebe,_0x168b19){var _0xf6933=null;var _0x1c9843=null;var _0x2b7a59=null;var _0x5bd19e=null;var _0x3fca76='';return db[_0x95a2('0x2f')][_0x95a2('0x4f')]({'where':{'id':_0x3b1c0f['params']['id']},'attributes':['id',_0x95a2('0x2c'),_0x95a2('0x5b'),_0x95a2('0x5c'),'moduleName','remoteUri',_0x95a2('0x5d'),'accessKey']})[_0x95a2('0x29')](handleEntityNotFound(_0x196ebe,null))[_0x95a2('0x29')](function(_0x16eea0){if(_0x16eea0){_0xf6933=_0x16eea0[_0x95a2('0x5b')];_0x1c9843=_0x16eea0['accessKey'];_0x2b7a59=_0x16eea0[_0x95a2('0x5e')];_0x3fca76=_0x16eea0[_0x95a2('0x5f')];var _0x41d521=_0x3fca76[_0x95a2('0x60')](-0x1);if(_0x41d521==='/'){_0x3fca76=_0x3fca76[_0x95a2('0x61')](0x0,_0x3fca76[_0x95a2('0x62')](_0x41d521));}_0x5bd19e=util[_0x95a2('0x63')]('%s/webservice.php',_0x3fca76);var _0x715a04={'method':_0x95a2('0x64'),'uri':_0x5bd19e,'qs':{'operation':_0x95a2('0x65'),'username':_0x16eea0[_0x95a2('0x5b')]},'json':!![]};return rp(_0x715a04);}})[_0x95a2('0x29')](function(_0x1840c4){if(_0x1840c4['success']){var _0x4084c7={'method':_0x95a2('0x66'),'uri':_0x5bd19e,'form':{'operation':'login','username':_0xf6933,'accessKey':md5(_0x1840c4[_0x95a2('0x67')][_0x95a2('0x68')]+_0x1c9843)},'json':!![]};return rp(_0x4084c7);}})[_0x95a2('0x29')](function(_0x9e1c47){if(_0x9e1c47[_0x95a2('0x69')]){var _0x7cc51e={'method':_0x95a2('0x64'),'uri':_0x5bd19e,'qs':{'operation':_0x95a2('0x6a'),'username':_0xf6933,'sessionName':_0x9e1c47['result'][_0x95a2('0x6b')],'elementType':_0x2b7a59},'json':!![]};return rp(_0x7cc51e);}})[_0x95a2('0x29')](function(_0x556294){if(_0x556294[_0x95a2('0x69')]){var _0x49db05=[_0x95a2('0x6c'),_0x95a2('0x6d'),_0x95a2('0x6e')];_[_0x95a2('0x6f')](_0x556294['result'][_0x95a2('0x39')],function(_0x138255){return _0x49db05[_0x95a2('0x70')](_0x138255['type'][_0x95a2('0x2c')]);});_[_0x95a2('0x6f')](_0x556294[_0x95a2('0x67')][_0x95a2('0x39')],function(_0x595d57){return _0x595d57[_0x95a2('0x71')]==='false';});return{'count':_0x556294[_0x95a2('0x67')][_0x95a2('0x39')][_0x95a2('0x3a')],'rows':_[_0x95a2('0x2e')](_0x556294['result']['fields'],function(_0x46908b){return{'id':_0x46908b[_0x95a2('0x2c')],'name':_0x46908b[_0x95a2('0x72')],'custom':_[_0x95a2('0x73')](_0x46908b['name'],'cf_')?!![]:![],'options':_0x46908b[_0x95a2('0x31')][_0x95a2('0x2c')]===_0x95a2('0x74')&&_0x46908b[_0x95a2('0x31')]['picklistValues'][_0x95a2('0x3a')]>0x0?_[_0x95a2('0x2e')](_0x46908b[_0x95a2('0x31')]['picklistValues'],function(_0x465bcd){return{'name':_0x465bcd[_0x95a2('0x72')],'value':_0x465bcd[_0x95a2('0x75')]};}):[]};})};}})[_0x95a2('0x29')](respondWithResult(_0x196ebe,null))[_0x95a2('0x47')](function(_0x17309c){console[_0x95a2('0x76')]('vTiger\x20error:\x20'+_0x17309c);var _0x38dd63=_0x3b1c0f[_0x95a2('0x34')][_0x95a2('0x77')]?0x1f4:_0x17309c['statusCode']||0x1f4;logger[_0x95a2('0x2a')]('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x38dd63,JSON['stringify'](_0x17309c));delete _0x17309c[_0x95a2('0x2c')];if(_0x38dd63===0x191){_0x38dd63=0x190;}_0x196ebe[_0x95a2('0x1d')](_0x38dd63)[_0x95a2('0x2d')](_0x3b1c0f[_0x95a2('0x34')][_0x95a2('0x77')]?{'message':_0x95a2('0x78'),'statusCode':_0x17309c[_0x95a2('0x79')]}:_0x17309c);});};