blob: 6d3c07952e2d08e3c540824affa3ecbc9fddf473 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
define(['require', 'utils/Enums', 'utils/Utils', 'underscore'], function(require, Enums, Utils) {
'use strict';
var UrlLinks = {
apiBaseUrl: Utils.getBaseUrl(window.location.pathname)
};
_.extend(UrlLinks, {
baseUrl: UrlLinks.apiBaseUrl + '/api/atlas',
baseUrlV2: UrlLinks.apiBaseUrl + '/api/atlas/v2',
typedefsUrl: function() {
return {
defs: this.baseUrlV2 + '/types/typedefs',
def: this.baseUrlV2 + '/types/typedef'
};
},
entitiesDefApiUrl: function(name) {
return this.getDefApiUrl('entity', name);
},
classificationDefApiUrl: function(name) {
return this.getDefApiUrl('classification', name);
},
businessMetadataDefApiUrl: function(name) {
return this.getDefApiUrl('business_metadata', name);
},
enumDefApiUrl: function(name) {
return this.getDefApiUrl('enum', name);
},
metricsApiUrl: function() {
return this.baseUrl + '/admin/metrics'
},
migrationStatusApiUrl: function() {
return this.baseUrl + '/admin/status'
},
rootEntityDefUrl: function(name) {
return this.baseUrlV2 + '/types/entitydef/name/' + name;
},
rootClassificationDefUrl: function(name) {
return this.baseUrlV2 + '/types/classificationdef/name/' + name;
},
getDefApiUrl: function(type, name) {
var defApiUrl = this.typedefsUrl(),
defUrl;
if (name) {
defUrl = defApiUrl.def + '/name/' + name;
} else {
defUrl = defApiUrl.defs;
}
if (type) {
return defUrl += '?type=' + type;
} else {
return defUrl;
}
},
entitiesApiUrl: function(options) {
var entitiesUrl = this.baseUrlV2 + '/entity';
if (options) {
var guid = options.guid,
associatedGuid = options.associatedGuid,
name = options.name,
minExtInfo = options.minExtInfo;
if (guid && name && associatedGuid) {
return entitiesUrl + '/guid/' + guid + '/classification/' + name + '?associatedEntityGuid=' + associatedGuid;
} else if (guid && name) {
entitiesUrl += '/guid/' + guid + '/classification/' + name;
} else if (guid && !name) {
entitiesUrl += '/guid/' + guid;
}
}
if (!minExtInfo) {
return entitiesUrl;
} else {
return entitiesUrl += '?minExtInfo=' + (minExtInfo);
}
},
entityLabelsAPIUrl: function(guid) {
return this.entitiesApiUrl({ guid: guid }) + "/labels";
},
entityHeaderApiUrl: function(guid) {
return this.entitiesApiUrl({ guid: guid }) + "/header"
},
entitiesTraitsApiUrl: function(token) {
if (token) {
return this.baseUrlV2 + '/entity/guid/' + token + '/classifications';
} else {
// For Multiple Assignment
return this.baseUrlV2 + '/entity/bulk/classification';
}
},
entitiesBusinessMetadataApiUrl: function(guid) {
if (guid) {
return this.baseUrlV2 + '/entity/guid/' + guid + '/businessmetadata?isOverwrite=true';
}
},
entityCollectionaudit: function(guid) {
return this.baseUrlV2 + '/entity/' + guid + '/audit';
},
expimpAudit: function(options) {
var url = this.baseUrl + '/admin/expimp/audit',
queryParam = [];
if (options) {
var serverName = options.serverName,
limit = options.limit,
offset = options.offset;
}
if (serverName) {
queryParam.push("serverName=" + serverName);
}
if (limit) {
queryParam.push("limit=" + limit);
}
if (offset) {
queryParam.push("offset=" + offset);
}
if (queryParam.length > 0) {
url = url + "?" + queryParam.join("&");
}
return url;
},
classicationApiUrl: function(name, guid) {
var typeUrl = this.typedefsUrl();
if (name) {
return typeUrl.def + '/name/' + name + '?type=classification';
} else if (guid) {
return typeUrl.def + '/guid/' + guid + '?type=classification';
}
},
typesApiUrl: function() {
return this.typedefsUrl().defs + '/headers?excludeInternalTypesAndReferences=true'
},
lineageApiUrl: function(guid) {
var lineageUrl = this.baseUrlV2 + '/lineage';
if (guid) {
return lineageUrl + '/' + guid;
} else {
return lineageUrl
}
},
relationshipApiUrl: function(guid) {
var relationshipUrl = this.baseUrlV2 + '/relationship';
if (guid) {
return relationshipUrl + '/guid/' + guid + '?extendedInfo=true';
} else {
return relationshipUrl
}
},
schemaApiUrl: function(guid) {
var lineageUrl = this.baseUrl + '/lineage';
if (guid) {
return lineageUrl + '/' + guid + '/schema'
} else {
return lineageUrl
}
},
searchApiUrl: function(searchtype) {
var searchUrl = this.baseUrlV2 + '/search';
if (searchtype) {
return searchUrl + '/' + searchtype;
} else {
return searchUrl;
}
},
saveSearchApiUrl: function(saveSearchType) {
var saveSearchUrl = this.searchApiUrl() + "/saved";
if (saveSearchType) {
return saveSearchUrl + '/' + saveSearchType;
} else {
return saveSearchUrl;
}
},
glossaryApiUrl: function(options) {
var guid = options && options.guid,
glossaryUrl = this.baseUrlV2 + '/glossary';
if (guid) {
return glossaryUrl + '/' + guid;
} else {
return glossaryUrl;
}
},
glossaryImportTempUrl: function() {
return this.glossaryApiUrl() + '/import/template';
},
glossaryImportUrl: function() {
return this.glossaryApiUrl() + '/import';
},
businessMetadataImportTempUrl: function() {
return this.entitiesApiUrl() + '/businessmetadata/import/template';
},
businessMetadataImportUrl: function() {
return this.entitiesApiUrl() + '/businessmetadata/import';
},
categoryApiUrl: function(options) {
var guid = options && options.guid,
list = options && options.list,
related = options && options.related,
categoryUrl = this.glossaryApiUrl() + '/' + (list ? 'categories' : 'category');
if (guid) {
if (related) {
return categoryUrl + '/' + guid + "/related";
} else {
return categoryUrl + '/' + guid;
}
} else {
return categoryUrl;
}
},
termApiUrl: function(options) {
var guid = options && options.guid,
list = options && options.list,
related = options && options.related,
termUrl = this.glossaryApiUrl() + '/' + (list ? 'terms' : 'term');
if (guid) {
if (related) {
return termUrl + '/' + guid + "/related";
} else {
return termUrl + '/' + guid;
}
} else {
return termUrl;
}
},
termToEntityApiUrl: function(guid) {
var termUrl = this.termApiUrl({ list: true });
if (guid) {
return termUrl + '/' + guid + '/assignedEntities';
}
},
versionApiUrl: function() {
return this.baseUrl + '/admin/version';
},
sessionApiUrl: function() {
return this.baseUrl + '/admin/session';
},
adminApiUrl: function() {
return this.baseUrl + '/admin/audits';
}
});
return UrlLinks;
});