Built motion from commit 0900f080.|2.5.45
[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 _0x2ee9=['bluebird','mustache','util','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end','json','limit','count','offset','Content-Range','apply','reject','save','update','destroy','then','stack','name','send','index','map','VtigerAccount','fieldName','key','model','query','keys','filters','attributes','intersection','fields','length','order','sort','pick','filter','merge','where','type','VIRTUAL','options','includeAll','include','rows','show','rawAttributes','find','catch','create','body','params','getConfigurations','findOne','VtigerConfiguration','hasOwnProperty','nolimit','addConfiguration','AccountId','Subjects','getSubjects','channel','getDescriptions','VtigerField','Descriptions','md5','getFields','description','moduleName','remoteUri','serverUrl','accessKey','substring','lastIndexOf','format','%s/webservice.php','getchallenge','username','success','POST','login','result','token','GET','describe','sessionName','owner','remove','editable','false','label','startsWith','picklist','picklistValues','log','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0x2ee9,0x1e4));var _0x92ee=function(_0x505a98,_0x351f8d){_0x505a98=_0x505a98-0x0;var _0x541994=_0x2ee9[_0x505a98];return _0x541994;};'use strict';var emlformat=require(_0x92ee('0x0'));var rimraf=require(_0x92ee('0x1'));var zipdir=require(_0x92ee('0x2'));var jsonpatch=require(_0x92ee('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x92ee('0x4'));var Mustache=require(_0x92ee('0x5'));var util=require(_0x92ee('0x6'));var path=require(_0x92ee('0x7'));var sox=require('sox');var csv=require(_0x92ee('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x92ee('0x9'));var _=require(_0x92ee('0xa'));var squel=require(_0x92ee('0xb'));var crypto=require(_0x92ee('0xc'));var jsforce=require(_0x92ee('0xd'));var deskjs=require(_0x92ee('0xe'));var toCsv=require(_0x92ee('0x8'));var querystring=require(_0x92ee('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x92ee('0x10'));var qs=require(_0x92ee('0x11'));var as=require(_0x92ee('0x12'));var hardwareService=require(_0x92ee('0x13'));var logger=require(_0x92ee('0x14'))(_0x92ee('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x92ee('0x16'));var db=require('../../mysqldb')['db'];var integrations=require(_0x92ee('0x17'));function respondWithStatusCode(_0x11a477,_0x2efc23){_0x2efc23=_0x2efc23||0xcc;return function(_0x41612d){if(_0x41612d){return _0x11a477[_0x92ee('0x18')](_0x2efc23);}return _0x11a477[_0x92ee('0x19')](_0x2efc23)[_0x92ee('0x1a')]();};}function respondWithResult(_0x5246a0,_0x33ab1b){_0x33ab1b=_0x33ab1b||0xc8;return function(_0x5c1c3e){if(_0x5c1c3e){return _0x5246a0[_0x92ee('0x19')](_0x33ab1b)[_0x92ee('0x1b')](_0x5c1c3e);}};}function respondWithFilteredResult(_0x514b4d,_0x2a856c){return function(_0x18deaf){if(_0x18deaf){var _0x4c6556=typeof _0x2a856c['offset']==='undefined'&&typeof _0x2a856c[_0x92ee('0x1c')]==='undefined';var _0x1d3b0e=_0x18deaf[_0x92ee('0x1d')];var _0x3b28a1=_0x4c6556?0x0:_0x2a856c[_0x92ee('0x1e')];var _0x33c633=_0x4c6556?_0x18deaf[_0x92ee('0x1d')]:_0x2a856c[_0x92ee('0x1e')]+_0x2a856c[_0x92ee('0x1c')];var _0x20b928;if(_0x33c633>=_0x1d3b0e){_0x33c633=_0x1d3b0e;_0x20b928=0xc8;}else{_0x20b928=0xce;}_0x514b4d[_0x92ee('0x19')](_0x20b928);return _0x514b4d['set'](_0x92ee('0x1f'),_0x3b28a1+'-'+_0x33c633+'/'+_0x1d3b0e)[_0x92ee('0x1b')](_0x18deaf);}return null;};}function patchUpdates(_0x478dd5){return function(_0x4f2c4f){try{jsonpatch[_0x92ee('0x20')](_0x4f2c4f,_0x478dd5,!![]);}catch(_0x3a7d84){return BPromise[_0x92ee('0x21')](_0x3a7d84);}return _0x4f2c4f[_0x92ee('0x22')]();};}function saveUpdates(_0x161397,_0xe79712){return function(_0x5e52e7){if(_0x5e52e7){return _0x5e52e7[_0x92ee('0x23')](_0x161397)['then'](function(_0x720673){return _0x720673;});}return null;};}function removeEntity(_0x486680,_0x1438a2){return function(_0x8959f9){if(_0x8959f9){return _0x8959f9[_0x92ee('0x24')]()[_0x92ee('0x25')](function(){_0x486680[_0x92ee('0x19')](0xcc)[_0x92ee('0x1a')]();});}};}function handleEntityNotFound(_0x31d0bd,_0x13e5c9){return function(_0x2dba4b){if(!_0x2dba4b){_0x31d0bd[_0x92ee('0x18')](0x194);}return _0x2dba4b;};}function handleError(_0x3a6621,_0x3c7ed6){_0x3c7ed6=_0x3c7ed6||0x1f4;return function(_0xb2434e){logger['error'](_0xb2434e[_0x92ee('0x26')]);if(_0xb2434e[_0x92ee('0x27')]){delete _0xb2434e['name'];}_0x3a6621[_0x92ee('0x19')](_0x3c7ed6)[_0x92ee('0x28')](_0xb2434e);};}exports[_0x92ee('0x29')]=function(_0x321e52,_0x4578a7){var _0x4e5a2e={},_0x3f1c54={},_0x2ba9ab={'count':0x0,'rows':[]};var _0x48bb16=_[_0x92ee('0x2a')](db[_0x92ee('0x2b')]['rawAttributes'],function(_0x28c156){return{'name':_0x28c156[_0x92ee('0x2c')],'type':_0x28c156['type'][_0x92ee('0x2d')]};});_0x3f1c54[_0x92ee('0x2e')]=_['map'](_0x48bb16,'name');_0x3f1c54[_0x92ee('0x2f')]=_[_0x92ee('0x30')](_0x321e52[_0x92ee('0x2f')]);_0x3f1c54[_0x92ee('0x31')]=_['intersection'](_0x3f1c54['model'],_0x3f1c54['query']);_0x4e5a2e[_0x92ee('0x32')]=_[_0x92ee('0x33')](_0x3f1c54[_0x92ee('0x2e')],qs[_0x92ee('0x34')](_0x321e52['query'][_0x92ee('0x34')]));_0x4e5a2e[_0x92ee('0x32')]=_0x4e5a2e[_0x92ee('0x32')][_0x92ee('0x35')]?_0x4e5a2e['attributes']:_0x3f1c54[_0x92ee('0x2e')];if(!_0x321e52['query']['hasOwnProperty']('nolimit')){_0x4e5a2e[_0x92ee('0x1c')]=qs[_0x92ee('0x1c')](_0x321e52[_0x92ee('0x2f')]['limit']);_0x4e5a2e['offset']=qs[_0x92ee('0x1e')](_0x321e52[_0x92ee('0x2f')][_0x92ee('0x1e')]);}_0x4e5a2e[_0x92ee('0x36')]=qs[_0x92ee('0x37')](_0x321e52[_0x92ee('0x2f')]['sort']);_0x4e5a2e['where']=qs[_0x92ee('0x31')](_[_0x92ee('0x38')](_0x321e52[_0x92ee('0x2f')],_0x3f1c54[_0x92ee('0x31')]),_0x48bb16);if(_0x321e52['query'][_0x92ee('0x39')]){_0x4e5a2e['where']=_[_0x92ee('0x3a')](_0x4e5a2e[_0x92ee('0x3b')],{'$or':_[_0x92ee('0x2a')](_0x48bb16,function(_0x402209){if(_0x402209[_0x92ee('0x3c')]!==_0x92ee('0x3d')){var _0x1e6c43={};_0x1e6c43[_0x402209[_0x92ee('0x27')]]={'$like':'%'+_0x321e52[_0x92ee('0x2f')][_0x92ee('0x39')]+'%'};return _0x1e6c43;}})});}_0x4e5a2e=_[_0x92ee('0x3a')]({},_0x4e5a2e,_0x321e52[_0x92ee('0x3e')]);var _0xa7a186={'where':_0x4e5a2e[_0x92ee('0x3b')]};return db[_0x92ee('0x2b')][_0x92ee('0x1d')](_0xa7a186)[_0x92ee('0x25')](function(_0xfb9c71){_0x2ba9ab[_0x92ee('0x1d')]=_0xfb9c71;if(_0x321e52[_0x92ee('0x2f')][_0x92ee('0x3f')]){_0x4e5a2e[_0x92ee('0x40')]=[{'all':!![]}];}return db[_0x92ee('0x2b')]['findAll'](_0x4e5a2e);})[_0x92ee('0x25')](function(_0x49863f){_0x2ba9ab[_0x92ee('0x41')]=_0x49863f;return _0x2ba9ab;})[_0x92ee('0x25')](respondWithFilteredResult(_0x4578a7,_0x4e5a2e))['catch'](handleError(_0x4578a7,null));};exports[_0x92ee('0x42')]=function(_0x504aea,_0x3b4f4c){var _0x5d92ac={'raw':![],'where':{'id':_0x504aea['params']['id']}},_0x3ba30c={};_0x3ba30c[_0x92ee('0x2e')]=_['keys'](db['VtigerAccount'][_0x92ee('0x43')]);_0x3ba30c[_0x92ee('0x2f')]=_[_0x92ee('0x30')](_0x504aea['query']);_0x3ba30c[_0x92ee('0x31')]=_[_0x92ee('0x33')](_0x3ba30c[_0x92ee('0x2e')],_0x3ba30c[_0x92ee('0x2f')]);_0x5d92ac[_0x92ee('0x32')]=_[_0x92ee('0x33')](_0x3ba30c[_0x92ee('0x2e')],qs[_0x92ee('0x34')](_0x504aea[_0x92ee('0x2f')][_0x92ee('0x34')]));_0x5d92ac[_0x92ee('0x32')]=_0x5d92ac['attributes']['length']?_0x5d92ac[_0x92ee('0x32')]:_0x3ba30c['model'];if(_0x504aea['query']['includeAll']){_0x5d92ac[_0x92ee('0x40')]=[{'all':!![]}];}_0x5d92ac=_['merge']({},_0x5d92ac,_0x504aea[_0x92ee('0x3e')]);return db['VtigerAccount'][_0x92ee('0x44')](_0x5d92ac)[_0x92ee('0x25')](handleEntityNotFound(_0x3b4f4c,null))[_0x92ee('0x25')](respondWithResult(_0x3b4f4c,null))[_0x92ee('0x45')](handleError(_0x3b4f4c,null));};exports[_0x92ee('0x46')]=function(_0xd85ada,_0x179fc4){return db[_0x92ee('0x2b')]['create'](_0xd85ada[_0x92ee('0x47')],{})['then'](respondWithResult(_0x179fc4,0xc9))['catch'](handleError(_0x179fc4,null));};exports[_0x92ee('0x23')]=function(_0x4f9ee7,_0x58185b){if(_0x4f9ee7[_0x92ee('0x47')]['id']){delete _0x4f9ee7['body']['id'];}return db[_0x92ee('0x2b')][_0x92ee('0x44')]({'where':{'id':_0x4f9ee7['params']['id']}})['then'](handleEntityNotFound(_0x58185b,null))[_0x92ee('0x25')](saveUpdates(_0x4f9ee7[_0x92ee('0x47')],null))[_0x92ee('0x25')](respondWithResult(_0x58185b,null))['catch'](handleError(_0x58185b,null));};exports['destroy']=function(_0x5bcea9,_0x30adfd){return db['VtigerAccount'][_0x92ee('0x44')]({'where':{'id':_0x5bcea9[_0x92ee('0x48')]['id']}})['then'](handleEntityNotFound(_0x30adfd,null))['then'](removeEntity(_0x30adfd,null))[_0x92ee('0x45')](handleError(_0x30adfd,null));};exports[_0x92ee('0x49')]=function(_0x2ffda9,_0xa24cc2,_0x2437fc){var _0x1c85ca={};var _0x5a1f5c={};var _0x5375e5;var _0x5a724e;return db['VtigerAccount'][_0x92ee('0x4a')]({'where':{'id':_0x2ffda9[_0x92ee('0x48')]['id']}})[_0x92ee('0x25')](handleEntityNotFound(_0xa24cc2,null))['then'](function(_0x4136d7){if(_0x4136d7){_0x5375e5=_0x4136d7;_0x5a1f5c[_0x92ee('0x2e')]=_[_0x92ee('0x30')](db[_0x92ee('0x4b')][_0x92ee('0x43')]);_0x5a1f5c['query']=_['keys'](_0x2ffda9[_0x92ee('0x2f')]);_0x5a1f5c[_0x92ee('0x31')]=_[_0x92ee('0x33')](_0x5a1f5c[_0x92ee('0x2e')],_0x5a1f5c[_0x92ee('0x2f')]);_0x1c85ca[_0x92ee('0x32')]=_[_0x92ee('0x33')](_0x5a1f5c[_0x92ee('0x2e')],qs[_0x92ee('0x34')](_0x2ffda9[_0x92ee('0x2f')][_0x92ee('0x34')]));_0x1c85ca['attributes']=_0x1c85ca[_0x92ee('0x32')]['length']?_0x1c85ca['attributes']:_0x5a1f5c[_0x92ee('0x2e')];_0x1c85ca[_0x92ee('0x36')]=qs['sort'](_0x2ffda9[_0x92ee('0x2f')][_0x92ee('0x37')]);_0x1c85ca[_0x92ee('0x3b')]=qs['filters'](_[_0x92ee('0x38')](_0x2ffda9[_0x92ee('0x2f')],_0x5a1f5c['filters']));if(_0x2ffda9[_0x92ee('0x2f')][_0x92ee('0x39')]){_0x1c85ca[_0x92ee('0x3b')]=_[_0x92ee('0x3a')](_0x1c85ca[_0x92ee('0x3b')],{'$or':_[_0x92ee('0x2a')](_0x1c85ca['attributes'],function(_0x331375){var _0x2e4a28={};_0x2e4a28[_0x331375]={'$like':'%'+_0x2ffda9[_0x92ee('0x2f')][_0x92ee('0x39')]+'%'};return _0x2e4a28;})});}_0x1c85ca=_[_0x92ee('0x3a')]({},_0x1c85ca,_0x2ffda9[_0x92ee('0x3e')]);return _0x5375e5[_0x92ee('0x49')](_0x1c85ca);}})['then'](function(_0x1fabb8){if(_0x1fabb8){_0x5a724e=_0x1fabb8[_0x92ee('0x35')];if(!_0x2ffda9['query'][_0x92ee('0x4c')](_0x92ee('0x4d'))){_0x1c85ca[_0x92ee('0x1c')]=qs[_0x92ee('0x1c')](_0x2ffda9[_0x92ee('0x2f')][_0x92ee('0x1c')]);_0x1c85ca[_0x92ee('0x1e')]=qs[_0x92ee('0x1e')](_0x2ffda9['query'][_0x92ee('0x1e')]);}return _0x5375e5['getConfigurations'](_0x1c85ca);}})[_0x92ee('0x25')](function(_0x1ac5b5){if(_0x1ac5b5){return _0x1ac5b5?{'count':_0x5a724e,'rows':_0x1ac5b5}:null;}})[_0x92ee('0x25')](respondWithResult(_0xa24cc2,null))[_0x92ee('0x45')](handleError(_0xa24cc2,null));};exports[_0x92ee('0x4e')]=function(_0x30f8c9,_0x18101a,_0x116796){if(_0x30f8c9[_0x92ee('0x47')]['id']){delete _0x30f8c9['body']['id'];}return db[_0x92ee('0x2b')][_0x92ee('0x4a')]({'where':{'id':_0x30f8c9[_0x92ee('0x48')]['id']}})[_0x92ee('0x25')](handleEntityNotFound(_0x18101a,null))[_0x92ee('0x25')](function(_0x1ede43){if(_0x1ede43){_0x30f8c9['body'][_0x92ee('0x4f')]=_0x1ede43['id'];_0x30f8c9['body'][_0x92ee('0x50')]=integrations[_0x92ee('0x51')](_0x30f8c9[_0x92ee('0x47')][_0x92ee('0x52')],_0x30f8c9[_0x92ee('0x47')]['type']);_0x30f8c9[_0x92ee('0x47')]['Descriptions']=integrations[_0x92ee('0x53')](_0x30f8c9['body']['channel'],_0x30f8c9['body'][_0x92ee('0x3c')]);return db[_0x92ee('0x4b')][_0x92ee('0x46')](_0x30f8c9['body'],{'include':[{'model':db[_0x92ee('0x54')],'as':_0x92ee('0x50')},{'model':db[_0x92ee('0x54')],'as':_0x92ee('0x55')}]});}return null;})['then'](respondWithResult(_0x18101a,null))['catch'](handleError(_0x18101a,null));};var md5=require(_0x92ee('0x56'));exports[_0x92ee('0x57')]=function(_0x2116b9,_0x2caf62,_0x31a264){var _0x3f9f1f=null;var _0x3f6acc=null;var _0x2c953c=null;var _0x59ec62=null;var _0xdd4c43='';return db[_0x92ee('0x2b')][_0x92ee('0x4a')]({'where':{'id':_0x2116b9[_0x92ee('0x48')]['id']},'attributes':['id',_0x92ee('0x27'),'username',_0x92ee('0x58'),_0x92ee('0x59'),_0x92ee('0x5a'),_0x92ee('0x5b'),_0x92ee('0x5c')]})['then'](handleEntityNotFound(_0x2caf62,null))[_0x92ee('0x25')](function(_0x23a362){if(_0x23a362){_0x3f9f1f=_0x23a362['username'];_0x3f6acc=_0x23a362[_0x92ee('0x5c')];_0x2c953c=_0x23a362[_0x92ee('0x59')];_0xdd4c43=_0x23a362[_0x92ee('0x5a')];var _0x2c575e=_0xdd4c43['slice'](-0x1);if(_0x2c575e==='/'){_0xdd4c43=_0xdd4c43[_0x92ee('0x5d')](0x0,_0xdd4c43[_0x92ee('0x5e')](_0x2c575e));}_0x59ec62=util[_0x92ee('0x5f')](_0x92ee('0x60'),_0xdd4c43);var _0x384ba6={'method':'GET','uri':_0x59ec62,'qs':{'operation':_0x92ee('0x61'),'username':_0x23a362[_0x92ee('0x62')]},'json':!![]};return rp(_0x384ba6);}})[_0x92ee('0x25')](function(_0x1c49f7){if(_0x1c49f7[_0x92ee('0x63')]){var _0x58bb73={'method':_0x92ee('0x64'),'uri':_0x59ec62,'form':{'operation':_0x92ee('0x65'),'username':_0x3f9f1f,'accessKey':md5(_0x1c49f7[_0x92ee('0x66')][_0x92ee('0x67')]+_0x3f6acc)},'json':!![]};return rp(_0x58bb73);}})[_0x92ee('0x25')](function(_0x27a48b){if(_0x27a48b['success']){var _0x1b728a={'method':_0x92ee('0x68'),'uri':_0x59ec62,'qs':{'operation':_0x92ee('0x69'),'username':_0x3f9f1f,'sessionName':_0x27a48b['result'][_0x92ee('0x6a')],'elementType':_0x2c953c},'json':!![]};return rp(_0x1b728a);}})[_0x92ee('0x25')](function(_0x2028a2){if(_0x2028a2[_0x92ee('0x63')]){var _0xd7a2ca=['autogenerated','reference',_0x92ee('0x6b')];_[_0x92ee('0x6c')](_0x2028a2[_0x92ee('0x66')]['fields'],function(_0x1be913){return _0xd7a2ca['includes'](_0x1be913['type'][_0x92ee('0x27')]);});_[_0x92ee('0x6c')](_0x2028a2[_0x92ee('0x66')][_0x92ee('0x34')],function(_0x21493c){return _0x21493c[_0x92ee('0x6d')]===_0x92ee('0x6e');});return{'count':_0x2028a2[_0x92ee('0x66')][_0x92ee('0x34')][_0x92ee('0x35')],'rows':_['map'](_0x2028a2[_0x92ee('0x66')]['fields'],function(_0xa2a86){return{'id':_0xa2a86[_0x92ee('0x27')],'name':_0xa2a86[_0x92ee('0x6f')],'custom':_[_0x92ee('0x70')](_0xa2a86[_0x92ee('0x27')],'cf_')?!![]:![],'options':_0xa2a86[_0x92ee('0x3c')][_0x92ee('0x27')]===_0x92ee('0x71')&&_0xa2a86['type']['picklistValues']['length']>0x0?_['map'](_0xa2a86[_0x92ee('0x3c')][_0x92ee('0x72')],function(_0x3f2277){return{'name':_0x3f2277[_0x92ee('0x6f')],'value':_0x3f2277['value']};}):[]};})};}})[_0x92ee('0x25')](respondWithResult(_0x2caf62,null))[_0x92ee('0x45')](function(_0x55f30c){console[_0x92ee('0x73')]('vTiger\x20error:\x20'+_0x55f30c);var _0x4664d6=_0x2116b9['query']['test']?0x1f4:_0x55f30c[_0x92ee('0x74')]||0x1f4;logger[_0x92ee('0x75')](_0x92ee('0x76'),'getFields',_0x4664d6,JSON[_0x92ee('0x77')](_0x55f30c));delete _0x55f30c['name'];if(_0x4664d6===0x191){_0x4664d6=0x190;}_0x2caf62[_0x92ee('0x19')](_0x4664d6)[_0x92ee('0x28')](_0x2116b9[_0x92ee('0x2f')][_0x92ee('0x78')]?{'message':_0x92ee('0x79'),'statusCode':_0x55f30c[_0x92ee('0x74')]}:_0x55f30c);});};