fb289f885cfa8490a471b605de3aac756ac3355d
[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 _0x9695=['stack','name','send','index','map','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','merge','VIRTUAL','filter','VtigerAccount','includeAll','include','findAll','rows','params','options','find','catch','create','body','VtigerConfiguration','rawAttributes','getConfigurations','addConfiguration','findOne','AccountId','Subjects','channel','Descriptions','VtigerField','getFields','description','remoteUri','serverUrl','accessKey','moduleName','slice','format','%s/webservice.php','GET','getchallenge','success','login','describe','result','sessionName','autogenerated','reference','remove','includes','editable','false','cf_','picklist','picklistValues','label','value','log','vTiger\x20error:\x20','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','offset','limit','undefined','count','Content-Range','apply','save','update','destroy','then','end','error'];(function(_0x277eb9,_0x78ed68){var _0x203623=function(_0x34b8a6){while(--_0x34b8a6){_0x277eb9['push'](_0x277eb9['shift']());}};_0x203623(++_0x78ed68);}(_0x9695,0x139));var _0x5969=function(_0x1c4834,_0x4ea38e){_0x1c4834=_0x1c4834-0x0;var _0x3e2e54=_0x9695[_0x1c4834];return _0x3e2e54;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x5969('0x0'));var moment=require(_0x5969('0x1'));var BPromise=require(_0x5969('0x2'));var Mustache=require(_0x5969('0x3'));var util=require(_0x5969('0x4'));var path=require(_0x5969('0x5'));var sox=require(_0x5969('0x6'));var csv=require(_0x5969('0x7'));var ejs=require(_0x5969('0x8'));var fs=require('fs');var fs_extra=require(_0x5969('0x9'));var _=require('lodash');var squel=require(_0x5969('0xa'));var crypto=require(_0x5969('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x5969('0xc'));var toCsv=require('to-csv');var querystring=require(_0x5969('0xd'));var Papa=require(_0x5969('0xe'));var Redis=require(_0x5969('0xf'));var authService=require(_0x5969('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x5969('0x11'));var hardwareService=require(_0x5969('0x12'));var logger=require(_0x5969('0x13'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x5969('0x14'));var db=require(_0x5969('0x15'))['db'];var integrations=require(_0x5969('0x16'));function respondWithStatusCode(_0xba16f8,_0x7afe58){_0x7afe58=_0x7afe58||0xcc;return function(_0x184abe){if(_0x184abe){return _0xba16f8[_0x5969('0x17')](_0x7afe58);}return _0xba16f8[_0x5969('0x18')](_0x7afe58)['end']();};}function respondWithResult(_0x311e7f,_0x2de56d){_0x2de56d=_0x2de56d||0xc8;return function(_0x5d5c53){if(_0x5d5c53){return _0x311e7f[_0x5969('0x18')](_0x2de56d)[_0x5969('0x19')](_0x5d5c53);}};}function respondWithFilteredResult(_0x52424b,_0x21a1fa){return function(_0x1dca07){if(_0x1dca07){var _0x717510=typeof _0x21a1fa[_0x5969('0x1a')]==='undefined'&&typeof _0x21a1fa[_0x5969('0x1b')]===_0x5969('0x1c');var _0xc9d438=_0x1dca07[_0x5969('0x1d')];var _0x2896fc=_0x717510?0x0:_0x21a1fa[_0x5969('0x1a')];var _0x5b2d09=_0x717510?_0x1dca07[_0x5969('0x1d')]:_0x21a1fa['offset']+_0x21a1fa[_0x5969('0x1b')];var _0xec77fa;if(_0x5b2d09>=_0xc9d438){_0x5b2d09=_0xc9d438;_0xec77fa=0xc8;}else{_0xec77fa=0xce;}_0x52424b[_0x5969('0x18')](_0xec77fa);return _0x52424b['set'](_0x5969('0x1e'),_0x2896fc+'-'+_0x5b2d09+'/'+_0xc9d438)[_0x5969('0x19')](_0x1dca07);}return null;};}function patchUpdates(_0x504c74){return function(_0x56f776){try{jsonpatch[_0x5969('0x1f')](_0x56f776,_0x504c74,!![]);}catch(_0x2d83ed){return BPromise['reject'](_0x2d83ed);}return _0x56f776[_0x5969('0x20')]();};}function saveUpdates(_0x5ccc00,_0x2a400b){return function(_0x182c24){if(_0x182c24){return _0x182c24[_0x5969('0x21')](_0x5ccc00)['then'](function(_0x4d0513){return _0x4d0513;});}return null;};}function removeEntity(_0x2f7c9c,_0x2c94f7){return function(_0x286016){if(_0x286016){return _0x286016[_0x5969('0x22')]()[_0x5969('0x23')](function(){_0x2f7c9c[_0x5969('0x18')](0xcc)[_0x5969('0x24')]();});}};}function handleEntityNotFound(_0xf95d1,_0x5037cb){return function(_0x23b1dc){if(!_0x23b1dc){_0xf95d1[_0x5969('0x17')](0x194);}return _0x23b1dc;};}function handleError(_0x423075,_0x6ae2c6){_0x6ae2c6=_0x6ae2c6||0x1f4;return function(_0x37ee63){logger[_0x5969('0x25')](_0x37ee63[_0x5969('0x26')]);if(_0x37ee63[_0x5969('0x27')]){delete _0x37ee63['name'];}_0x423075[_0x5969('0x18')](_0x6ae2c6)[_0x5969('0x28')](_0x37ee63);};}exports[_0x5969('0x29')]=function(_0x561e10,_0x3e9645){var _0x58ace2={},_0x13ed8e={},_0x153c69={'count':0x0,'rows':[]};var _0x511396=_[_0x5969('0x2a')](db['VtigerAccount']['rawAttributes'],function(_0x578d9b){return{'name':_0x578d9b[_0x5969('0x2b')],'type':_0x578d9b[_0x5969('0x2c')][_0x5969('0x2d')]};});_0x13ed8e[_0x5969('0x2e')]=_[_0x5969('0x2a')](_0x511396,_0x5969('0x27'));_0x13ed8e[_0x5969('0x2f')]=_[_0x5969('0x30')](_0x561e10[_0x5969('0x2f')]);_0x13ed8e[_0x5969('0x31')]=_[_0x5969('0x32')](_0x13ed8e['model'],_0x13ed8e[_0x5969('0x2f')]);_0x58ace2[_0x5969('0x33')]=_[_0x5969('0x32')](_0x13ed8e[_0x5969('0x2e')],qs[_0x5969('0x34')](_0x561e10[_0x5969('0x2f')][_0x5969('0x34')]));_0x58ace2[_0x5969('0x33')]=_0x58ace2[_0x5969('0x33')][_0x5969('0x35')]?_0x58ace2[_0x5969('0x33')]:_0x13ed8e[_0x5969('0x2e')];if(!_0x561e10[_0x5969('0x2f')][_0x5969('0x36')](_0x5969('0x37'))){_0x58ace2[_0x5969('0x1b')]=qs[_0x5969('0x1b')](_0x561e10[_0x5969('0x2f')][_0x5969('0x1b')]);_0x58ace2['offset']=qs[_0x5969('0x1a')](_0x561e10[_0x5969('0x2f')]['offset']);}_0x58ace2[_0x5969('0x38')]=qs[_0x5969('0x39')](_0x561e10[_0x5969('0x2f')][_0x5969('0x39')]);_0x58ace2['where']=qs[_0x5969('0x31')](_[_0x5969('0x3a')](_0x561e10[_0x5969('0x2f')],_0x13ed8e[_0x5969('0x31')]),_0x511396);if(_0x561e10[_0x5969('0x2f')]['filter']){_0x58ace2[_0x5969('0x3b')]=_[_0x5969('0x3c')](_0x58ace2['where'],{'$or':_['map'](_0x511396,function(_0x521b63){if(_0x521b63[_0x5969('0x2c')]!==_0x5969('0x3d')){var _0x10ca85={};_0x10ca85[_0x521b63['name']]={'$like':'%'+_0x561e10[_0x5969('0x2f')][_0x5969('0x3e')]+'%'};return _0x10ca85;}})});}_0x58ace2=_[_0x5969('0x3c')]({},_0x58ace2,_0x561e10['options']);var _0x55c014={'where':_0x58ace2['where']};return db[_0x5969('0x3f')][_0x5969('0x1d')](_0x55c014)[_0x5969('0x23')](function(_0x159834){_0x153c69['count']=_0x159834;if(_0x561e10[_0x5969('0x2f')][_0x5969('0x40')]){_0x58ace2[_0x5969('0x41')]=[{'all':!![]}];}return db[_0x5969('0x3f')][_0x5969('0x42')](_0x58ace2);})['then'](function(_0x507786){_0x153c69[_0x5969('0x43')]=_0x507786;return _0x153c69;})[_0x5969('0x23')](respondWithFilteredResult(_0x3e9645,_0x58ace2))['catch'](handleError(_0x3e9645,null));};exports['show']=function(_0x526f83,_0x3031f7){var _0x326dc7={'raw':![],'where':{'id':_0x526f83[_0x5969('0x44')]['id']}},_0xe15c33={};_0xe15c33[_0x5969('0x2e')]=_[_0x5969('0x30')](db[_0x5969('0x3f')]['rawAttributes']);_0xe15c33['query']=_['keys'](_0x526f83[_0x5969('0x2f')]);_0xe15c33[_0x5969('0x31')]=_[_0x5969('0x32')](_0xe15c33['model'],_0xe15c33[_0x5969('0x2f')]);_0x326dc7[_0x5969('0x33')]=_[_0x5969('0x32')](_0xe15c33['model'],qs[_0x5969('0x34')](_0x526f83['query']['fields']));_0x326dc7[_0x5969('0x33')]=_0x326dc7[_0x5969('0x33')][_0x5969('0x35')]?_0x326dc7[_0x5969('0x33')]:_0xe15c33[_0x5969('0x2e')];if(_0x526f83[_0x5969('0x2f')][_0x5969('0x40')]){_0x326dc7[_0x5969('0x41')]=[{'all':!![]}];}_0x326dc7=_['merge']({},_0x326dc7,_0x526f83[_0x5969('0x45')]);return db['VtigerAccount'][_0x5969('0x46')](_0x326dc7)[_0x5969('0x23')](handleEntityNotFound(_0x3031f7,null))[_0x5969('0x23')](respondWithResult(_0x3031f7,null))[_0x5969('0x47')](handleError(_0x3031f7,null));};exports[_0x5969('0x48')]=function(_0x12526b,_0x45e123){return db['VtigerAccount'][_0x5969('0x48')](_0x12526b[_0x5969('0x49')],{})[_0x5969('0x23')](respondWithResult(_0x45e123,0xc9))[_0x5969('0x47')](handleError(_0x45e123,null));};exports[_0x5969('0x21')]=function(_0x1d51fa,_0xb20769){if(_0x1d51fa[_0x5969('0x49')]['id']){delete _0x1d51fa[_0x5969('0x49')]['id'];}return db[_0x5969('0x3f')][_0x5969('0x46')]({'where':{'id':_0x1d51fa[_0x5969('0x44')]['id']}})[_0x5969('0x23')](handleEntityNotFound(_0xb20769,null))[_0x5969('0x23')](saveUpdates(_0x1d51fa[_0x5969('0x49')],null))[_0x5969('0x23')](respondWithResult(_0xb20769,null))[_0x5969('0x47')](handleError(_0xb20769,null));};exports[_0x5969('0x22')]=function(_0xf85552,_0x96f3fc){return db[_0x5969('0x3f')][_0x5969('0x46')]({'where':{'id':_0xf85552['params']['id']}})[_0x5969('0x23')](handleEntityNotFound(_0x96f3fc,null))['then'](removeEntity(_0x96f3fc,null))[_0x5969('0x47')](handleError(_0x96f3fc,null));};exports['getConfigurations']=function(_0x5c0380,_0x35ab7a,_0x20cce9){var _0x946724={};var _0x149f35={};var _0x9147fe;var _0x56ccef;return db['VtigerAccount']['findOne']({'where':{'id':_0x5c0380['params']['id']}})[_0x5969('0x23')](handleEntityNotFound(_0x35ab7a,null))['then'](function(_0x4392dd){if(_0x4392dd){_0x9147fe=_0x4392dd;_0x149f35[_0x5969('0x2e')]=_['keys'](db[_0x5969('0x4a')][_0x5969('0x4b')]);_0x149f35[_0x5969('0x2f')]=_[_0x5969('0x30')](_0x5c0380[_0x5969('0x2f')]);_0x149f35[_0x5969('0x31')]=_['intersection'](_0x149f35[_0x5969('0x2e')],_0x149f35[_0x5969('0x2f')]);_0x946724[_0x5969('0x33')]=_['intersection'](_0x149f35['model'],qs['fields'](_0x5c0380['query'][_0x5969('0x34')]));_0x946724['attributes']=_0x946724[_0x5969('0x33')][_0x5969('0x35')]?_0x946724[_0x5969('0x33')]:_0x149f35[_0x5969('0x2e')];_0x946724[_0x5969('0x38')]=qs[_0x5969('0x39')](_0x5c0380[_0x5969('0x2f')]['sort']);_0x946724['where']=qs['filters'](_[_0x5969('0x3a')](_0x5c0380[_0x5969('0x2f')],_0x149f35[_0x5969('0x31')]));if(_0x5c0380[_0x5969('0x2f')][_0x5969('0x3e')]){_0x946724[_0x5969('0x3b')]=_[_0x5969('0x3c')](_0x946724['where'],{'$or':_[_0x5969('0x2a')](_0x946724[_0x5969('0x33')],function(_0x2f9def){var _0x1fa67c={};_0x1fa67c[_0x2f9def]={'$like':'%'+_0x5c0380['query'][_0x5969('0x3e')]+'%'};return _0x1fa67c;})});}_0x946724=_[_0x5969('0x3c')]({},_0x946724,_0x5c0380[_0x5969('0x45')]);return _0x9147fe[_0x5969('0x4c')](_0x946724);}})[_0x5969('0x23')](function(_0x438ecb){if(_0x438ecb){_0x56ccef=_0x438ecb[_0x5969('0x35')];if(!_0x5c0380[_0x5969('0x2f')][_0x5969('0x36')]('nolimit')){_0x946724[_0x5969('0x1b')]=qs[_0x5969('0x1b')](_0x5c0380[_0x5969('0x2f')]['limit']);_0x946724[_0x5969('0x1a')]=qs['offset'](_0x5c0380['query'][_0x5969('0x1a')]);}return _0x9147fe[_0x5969('0x4c')](_0x946724);}})[_0x5969('0x23')](function(_0x2b82ce){if(_0x2b82ce){return _0x2b82ce?{'count':_0x56ccef,'rows':_0x2b82ce}:null;}})[_0x5969('0x23')](respondWithResult(_0x35ab7a,null))['catch'](handleError(_0x35ab7a,null));};exports[_0x5969('0x4d')]=function(_0x1fe3cc,_0x27111e,_0x4fbbb6){if(_0x1fe3cc['body']['id']){delete _0x1fe3cc[_0x5969('0x49')]['id'];}return db[_0x5969('0x3f')][_0x5969('0x4e')]({'where':{'id':_0x1fe3cc['params']['id']}})['then'](handleEntityNotFound(_0x27111e,null))['then'](function(_0x33dad6){if(_0x33dad6){_0x1fe3cc[_0x5969('0x49')][_0x5969('0x4f')]=_0x33dad6['id'];_0x1fe3cc[_0x5969('0x49')][_0x5969('0x50')]=integrations['getSubjects'](_0x1fe3cc['body'][_0x5969('0x51')],_0x1fe3cc['body'][_0x5969('0x2c')]);_0x1fe3cc[_0x5969('0x49')][_0x5969('0x52')]=integrations['getDescriptions'](_0x1fe3cc[_0x5969('0x49')][_0x5969('0x51')],_0x1fe3cc[_0x5969('0x49')][_0x5969('0x2c')]);return db['VtigerConfiguration']['create'](_0x1fe3cc['body'],{'include':[{'model':db['VtigerField'],'as':_0x5969('0x50')},{'model':db[_0x5969('0x53')],'as':_0x5969('0x52')}]});}return null;})['then'](respondWithResult(_0x27111e,null))[_0x5969('0x47')](handleError(_0x27111e,null));};var md5=require('md5');exports[_0x5969('0x54')]=function(_0x2ba757,_0x2efbb9,_0x59258e){var _0x293083=null;var _0x243b91=null;var _0x485678=null;var _0x4f1566=null;var _0x264401='';return db[_0x5969('0x3f')][_0x5969('0x4e')]({'where':{'id':_0x2ba757[_0x5969('0x44')]['id']},'attributes':['id',_0x5969('0x27'),'username',_0x5969('0x55'),'moduleName',_0x5969('0x56'),_0x5969('0x57'),_0x5969('0x58')]})[_0x5969('0x23')](handleEntityNotFound(_0x2efbb9,null))[_0x5969('0x23')](function(_0x38af4b){if(_0x38af4b){_0x293083=_0x38af4b['username'];_0x243b91=_0x38af4b[_0x5969('0x58')];_0x485678=_0x38af4b[_0x5969('0x59')];_0x264401=_0x38af4b['remoteUri'];var _0x56abc3=_0x264401[_0x5969('0x5a')](-0x1);if(_0x56abc3==='/'){_0x264401=_0x264401['substring'](0x0,_0x264401['lastIndexOf'](_0x56abc3));}_0x4f1566=util[_0x5969('0x5b')](_0x5969('0x5c'),_0x264401);var _0x10105d={'method':_0x5969('0x5d'),'uri':_0x4f1566,'qs':{'operation':_0x5969('0x5e'),'username':_0x38af4b['username']},'json':!![]};return rp(_0x10105d);}})[_0x5969('0x23')](function(_0x5eda42){if(_0x5eda42[_0x5969('0x5f')]){var _0x2917b3={'method':'POST','uri':_0x4f1566,'form':{'operation':_0x5969('0x60'),'username':_0x293083,'accessKey':md5(_0x5eda42['result']['token']+_0x243b91)},'json':!![]};return rp(_0x2917b3);}})[_0x5969('0x23')](function(_0x302163){if(_0x302163['success']){var _0x549f97={'method':_0x5969('0x5d'),'uri':_0x4f1566,'qs':{'operation':_0x5969('0x61'),'username':_0x293083,'sessionName':_0x302163[_0x5969('0x62')][_0x5969('0x63')],'elementType':_0x485678},'json':!![]};return rp(_0x549f97);}})['then'](function(_0x4560eb){if(_0x4560eb[_0x5969('0x5f')]){var _0x5b5c87=[_0x5969('0x64'),_0x5969('0x65'),'owner'];_[_0x5969('0x66')](_0x4560eb[_0x5969('0x62')][_0x5969('0x34')],function(_0x234f0b){return _0x5b5c87[_0x5969('0x67')](_0x234f0b[_0x5969('0x2c')][_0x5969('0x27')]);});_['remove'](_0x4560eb[_0x5969('0x62')][_0x5969('0x34')],function(_0x4858a5){return _0x4858a5[_0x5969('0x68')]===_0x5969('0x69');});return{'count':_0x4560eb[_0x5969('0x62')][_0x5969('0x34')][_0x5969('0x35')],'rows':_[_0x5969('0x2a')](_0x4560eb['result'][_0x5969('0x34')],function(_0x3352a1){return{'id':_0x3352a1['name'],'name':_0x3352a1['label'],'custom':_['startsWith'](_0x3352a1[_0x5969('0x27')],_0x5969('0x6a'))?!![]:![],'options':_0x3352a1[_0x5969('0x2c')]['name']===_0x5969('0x6b')&&_0x3352a1['type'][_0x5969('0x6c')][_0x5969('0x35')]>0x0?_[_0x5969('0x2a')](_0x3352a1[_0x5969('0x2c')][_0x5969('0x6c')],function(_0x17ef47){return{'name':_0x17ef47[_0x5969('0x6d')],'value':_0x17ef47[_0x5969('0x6e')]};}):[]};})};}})[_0x5969('0x23')](respondWithResult(_0x2efbb9,null))['catch'](function(_0x4a179c){console[_0x5969('0x6f')](_0x5969('0x70')+_0x4a179c);var _0x28e91b=_0x2ba757[_0x5969('0x2f')][_0x5969('0x71')]?0x1f4:_0x4a179c[_0x5969('0x72')]||0x1f4;logger[_0x5969('0x25')](_0x5969('0x73'),_0x5969('0x54'),_0x28e91b,JSON[_0x5969('0x74')](_0x4a179c));delete _0x4a179c[_0x5969('0x27')];if(_0x28e91b===0x191){_0x28e91b=0x190;}_0x2efbb9[_0x5969('0x18')](_0x28e91b)['send'](_0x2ba757[_0x5969('0x2f')][_0x5969('0x71')]?{'message':'Wrong\x20credentials','statusCode':_0x4a179c[_0x5969('0x72')]}:_0x4a179c);});};