diff --git a/src/app/auth/model/auth-credentials.ts b/src/app/auth/model/auth-credentials.ts index 2733a7ede..318bc1a65 100644 --- a/src/app/auth/model/auth-credentials.ts +++ b/src/app/auth/model/auth-credentials.ts @@ -7,6 +7,39 @@ export class AuthCredentials implements UserPlatformIdentifier { static readonly TOKEN_VALIDATION_REGEXP = "^[0-9a-f]{8}[0-9a-f]{4}[0-9a-f]{4}[0-9a-f]{4}[0-9a-f]{12}$"; + static readonly platformLookupByAPIURL = { + "https://api.sbgenomics.com": { + "name": "Seven Bridges", + "shortName": "SBG", + "devTokenURL": "https://igor.sbgenomics.com/developer#token", + }, + "https://eu-api.sbgenomics.com": { + "name": "Seven Bridges (EU)", + "shortName": "SBG-EU", + "devTokenURL": "https://eu.sbgenomics.com/developer#token", + }, + "https://api.sevenbridges.cn": { + "name": "Seven Bridges (China)", + "shortName": "SBG-CN", + "devTokenURL": "https://platform.sevenbridges.cn/developer#token", + }, + "https://cgc-api.sbgenomics.com": { + "name": "Cancer Genomics Cloud", + "shortName": "CGC", + "devTokenURL": "https://cgc.sbgenomics.com/developer#token", + }, + "https://cavatica-api.sbgenomics.com": { + "name": "Cavatica", + "shortName": "CAVATICA", + "devTokenURL": "https://cavatica.sbgenomics.com/developer#token", + }, + "https://f4c-api.sbgenomics.com": { + "name": "Fair4Cures", + "shortName": "F4C", + "devTokenURL": "https://f4c.sbgenomics.com/developer#token", + }, + } + id: string; user: User; url: string; @@ -35,35 +68,30 @@ export class AuthCredentials implements UserPlatformIdentifier { return url.slice(8, url.length - 15); } + static getPlatformList(): Array> { + let lu = this.platformLookupByAPIURL + let platformList = [] + for (let apiURL in lu) { + platformList.push({text: lu[apiURL]["name"], value: apiURL}) + } + return platformList + } + static getPlatformShortName(url: string): string { - const subdomain = AuthCredentials.getSubdomain(url); - switch (subdomain) { - case "api": - return "SBG"; - case "eu-api": - return "EU"; - case "cgc-api": - return "CGC"; - case "cavatica-api": - return "CAVATICA"; - default: - return subdomain.indexOf("vayu") === -1 ? subdomain : subdomain.split(".")[0]; + if(url in this.platformLookupByAPIURL) { + return this.platformLookupByAPIURL[url]["shortName"] + } else { + const subdomain = AuthCredentials.getSubdomain(url) + return subdomain.indexOf("vayu") === -1 ? subdomain : subdomain.split(".")[0] } } static getPlatformLabel(url: string): string { - const subdomain = AuthCredentials.getSubdomain(url); - switch (subdomain) { - case "api": - return "Seven Bridges"; - case "eu-api": - return "Seven Bridges (EU)"; - case "cgc-api": - return "Cancer Genomics Cloud"; - case "cavatica-api": - return "Cavatica"; - default: - return subdomain.indexOf("vayu") === -1 ? subdomain : subdomain.split(".")[0]; + if(url in this.platformLookupByAPIURL) { + return this.platformLookupByAPIURL[url]["name"] + } else { + const subdomain = AuthCredentials.getSubdomain(url) + return subdomain.indexOf("vayu") === -1 ? subdomain : subdomain.split(".")[0] } } diff --git a/src/app/core/modals/platform-credentials-modal/platform-credentials-modal.component.ts b/src/app/core/modals/platform-credentials-modal/platform-credentials-modal.component.ts index 2d3860b46..0960786a0 100644 --- a/src/app/core/modals/platform-credentials-modal/platform-credentials-modal.component.ts +++ b/src/app/core/modals/platform-credentials-modal/platform-credentials-modal.component.ts @@ -129,14 +129,8 @@ export class PlatformCredentialsModalComponent implements OnInit { /** FormGroup for modal inputs */ form: FormGroup; - platformList = [ - {text: "Seven Bridges (Default)", value: "https://api.sbgenomics.com"}, - {text: "Seven Bridges (EU)", value: "https://eu-api.sbgenomics.com"}, - {text: "Seven Bridges (China)", value: "https://api.sevenbridges.cn/"}, - {text: "Cancer Genomics Cloud", value: "https://cgc-api.sbgenomics.com"}, - {text: "Cavatica", value: "https://cavatica-api.sbgenomics.com"}, - {text: "Fair4Cures", value: "https://f4c-api.sbgenomics.com"} - ]; + platformList = AuthCredentials.getPlatformList() + constructor(private system: SystemService, private auth: AuthService, @@ -289,14 +283,12 @@ export class PlatformCredentialsModalComponent implements OnInit { openTokenPage() { const apiURL: string = this.form.get("url").value; - const apiSubdomain = apiURL.slice("https://".length, apiURL.length - ".sbgenomics.com".length); - - let platformSubdomain = "igor"; - if (apiSubdomain.endsWith("-api")) { - platformSubdomain = apiSubdomain.slice(0, apiSubdomain.length - ".com".length); + if(apiURL in AuthCredentials.platformLookupByAPIURL) { + this.system.openLink(AuthCredentials.platformLookupByAPIURL[apiURL]["devTokenURL"]) + } else { + // Most likely a vayu + this.system.openLink("https://igor.sbgenomics.com/developer#token") } - const url = `https://${platformSubdomain}.sbgenomics.com/developer#token`; - this.system.openLink(url); } close() {