Built motion from commit 56b8093a.|2.6.29
[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 _0x4636=['../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','then','destroy','end','error','name','send','map','VtigerAccount','rawAttributes','fieldName','type','model','keys','query','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','VIRTUAL','filter','options','includeAll','catch','show','params','length','include','find','create','body','update','getConfigurations','findOne','VtigerConfiguration','addConfiguration','getSubjects','channel','Descriptions','getDescriptions','VtigerField','Subjects','md5','getFields','username','description','moduleName','remoteUri','serverUrl','accessKey','substring','lastIndexOf','format','%s/webservice.php','GET','getchallenge','login','result','token','success','describe','sessionName','autogenerated','reference','owner','remove','editable','false','label','cf_','picklistValues','value','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','zip-dir','bluebird','mustache','to-csv','fs-extra','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils'];(function(_0x3b21b8,_0x29b1aa){var _0x2c731b=function(_0x515b81){while(--_0x515b81){_0x3b21b8['push'](_0x3b21b8['shift']());}};_0x2c731b(++_0x29b1aa);}(_0x4636,0x145));var _0x6463=function(_0x3bfdc3,_0x1f5d8e){_0x3bfdc3=_0x3bfdc3-0x0;var _0x486f48=_0x4636[_0x3bfdc3];return _0x486f48;};'use strict';var emlformat=require(_0x6463('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x6463('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x6463('0x2'));var Mustache=require(_0x6463('0x3'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x6463('0x4'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6463('0x5'));var _=require(_0x6463('0x6'));var squel=require(_0x6463('0x7'));var crypto=require('crypto');var jsforce=require(_0x6463('0x8'));var deskjs=require('desk.js');var toCsv=require(_0x6463('0x4'));var querystring=require(_0x6463('0x9'));var Papa=require(_0x6463('0xa'));var Redis=require(_0x6463('0xb'));var authService=require('../../components/auth/service');var qs=require(_0x6463('0xc'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6463('0xd'));var logger=require(_0x6463('0xe'))(_0x6463('0xf'));var utils=require(_0x6463('0x10'));var config=require(_0x6463('0x11'));var licenseUtil=require('../../config/license/util');var db=require(_0x6463('0x12'))['db'];var integrations=require(_0x6463('0x13'));function respondWithStatusCode(_0x2e1e94,_0x4298a2){_0x4298a2=_0x4298a2||0xcc;return function(_0x105891){if(_0x105891){return _0x2e1e94[_0x6463('0x14')](_0x4298a2);}return _0x2e1e94[_0x6463('0x15')](_0x4298a2)['end']();};}function respondWithResult(_0x50cb8c,_0x51227f){_0x51227f=_0x51227f||0xc8;return function(_0x4b2281){if(_0x4b2281){return _0x50cb8c[_0x6463('0x15')](_0x51227f)[_0x6463('0x16')](_0x4b2281);}};}function respondWithFilteredResult(_0x478a31,_0xc7dfe2){return function(_0x2692e4){if(_0x2692e4){var _0x24c331=typeof _0xc7dfe2[_0x6463('0x17')]===_0x6463('0x18')&&typeof _0xc7dfe2[_0x6463('0x19')]===_0x6463('0x18');var _0x3186a7=_0x2692e4[_0x6463('0x1a')];var _0x4c13ef=_0x24c331?0x0:_0xc7dfe2[_0x6463('0x17')];var _0x1e4ee1=_0x24c331?_0x2692e4[_0x6463('0x1a')]:_0xc7dfe2[_0x6463('0x17')]+_0xc7dfe2['limit'];var _0x36504c;if(_0x1e4ee1>=_0x3186a7){_0x1e4ee1=_0x3186a7;_0x36504c=0xc8;}else{_0x36504c=0xce;}_0x478a31[_0x6463('0x15')](_0x36504c);return _0x478a31[_0x6463('0x1b')](_0x6463('0x1c'),_0x4c13ef+'-'+_0x1e4ee1+'/'+_0x3186a7)['json'](_0x2692e4);}return null;};}function patchUpdates(_0x54d3cd){return function(_0x1bbb59){try{jsonpatch[_0x6463('0x1d')](_0x1bbb59,_0x54d3cd,!![]);}catch(_0x48802e){return BPromise[_0x6463('0x1e')](_0x48802e);}return _0x1bbb59['save']();};}function saveUpdates(_0x39210d,_0x1331a2){return function(_0x1c3342){if(_0x1c3342){return _0x1c3342['update'](_0x39210d)[_0x6463('0x1f')](function(_0x22c2ce){return _0x22c2ce;});}return null;};}function removeEntity(_0x107a2b,_0x46bc1a){return function(_0xe1d425){if(_0xe1d425){return _0xe1d425[_0x6463('0x20')]()[_0x6463('0x1f')](function(){_0x107a2b[_0x6463('0x15')](0xcc)[_0x6463('0x21')]();});}};}function handleEntityNotFound(_0x439e69,_0x4de460){return function(_0x17837a){if(!_0x17837a){_0x439e69[_0x6463('0x14')](0x194);}return _0x17837a;};}function handleError(_0x208c7c,_0x42965f){_0x42965f=_0x42965f||0x1f4;return function(_0x26a1ce){logger[_0x6463('0x22')](_0x26a1ce['stack']);if(_0x26a1ce['name']){delete _0x26a1ce[_0x6463('0x23')];}_0x208c7c[_0x6463('0x15')](_0x42965f)[_0x6463('0x24')](_0x26a1ce);};}exports['index']=function(_0x2d7ca0,_0x24a843){var _0x4e79f3={},_0x5cf65f={},_0x412715={'count':0x0,'rows':[]};var _0x52a877=_[_0x6463('0x25')](db[_0x6463('0x26')][_0x6463('0x27')],function(_0x40b4b9){return{'name':_0x40b4b9[_0x6463('0x28')],'type':_0x40b4b9[_0x6463('0x29')]['key']};});_0x5cf65f[_0x6463('0x2a')]=_['map'](_0x52a877,_0x6463('0x23'));_0x5cf65f['query']=_[_0x6463('0x2b')](_0x2d7ca0[_0x6463('0x2c')]);_0x5cf65f['filters']=_[_0x6463('0x2d')](_0x5cf65f[_0x6463('0x2a')],_0x5cf65f[_0x6463('0x2c')]);_0x4e79f3[_0x6463('0x2e')]=_[_0x6463('0x2d')](_0x5cf65f['model'],qs[_0x6463('0x2f')](_0x2d7ca0['query'][_0x6463('0x2f')]));_0x4e79f3[_0x6463('0x2e')]=_0x4e79f3[_0x6463('0x2e')]['length']?_0x4e79f3[_0x6463('0x2e')]:_0x5cf65f[_0x6463('0x2a')];if(!_0x2d7ca0[_0x6463('0x2c')][_0x6463('0x30')](_0x6463('0x31'))){_0x4e79f3['limit']=qs[_0x6463('0x19')](_0x2d7ca0[_0x6463('0x2c')][_0x6463('0x19')]);_0x4e79f3[_0x6463('0x17')]=qs['offset'](_0x2d7ca0['query'][_0x6463('0x17')]);}_0x4e79f3[_0x6463('0x32')]=qs[_0x6463('0x33')](_0x2d7ca0[_0x6463('0x2c')]['sort']);_0x4e79f3[_0x6463('0x34')]=qs[_0x6463('0x35')](_[_0x6463('0x36')](_0x2d7ca0[_0x6463('0x2c')],_0x5cf65f[_0x6463('0x35')]),_0x52a877);if(_0x2d7ca0['query']['filter']){_0x4e79f3[_0x6463('0x34')]=_[_0x6463('0x37')](_0x4e79f3[_0x6463('0x34')],{'$or':_[_0x6463('0x25')](_0x52a877,function(_0x19f3da){if(_0x19f3da[_0x6463('0x29')]!==_0x6463('0x38')){var _0x27c1a2={};_0x27c1a2[_0x19f3da[_0x6463('0x23')]]={'$like':'%'+_0x2d7ca0[_0x6463('0x2c')][_0x6463('0x39')]+'%'};return _0x27c1a2;}})});}_0x4e79f3=_['merge']({},_0x4e79f3,_0x2d7ca0[_0x6463('0x3a')]);var _0x5db12a={'where':_0x4e79f3[_0x6463('0x34')]};return db[_0x6463('0x26')][_0x6463('0x1a')](_0x5db12a)[_0x6463('0x1f')](function(_0x159604){_0x412715[_0x6463('0x1a')]=_0x159604;if(_0x2d7ca0[_0x6463('0x2c')][_0x6463('0x3b')]){_0x4e79f3['include']=[{'all':!![]}];}return db[_0x6463('0x26')]['findAll'](_0x4e79f3);})['then'](function(_0xb82475){_0x412715['rows']=_0xb82475;return _0x412715;})['then'](respondWithFilteredResult(_0x24a843,_0x4e79f3))[_0x6463('0x3c')](handleError(_0x24a843,null));};exports[_0x6463('0x3d')]=function(_0x1c5472,_0x5f2512){var _0x3404d9={'raw':![],'where':{'id':_0x1c5472[_0x6463('0x3e')]['id']}},_0x72a9d0={};_0x72a9d0[_0x6463('0x2a')]=_['keys'](db[_0x6463('0x26')][_0x6463('0x27')]);_0x72a9d0[_0x6463('0x2c')]=_[_0x6463('0x2b')](_0x1c5472[_0x6463('0x2c')]);_0x72a9d0[_0x6463('0x35')]=_[_0x6463('0x2d')](_0x72a9d0[_0x6463('0x2a')],_0x72a9d0[_0x6463('0x2c')]);_0x3404d9[_0x6463('0x2e')]=_['intersection'](_0x72a9d0[_0x6463('0x2a')],qs[_0x6463('0x2f')](_0x1c5472['query']['fields']));_0x3404d9[_0x6463('0x2e')]=_0x3404d9[_0x6463('0x2e')][_0x6463('0x3f')]?_0x3404d9[_0x6463('0x2e')]:_0x72a9d0[_0x6463('0x2a')];if(_0x1c5472['query'][_0x6463('0x3b')]){_0x3404d9[_0x6463('0x40')]=[{'all':!![]}];}_0x3404d9=_[_0x6463('0x37')]({},_0x3404d9,_0x1c5472[_0x6463('0x3a')]);return db['VtigerAccount'][_0x6463('0x41')](_0x3404d9)[_0x6463('0x1f')](handleEntityNotFound(_0x5f2512,null))[_0x6463('0x1f')](respondWithResult(_0x5f2512,null))[_0x6463('0x3c')](handleError(_0x5f2512,null));};exports[_0x6463('0x42')]=function(_0x440e1a,_0x373376){return db[_0x6463('0x26')][_0x6463('0x42')](_0x440e1a[_0x6463('0x43')],{})[_0x6463('0x1f')](respondWithResult(_0x373376,0xc9))[_0x6463('0x3c')](handleError(_0x373376,null));};exports[_0x6463('0x44')]=function(_0x4030df,_0xf1f728){if(_0x4030df[_0x6463('0x43')]['id']){delete _0x4030df[_0x6463('0x43')]['id'];}return db[_0x6463('0x26')][_0x6463('0x41')]({'where':{'id':_0x4030df['params']['id']}})[_0x6463('0x1f')](handleEntityNotFound(_0xf1f728,null))['then'](saveUpdates(_0x4030df['body'],null))[_0x6463('0x1f')](respondWithResult(_0xf1f728,null))[_0x6463('0x3c')](handleError(_0xf1f728,null));};exports[_0x6463('0x20')]=function(_0x43080d,_0x15b836){return db[_0x6463('0x26')][_0x6463('0x41')]({'where':{'id':_0x43080d[_0x6463('0x3e')]['id']}})[_0x6463('0x1f')](handleEntityNotFound(_0x15b836,null))[_0x6463('0x1f')](removeEntity(_0x15b836,null))['catch'](handleError(_0x15b836,null));};exports[_0x6463('0x45')]=function(_0x2c16fe,_0x20ddc7,_0x2610a3){var _0xb5be03={};var _0x42a052={};var _0x1caf3e;var _0x903f65;return db[_0x6463('0x26')][_0x6463('0x46')]({'where':{'id':_0x2c16fe[_0x6463('0x3e')]['id']}})[_0x6463('0x1f')](handleEntityNotFound(_0x20ddc7,null))['then'](function(_0x8c7a4b){if(_0x8c7a4b){_0x1caf3e=_0x8c7a4b;_0x42a052[_0x6463('0x2a')]=_['keys'](db[_0x6463('0x47')][_0x6463('0x27')]);_0x42a052['query']=_[_0x6463('0x2b')](_0x2c16fe[_0x6463('0x2c')]);_0x42a052[_0x6463('0x35')]=_[_0x6463('0x2d')](_0x42a052[_0x6463('0x2a')],_0x42a052[_0x6463('0x2c')]);_0xb5be03['attributes']=_[_0x6463('0x2d')](_0x42a052['model'],qs[_0x6463('0x2f')](_0x2c16fe[_0x6463('0x2c')][_0x6463('0x2f')]));_0xb5be03[_0x6463('0x2e')]=_0xb5be03['attributes']['length']?_0xb5be03[_0x6463('0x2e')]:_0x42a052[_0x6463('0x2a')];_0xb5be03[_0x6463('0x32')]=qs['sort'](_0x2c16fe[_0x6463('0x2c')][_0x6463('0x33')]);_0xb5be03[_0x6463('0x34')]=qs[_0x6463('0x35')](_['pick'](_0x2c16fe[_0x6463('0x2c')],_0x42a052['filters']));if(_0x2c16fe[_0x6463('0x2c')][_0x6463('0x39')]){_0xb5be03[_0x6463('0x34')]=_['merge'](_0xb5be03[_0x6463('0x34')],{'$or':_[_0x6463('0x25')](_0xb5be03['attributes'],function(_0x34d4ba){var _0xbb88b7={};_0xbb88b7[_0x34d4ba]={'$like':'%'+_0x2c16fe[_0x6463('0x2c')]['filter']+'%'};return _0xbb88b7;})});}_0xb5be03=_['merge']({},_0xb5be03,_0x2c16fe['options']);return _0x1caf3e['getConfigurations'](_0xb5be03);}})[_0x6463('0x1f')](function(_0x4ba593){if(_0x4ba593){_0x903f65=_0x4ba593[_0x6463('0x3f')];if(!_0x2c16fe['query'][_0x6463('0x30')](_0x6463('0x31'))){_0xb5be03[_0x6463('0x19')]=qs['limit'](_0x2c16fe[_0x6463('0x2c')]['limit']);_0xb5be03[_0x6463('0x17')]=qs['offset'](_0x2c16fe[_0x6463('0x2c')]['offset']);}return _0x1caf3e['getConfigurations'](_0xb5be03);}})[_0x6463('0x1f')](function(_0x14c754){if(_0x14c754){return _0x14c754?{'count':_0x903f65,'rows':_0x14c754}:null;}})[_0x6463('0x1f')](respondWithResult(_0x20ddc7,null))[_0x6463('0x3c')](handleError(_0x20ddc7,null));};exports[_0x6463('0x48')]=function(_0x20303e,_0x585d78,_0x599795){if(_0x20303e['body']['id']){delete _0x20303e['body']['id'];}return db['VtigerAccount'][_0x6463('0x46')]({'where':{'id':_0x20303e[_0x6463('0x3e')]['id']}})[_0x6463('0x1f')](handleEntityNotFound(_0x585d78,null))['then'](function(_0x2b9ad4){if(_0x2b9ad4){_0x20303e[_0x6463('0x43')]['AccountId']=_0x2b9ad4['id'];_0x20303e[_0x6463('0x43')]['Subjects']=integrations[_0x6463('0x49')](_0x20303e[_0x6463('0x43')][_0x6463('0x4a')],_0x20303e['body'][_0x6463('0x29')]);_0x20303e[_0x6463('0x43')][_0x6463('0x4b')]=integrations[_0x6463('0x4c')](_0x20303e[_0x6463('0x43')]['channel'],_0x20303e[_0x6463('0x43')][_0x6463('0x29')]);return db[_0x6463('0x47')][_0x6463('0x42')](_0x20303e[_0x6463('0x43')],{'include':[{'model':db[_0x6463('0x4d')],'as':_0x6463('0x4e')},{'model':db[_0x6463('0x4d')],'as':_0x6463('0x4b')}]});}return null;})[_0x6463('0x1f')](respondWithResult(_0x585d78,null))['catch'](handleError(_0x585d78,null));};var md5=require(_0x6463('0x4f'));exports[_0x6463('0x50')]=function(_0x3534ea,_0x282d89,_0x4f3c2b){var _0x2690fc=null;var _0x3567e6=null;var _0x1b3da8=null;var _0x60cea0=null;var _0x3a7622='';return db['VtigerAccount'][_0x6463('0x46')]({'where':{'id':_0x3534ea[_0x6463('0x3e')]['id']},'attributes':['id',_0x6463('0x23'),_0x6463('0x51'),_0x6463('0x52'),_0x6463('0x53'),_0x6463('0x54'),_0x6463('0x55'),_0x6463('0x56')]})[_0x6463('0x1f')](handleEntityNotFound(_0x282d89,null))[_0x6463('0x1f')](function(_0x36bf5d){if(_0x36bf5d){_0x2690fc=_0x36bf5d['username'];_0x3567e6=_0x36bf5d[_0x6463('0x56')];_0x1b3da8=_0x36bf5d[_0x6463('0x53')];_0x3a7622=_0x36bf5d[_0x6463('0x54')];var _0xde8dd=_0x3a7622['slice'](-0x1);if(_0xde8dd==='/'){_0x3a7622=_0x3a7622[_0x6463('0x57')](0x0,_0x3a7622[_0x6463('0x58')](_0xde8dd));}_0x60cea0=util[_0x6463('0x59')](_0x6463('0x5a'),_0x3a7622);var _0x1e2038={'method':_0x6463('0x5b'),'uri':_0x60cea0,'qs':{'operation':_0x6463('0x5c'),'username':_0x36bf5d[_0x6463('0x51')]},'json':!![]};return rp(_0x1e2038);}})['then'](function(_0x1f5b52){if(_0x1f5b52['success']){var _0x4903d1={'method':'POST','uri':_0x60cea0,'form':{'operation':_0x6463('0x5d'),'username':_0x2690fc,'accessKey':md5(_0x1f5b52[_0x6463('0x5e')][_0x6463('0x5f')]+_0x3567e6)},'json':!![]};return rp(_0x4903d1);}})[_0x6463('0x1f')](function(_0xf4a457){if(_0xf4a457[_0x6463('0x60')]){var _0x48221d={'method':'GET','uri':_0x60cea0,'qs':{'operation':_0x6463('0x61'),'username':_0x2690fc,'sessionName':_0xf4a457['result'][_0x6463('0x62')],'elementType':_0x1b3da8},'json':!![]};return rp(_0x48221d);}})[_0x6463('0x1f')](function(_0x1f38aa){if(_0x1f38aa[_0x6463('0x60')]){var _0x604c29=[_0x6463('0x63'),_0x6463('0x64'),_0x6463('0x65')];_[_0x6463('0x66')](_0x1f38aa[_0x6463('0x5e')][_0x6463('0x2f')],function(_0x554607){return _0x604c29['includes'](_0x554607['type'][_0x6463('0x23')]);});_[_0x6463('0x66')](_0x1f38aa[_0x6463('0x5e')][_0x6463('0x2f')],function(_0x35ee03){return _0x35ee03[_0x6463('0x67')]===_0x6463('0x68');});return{'count':_0x1f38aa['result'][_0x6463('0x2f')][_0x6463('0x3f')],'rows':_['map'](_0x1f38aa[_0x6463('0x5e')][_0x6463('0x2f')],function(_0x2116ba){return{'id':_0x2116ba['name'],'name':_0x2116ba[_0x6463('0x69')],'custom':_['startsWith'](_0x2116ba[_0x6463('0x23')],_0x6463('0x6a'))?!![]:![],'options':_0x2116ba[_0x6463('0x29')][_0x6463('0x23')]==='picklist'&&_0x2116ba['type'][_0x6463('0x6b')]['length']>0x0?_[_0x6463('0x25')](_0x2116ba[_0x6463('0x29')][_0x6463('0x6b')],function(_0x23e620){return{'name':_0x23e620['label'],'value':_0x23e620[_0x6463('0x6c')]};}):[]};})};}})[_0x6463('0x1f')](respondWithResult(_0x282d89,null))['catch'](function(_0x4a3358){console['log']('vTiger\x20error:\x20'+_0x4a3358);var _0x21c480=_0x3534ea['query'][_0x6463('0x6d')]?0x1f4:_0x4a3358[_0x6463('0x6e')]||0x1f4;logger['error'](_0x6463('0x6f'),'getFields',_0x21c480,JSON[_0x6463('0x70')](_0x4a3358));delete _0x4a3358[_0x6463('0x23')];if(_0x21c480===0x191){_0x21c480=0x190;}_0x282d89['status'](_0x21c480)[_0x6463('0x24')](_0x3534ea[_0x6463('0x2c')][_0x6463('0x6d')]?{'message':_0x6463('0x71'),'statusCode':_0x4a3358[_0x6463('0x6e')]}:_0x4a3358);});};