Built motion from commit 25580385.|2.6.2
[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 _0xaf19=['api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','reject','update','then','name','index','map','VtigerAccount','rawAttributes','fieldName','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','includeAll','findAll','rows','show','params','keys','filters','include','find','catch','create','body','destroy','getConfigurations','order','addConfiguration','findOne','AccountId','Subjects','getSubjects','Descriptions','channel','VtigerConfiguration','VtigerField','username','description','moduleName','remoteUri','serverUrl','accessKey','substring','lastIndexOf','GET','getchallenge','login','result','success','sessionName','reference','owner','remove','includes','false','label','startsWith','cf_','picklist','picklistValues','value','log','test','error','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','statusCode','eml-format','rimraf','zip-dir','request-promise','mustache','util','path','sox','ejs','fs-extra','lodash','squel','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger'];(function(_0x582e35,_0x150320){var _0x23d905=function(_0x27e163){while(--_0x27e163){_0x582e35['push'](_0x582e35['shift']());}};_0x23d905(++_0x150320);}(_0xaf19,0x1b8));var _0x9af1=function(_0x49ee0d,_0xc4e969){_0x49ee0d=_0x49ee0d-0x0;var _0x451a77=_0xaf19[_0x49ee0d];return _0x451a77;};'use strict';var emlformat=require(_0x9af1('0x0'));var rimraf=require(_0x9af1('0x1'));var zipdir=require(_0x9af1('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9af1('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x9af1('0x4'));var util=require(_0x9af1('0x5'));var path=require(_0x9af1('0x6'));var sox=require(_0x9af1('0x7'));var csv=require('to-csv');var ejs=require(_0x9af1('0x8'));var fs=require('fs');var fs_extra=require(_0x9af1('0x9'));var _=require(_0x9af1('0xa'));var squel=require(_0x9af1('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x9af1('0xc'));var querystring=require(_0x9af1('0xd'));var Papa=require('papaparse');var Redis=require(_0x9af1('0xe'));var authService=require(_0x9af1('0xf'));var qs=require(_0x9af1('0x10'));var as=require(_0x9af1('0x11'));var hardwareService=require(_0x9af1('0x12'));var logger=require(_0x9af1('0x13'))(_0x9af1('0x14'));var utils=require(_0x9af1('0x15'));var config=require(_0x9af1('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x9af1('0x17'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x561d51,_0x2421c3){_0x2421c3=_0x2421c3||0xcc;return function(_0x57d0b5){if(_0x57d0b5){return _0x561d51[_0x9af1('0x18')](_0x2421c3);}return _0x561d51[_0x9af1('0x19')](_0x2421c3)[_0x9af1('0x1a')]();};}function respondWithResult(_0x5a99a9,_0x2c33b4){_0x2c33b4=_0x2c33b4||0xc8;return function(_0x100663){if(_0x100663){return _0x5a99a9[_0x9af1('0x19')](_0x2c33b4)['json'](_0x100663);}};}function respondWithFilteredResult(_0x29d90b,_0x2da3e4){return function(_0x4ee617){if(_0x4ee617){var _0x4f28e2=typeof _0x2da3e4[_0x9af1('0x1b')]===_0x9af1('0x1c')&&typeof _0x2da3e4[_0x9af1('0x1d')]==='undefined';var _0x39af2a=_0x4ee617['count'];var _0x455749=_0x4f28e2?0x0:_0x2da3e4[_0x9af1('0x1b')];var _0x43e6a0=_0x4f28e2?_0x4ee617[_0x9af1('0x1e')]:_0x2da3e4[_0x9af1('0x1b')]+_0x2da3e4[_0x9af1('0x1d')];var _0x5b6adf;if(_0x43e6a0>=_0x39af2a){_0x43e6a0=_0x39af2a;_0x5b6adf=0xc8;}else{_0x5b6adf=0xce;}_0x29d90b[_0x9af1('0x19')](_0x5b6adf);return _0x29d90b[_0x9af1('0x1f')](_0x9af1('0x20'),_0x455749+'-'+_0x43e6a0+'/'+_0x39af2a)[_0x9af1('0x21')](_0x4ee617);}return null;};}function patchUpdates(_0x6242f4){return function(_0x3b09ce){try{jsonpatch['apply'](_0x3b09ce,_0x6242f4,!![]);}catch(_0x8a7086){return BPromise[_0x9af1('0x22')](_0x8a7086);}return _0x3b09ce['save']();};}function saveUpdates(_0x569dd9,_0x18fc84){return function(_0x5284db){if(_0x5284db){return _0x5284db[_0x9af1('0x23')](_0x569dd9)[_0x9af1('0x24')](function(_0x2f049e){return _0x2f049e;});}return null;};}function removeEntity(_0x364ccb,_0x2c51fd){return function(_0x5f1e0a){if(_0x5f1e0a){return _0x5f1e0a['destroy']()['then'](function(){_0x364ccb[_0x9af1('0x19')](0xcc)[_0x9af1('0x1a')]();});}};}function handleEntityNotFound(_0x731992,_0x398287){return function(_0x14b5e9){if(!_0x14b5e9){_0x731992[_0x9af1('0x18')](0x194);}return _0x14b5e9;};}function handleError(_0x1d5c36,_0x6fda5e){_0x6fda5e=_0x6fda5e||0x1f4;return function(_0x2388e8){logger['error'](_0x2388e8['stack']);if(_0x2388e8[_0x9af1('0x25')]){delete _0x2388e8[_0x9af1('0x25')];}_0x1d5c36[_0x9af1('0x19')](_0x6fda5e)['send'](_0x2388e8);};}exports[_0x9af1('0x26')]=function(_0xcec5ba,_0x3da3de){var _0x217b29={},_0x1d019d={},_0x40d6de={'count':0x0,'rows':[]};var _0x1810e8=_[_0x9af1('0x27')](db[_0x9af1('0x28')][_0x9af1('0x29')],function(_0x1a7620){return{'name':_0x1a7620[_0x9af1('0x2a')],'type':_0x1a7620[_0x9af1('0x2b')][_0x9af1('0x2c')]};});_0x1d019d[_0x9af1('0x2d')]=_[_0x9af1('0x27')](_0x1810e8,_0x9af1('0x25'));_0x1d019d[_0x9af1('0x2e')]=_['keys'](_0xcec5ba['query']);_0x1d019d['filters']=_[_0x9af1('0x2f')](_0x1d019d[_0x9af1('0x2d')],_0x1d019d[_0x9af1('0x2e')]);_0x217b29[_0x9af1('0x30')]=_[_0x9af1('0x2f')](_0x1d019d[_0x9af1('0x2d')],qs['fields'](_0xcec5ba['query'][_0x9af1('0x31')]));_0x217b29[_0x9af1('0x30')]=_0x217b29[_0x9af1('0x30')][_0x9af1('0x32')]?_0x217b29['attributes']:_0x1d019d[_0x9af1('0x2d')];if(!_0xcec5ba[_0x9af1('0x2e')][_0x9af1('0x33')](_0x9af1('0x34'))){_0x217b29[_0x9af1('0x1d')]=qs[_0x9af1('0x1d')](_0xcec5ba[_0x9af1('0x2e')][_0x9af1('0x1d')]);_0x217b29[_0x9af1('0x1b')]=qs[_0x9af1('0x1b')](_0xcec5ba[_0x9af1('0x2e')][_0x9af1('0x1b')]);}_0x217b29['order']=qs['sort'](_0xcec5ba[_0x9af1('0x2e')][_0x9af1('0x35')]);_0x217b29[_0x9af1('0x36')]=qs['filters'](_['pick'](_0xcec5ba[_0x9af1('0x2e')],_0x1d019d['filters']),_0x1810e8);if(_0xcec5ba[_0x9af1('0x2e')][_0x9af1('0x37')]){_0x217b29[_0x9af1('0x36')]=_[_0x9af1('0x38')](_0x217b29[_0x9af1('0x36')],{'$or':_[_0x9af1('0x27')](_0x1810e8,function(_0x10a626){if(_0x10a626[_0x9af1('0x2b')]!==_0x9af1('0x39')){var _0x2dfda9={};_0x2dfda9[_0x10a626[_0x9af1('0x25')]]={'$like':'%'+_0xcec5ba['query']['filter']+'%'};return _0x2dfda9;}})});}_0x217b29=_[_0x9af1('0x38')]({},_0x217b29,_0xcec5ba[_0x9af1('0x3a')]);var _0x4058dd={'where':_0x217b29[_0x9af1('0x36')]};return db[_0x9af1('0x28')][_0x9af1('0x1e')](_0x4058dd)[_0x9af1('0x24')](function(_0x35cf83){_0x40d6de[_0x9af1('0x1e')]=_0x35cf83;if(_0xcec5ba[_0x9af1('0x2e')][_0x9af1('0x3b')]){_0x217b29['include']=[{'all':!![]}];}return db[_0x9af1('0x28')][_0x9af1('0x3c')](_0x217b29);})[_0x9af1('0x24')](function(_0x10a5ec){_0x40d6de[_0x9af1('0x3d')]=_0x10a5ec;return _0x40d6de;})[_0x9af1('0x24')](respondWithFilteredResult(_0x3da3de,_0x217b29))['catch'](handleError(_0x3da3de,null));};exports[_0x9af1('0x3e')]=function(_0x110b79,_0x46363e){var _0x3c76da={'raw':![],'where':{'id':_0x110b79[_0x9af1('0x3f')]['id']}},_0x11f259={};_0x11f259[_0x9af1('0x2d')]=_[_0x9af1('0x40')](db['VtigerAccount'][_0x9af1('0x29')]);_0x11f259['query']=_[_0x9af1('0x40')](_0x110b79[_0x9af1('0x2e')]);_0x11f259[_0x9af1('0x41')]=_[_0x9af1('0x2f')](_0x11f259['model'],_0x11f259[_0x9af1('0x2e')]);_0x3c76da[_0x9af1('0x30')]=_['intersection'](_0x11f259['model'],qs[_0x9af1('0x31')](_0x110b79[_0x9af1('0x2e')][_0x9af1('0x31')]));_0x3c76da[_0x9af1('0x30')]=_0x3c76da[_0x9af1('0x30')][_0x9af1('0x32')]?_0x3c76da[_0x9af1('0x30')]:_0x11f259[_0x9af1('0x2d')];if(_0x110b79[_0x9af1('0x2e')][_0x9af1('0x3b')]){_0x3c76da[_0x9af1('0x42')]=[{'all':!![]}];}_0x3c76da=_[_0x9af1('0x38')]({},_0x3c76da,_0x110b79[_0x9af1('0x3a')]);return db['VtigerAccount'][_0x9af1('0x43')](_0x3c76da)[_0x9af1('0x24')](handleEntityNotFound(_0x46363e,null))[_0x9af1('0x24')](respondWithResult(_0x46363e,null))[_0x9af1('0x44')](handleError(_0x46363e,null));};exports['create']=function(_0x5e9607,_0x2f56c1){return db[_0x9af1('0x28')][_0x9af1('0x45')](_0x5e9607['body'],{})['then'](respondWithResult(_0x2f56c1,0xc9))['catch'](handleError(_0x2f56c1,null));};exports[_0x9af1('0x23')]=function(_0x537f0e,_0x20db05){if(_0x537f0e[_0x9af1('0x46')]['id']){delete _0x537f0e[_0x9af1('0x46')]['id'];}return db[_0x9af1('0x28')][_0x9af1('0x43')]({'where':{'id':_0x537f0e[_0x9af1('0x3f')]['id']}})[_0x9af1('0x24')](handleEntityNotFound(_0x20db05,null))[_0x9af1('0x24')](saveUpdates(_0x537f0e[_0x9af1('0x46')],null))['then'](respondWithResult(_0x20db05,null))[_0x9af1('0x44')](handleError(_0x20db05,null));};exports[_0x9af1('0x47')]=function(_0x5a612c,_0x56690b){return db[_0x9af1('0x28')][_0x9af1('0x43')]({'where':{'id':_0x5a612c[_0x9af1('0x3f')]['id']}})[_0x9af1('0x24')](handleEntityNotFound(_0x56690b,null))[_0x9af1('0x24')](removeEntity(_0x56690b,null))[_0x9af1('0x44')](handleError(_0x56690b,null));};exports[_0x9af1('0x48')]=function(_0x33137b,_0x2f10b9,_0x50855c){var _0x124eed={};var _0x4557fa={};var _0x50dd03;var _0xe8d33b;return db['VtigerAccount']['findOne']({'where':{'id':_0x33137b['params']['id']}})['then'](handleEntityNotFound(_0x2f10b9,null))[_0x9af1('0x24')](function(_0x28373f){if(_0x28373f){_0x50dd03=_0x28373f;_0x4557fa[_0x9af1('0x2d')]=_[_0x9af1('0x40')](db['VtigerConfiguration'][_0x9af1('0x29')]);_0x4557fa['query']=_[_0x9af1('0x40')](_0x33137b[_0x9af1('0x2e')]);_0x4557fa[_0x9af1('0x41')]=_[_0x9af1('0x2f')](_0x4557fa[_0x9af1('0x2d')],_0x4557fa[_0x9af1('0x2e')]);_0x124eed['attributes']=_[_0x9af1('0x2f')](_0x4557fa[_0x9af1('0x2d')],qs[_0x9af1('0x31')](_0x33137b[_0x9af1('0x2e')][_0x9af1('0x31')]));_0x124eed[_0x9af1('0x30')]=_0x124eed[_0x9af1('0x30')][_0x9af1('0x32')]?_0x124eed[_0x9af1('0x30')]:_0x4557fa[_0x9af1('0x2d')];_0x124eed[_0x9af1('0x49')]=qs[_0x9af1('0x35')](_0x33137b[_0x9af1('0x2e')][_0x9af1('0x35')]);_0x124eed[_0x9af1('0x36')]=qs['filters'](_['pick'](_0x33137b['query'],_0x4557fa['filters']));if(_0x33137b['query'][_0x9af1('0x37')]){_0x124eed[_0x9af1('0x36')]=_[_0x9af1('0x38')](_0x124eed[_0x9af1('0x36')],{'$or':_['map'](_0x124eed['attributes'],function(_0x2418e7){var _0x208bbf={};_0x208bbf[_0x2418e7]={'$like':'%'+_0x33137b[_0x9af1('0x2e')][_0x9af1('0x37')]+'%'};return _0x208bbf;})});}_0x124eed=_['merge']({},_0x124eed,_0x33137b[_0x9af1('0x3a')]);return _0x50dd03['getConfigurations'](_0x124eed);}})[_0x9af1('0x24')](function(_0x47919c){if(_0x47919c){_0xe8d33b=_0x47919c[_0x9af1('0x32')];if(!_0x33137b[_0x9af1('0x2e')][_0x9af1('0x33')](_0x9af1('0x34'))){_0x124eed[_0x9af1('0x1d')]=qs[_0x9af1('0x1d')](_0x33137b[_0x9af1('0x2e')][_0x9af1('0x1d')]);_0x124eed[_0x9af1('0x1b')]=qs['offset'](_0x33137b[_0x9af1('0x2e')][_0x9af1('0x1b')]);}return _0x50dd03[_0x9af1('0x48')](_0x124eed);}})[_0x9af1('0x24')](function(_0x536994){if(_0x536994){return _0x536994?{'count':_0xe8d33b,'rows':_0x536994}:null;}})[_0x9af1('0x24')](respondWithResult(_0x2f10b9,null))['catch'](handleError(_0x2f10b9,null));};exports[_0x9af1('0x4a')]=function(_0x31b238,_0x2ec775,_0x2d6221){if(_0x31b238[_0x9af1('0x46')]['id']){delete _0x31b238['body']['id'];}return db[_0x9af1('0x28')][_0x9af1('0x4b')]({'where':{'id':_0x31b238['params']['id']}})['then'](handleEntityNotFound(_0x2ec775,null))['then'](function(_0x51072d){if(_0x51072d){_0x31b238[_0x9af1('0x46')][_0x9af1('0x4c')]=_0x51072d['id'];_0x31b238[_0x9af1('0x46')][_0x9af1('0x4d')]=integrations[_0x9af1('0x4e')](_0x31b238[_0x9af1('0x46')]['channel'],_0x31b238[_0x9af1('0x46')][_0x9af1('0x2b')]);_0x31b238[_0x9af1('0x46')][_0x9af1('0x4f')]=integrations['getDescriptions'](_0x31b238['body'][_0x9af1('0x50')],_0x31b238['body'][_0x9af1('0x2b')]);return db[_0x9af1('0x51')][_0x9af1('0x45')](_0x31b238['body'],{'include':[{'model':db[_0x9af1('0x52')],'as':_0x9af1('0x4d')},{'model':db['VtigerField'],'as':'Descriptions'}]});}return null;})[_0x9af1('0x24')](respondWithResult(_0x2ec775,null))['catch'](handleError(_0x2ec775,null));};var md5=require('md5');exports['getFields']=function(_0x1e4b1f,_0x9528b7,_0x4d5c21){var _0x45b692=null;var _0x326afc=null;var _0x34e914=null;var _0x2790ab=null;var _0x381443='';return db[_0x9af1('0x28')]['findOne']({'where':{'id':_0x1e4b1f['params']['id']},'attributes':['id',_0x9af1('0x25'),_0x9af1('0x53'),_0x9af1('0x54'),_0x9af1('0x55'),_0x9af1('0x56'),_0x9af1('0x57'),_0x9af1('0x58')]})[_0x9af1('0x24')](handleEntityNotFound(_0x9528b7,null))[_0x9af1('0x24')](function(_0x1af718){if(_0x1af718){_0x45b692=_0x1af718[_0x9af1('0x53')];_0x326afc=_0x1af718[_0x9af1('0x58')];_0x34e914=_0x1af718[_0x9af1('0x55')];_0x381443=_0x1af718['remoteUri'];var _0x5e3aa7=_0x381443['slice'](-0x1);if(_0x5e3aa7==='/'){_0x381443=_0x381443[_0x9af1('0x59')](0x0,_0x381443[_0x9af1('0x5a')](_0x5e3aa7));}_0x2790ab=util['format']('%s/webservice.php',_0x381443);var _0x1b2c65={'method':_0x9af1('0x5b'),'uri':_0x2790ab,'qs':{'operation':_0x9af1('0x5c'),'username':_0x1af718[_0x9af1('0x53')]},'json':!![]};return rp(_0x1b2c65);}})['then'](function(_0x205a9e){if(_0x205a9e['success']){var _0x2eab5a={'method':'POST','uri':_0x2790ab,'form':{'operation':_0x9af1('0x5d'),'username':_0x45b692,'accessKey':md5(_0x205a9e[_0x9af1('0x5e')]['token']+_0x326afc)},'json':!![]};return rp(_0x2eab5a);}})[_0x9af1('0x24')](function(_0x26a642){if(_0x26a642[_0x9af1('0x5f')]){var _0x4c7509={'method':_0x9af1('0x5b'),'uri':_0x2790ab,'qs':{'operation':'describe','username':_0x45b692,'sessionName':_0x26a642[_0x9af1('0x5e')][_0x9af1('0x60')],'elementType':_0x34e914},'json':!![]};return rp(_0x4c7509);}})['then'](function(_0x4e4519){if(_0x4e4519[_0x9af1('0x5f')]){var _0xe8ca57=['autogenerated',_0x9af1('0x61'),_0x9af1('0x62')];_[_0x9af1('0x63')](_0x4e4519['result'][_0x9af1('0x31')],function(_0xc054bf){return _0xe8ca57[_0x9af1('0x64')](_0xc054bf[_0x9af1('0x2b')][_0x9af1('0x25')]);});_[_0x9af1('0x63')](_0x4e4519[_0x9af1('0x5e')][_0x9af1('0x31')],function(_0xefd8c8){return _0xefd8c8['editable']===_0x9af1('0x65');});return{'count':_0x4e4519[_0x9af1('0x5e')][_0x9af1('0x31')]['length'],'rows':_['map'](_0x4e4519[_0x9af1('0x5e')]['fields'],function(_0x21082b){return{'id':_0x21082b['name'],'name':_0x21082b[_0x9af1('0x66')],'custom':_[_0x9af1('0x67')](_0x21082b[_0x9af1('0x25')],_0x9af1('0x68'))?!![]:![],'options':_0x21082b[_0x9af1('0x2b')]['name']===_0x9af1('0x69')&&_0x21082b['type'][_0x9af1('0x6a')][_0x9af1('0x32')]>0x0?_[_0x9af1('0x27')](_0x21082b[_0x9af1('0x2b')][_0x9af1('0x6a')],function(_0x54f399){return{'name':_0x54f399[_0x9af1('0x66')],'value':_0x54f399[_0x9af1('0x6b')]};}):[]};})};}})['then'](respondWithResult(_0x9528b7,null))[_0x9af1('0x44')](function(_0x18fbd5){console[_0x9af1('0x6c')]('vTiger\x20error:\x20'+_0x18fbd5);var _0x52c7f9=_0x1e4b1f[_0x9af1('0x2e')][_0x9af1('0x6d')]?0x1f4:_0x18fbd5['statusCode']||0x1f4;logger[_0x9af1('0x6e')](_0x9af1('0x6f'),_0x9af1('0x70'),_0x52c7f9,JSON[_0x9af1('0x71')](_0x18fbd5));delete _0x18fbd5[_0x9af1('0x25')];if(_0x52c7f9===0x191){_0x52c7f9=0x190;}_0x9528b7[_0x9af1('0x19')](_0x52c7f9)['send'](_0x1e4b1f[_0x9af1('0x2e')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x18fbd5[_0x9af1('0x72')]}:_0x18fbd5);});};