Skip to content

Commit

Permalink
Merge pull request #1047 from zhx828/add-base-url
Browse files Browse the repository at this point in the history
Allow configuring app base URL
  • Loading branch information
zhx828 authored Nov 9, 2023
2 parents 14fe395 + 5ddfe63 commit 7100cc8
Show file tree
Hide file tree
Showing 7 changed files with 53 additions and 18 deletions.
24 changes: 18 additions & 6 deletions src/main/java/org/mskcc/cbio/oncokb/config/Swagger2Config.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.mskcc.cbio.oncokb.config;

import org.mskcc.cbio.oncokb.config.application.ApplicationProperties;
import org.mskcc.cbio.oncokb.config.application.EmailAddresses;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
Expand All @@ -11,13 +13,22 @@
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
* Created by Hongxin Zhang on 10/23/19.
*/
import java.util.Optional;

@Configuration
@EnableSwagger2
public class Swagger2Config {
final ApplicationProperties applicationProperties;
final String contactAddress;

public Swagger2Config(ApplicationProperties applicationProperties) {
this.applicationProperties = applicationProperties;
Optional<String> contractAddress = Optional.ofNullable(applicationProperties)
.map(ApplicationProperties::getEmailAddresses)
.map(EmailAddresses::getContactAddress);
this.contactAddress = contractAddress.isPresent() ? contractAddress.get() : "";
}

// based on the suggestion to overwrite the default Docket setup
// https://github.com/jhipster/generator-jhipster/issues/10034
@Bean
Expand All @@ -30,13 +41,14 @@ public Docket swaggerSpringfoxApiDocket() {
.paths(PathSelectors.regex("/.*"))
.build().apiInfo(apiEndPointsInfo());
}

private ApiInfo apiEndPointsInfo() {
return new ApiInfoBuilder().title("OncoKB™ APIs")
.description("OncoKB™ is a precision oncology knowledge base developed at Memorial Sloan Kettering Cancer Center that contains biological and clinical information about genomic alterations in cancer.")
.contact(new Contact("OncoKB™", "https://www.oncokb.org", "[email protected]"))
.contact(new Contact("OncoKB™", applicationProperties.getBaseUrl(), this.contactAddress))
.license("Terms of Use")
.licenseUrl("https://www.oncokb.org/terms")
.termsOfServiceUrl("https://www.oncokb.org/terms")
.licenseUrl(applicationProperties.getBaseUrl() + "/terms")
.termsOfServiceUrl(applicationProperties.getBaseUrl() + "/terms")
.version("v1.0.0")
.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
@ConfigurationProperties(prefix = "application", ignoreUnknownFields = false)
public class ApplicationProperties {
private String name;
private String baseUrl = "";
private String apiProxyUrl;
private SlackProperties slack;
private ProjectProfile profile;
Expand All @@ -46,6 +47,14 @@ public void setName(String name) {
this.name = name;
}

public String getBaseUrl() {
return baseUrl;
}

public void setBaseUrl(String baseUrl) {
this.baseUrl = baseUrl;
}

public String getApiProxyUrl() {
return apiProxyUrl;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,7 @@ private List<LayoutBlock> buildAdditionalInfoBlocks(UserDTO userDTO, boolean tri

sb.append("\n\u2022 ");
sb.append(StringUtil.getFullName(user.getFirstName(), user.getLastName()));
sb.append(", <https://www.oncokb.org/users/" + user.getEmail() + "/|" + user.getEmail() + ">");
sb.append(", <" + applicationProperties.getBaseUrl() + "/users/" + user.getEmail() + "/|" + user.getEmail() + ">");
sb.append(", " + user.getCompanyName());
sb.append(", " + user.getCity());
sb.append(", " + user.getCountry());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,32 @@
package org.mskcc.cbio.oncokb.web.rest.errors;

import org.mskcc.cbio.oncokb.config.application.ApplicationProperties;

import java.net.URI;

public final class ErrorConstants {

public static final String ERR_CONCURRENCY_FAILURE = "error.concurrencyFailure";
public static final String ERR_VALIDATION = "error.validation";
public static final String PROBLEM_BASE_URL = "https://www.oncokb.org/problem";
public static final URI DEFAULT_TYPE = URI.create(PROBLEM_BASE_URL + "/problem-with-message");
public static final URI CONSTRAINT_VIOLATION_TYPE = URI.create(PROBLEM_BASE_URL + "/constraint-violation");
public static final URI INVALID_PASSWORD_TYPE = URI.create(PROBLEM_BASE_URL + "/invalid-password");
public static final URI EMAIL_ALREADY_USED_TYPE = URI.create(PROBLEM_BASE_URL + "/email-already-used");
public static final URI LOGIN_ALREADY_USED_TYPE = URI.create(PROBLEM_BASE_URL + "/login-already-used");
public static final URI TOKEN_EXPIRED_TYPE = URI.create(PROBLEM_BASE_URL + "/token-expired");
public static final URI LICENSE_AGREEMENT_NOT_ACCEPTED = URI.create(PROBLEM_BASE_URL + "/license-agreement-not-accepted");
public static final URI DATABASE_READ_ONLY = URI.create(PROBLEM_BASE_URL + "/database-read-only");
public static String PROBLEM_BASE_URL;
public static URI DEFAULT_TYPE;
public static URI CONSTRAINT_VIOLATION_TYPE;
public static URI INVALID_PASSWORD_TYPE;
public static URI EMAIL_ALREADY_USED_TYPE;
public static URI LOGIN_ALREADY_USED_TYPE;
public static URI TOKEN_EXPIRED_TYPE;
public static URI LICENSE_AGREEMENT_NOT_ACCEPTED;
public static URI DATABASE_READ_ONLY;

private ErrorConstants() {
private ErrorConstants(ApplicationProperties applicationProperties) {
PROBLEM_BASE_URL = applicationProperties.getBaseUrl() + "/problem";
DEFAULT_TYPE = URI.create(PROBLEM_BASE_URL + "/problem-with-message");
CONSTRAINT_VIOLATION_TYPE = URI.create(PROBLEM_BASE_URL + "/constraint-violation");
INVALID_PASSWORD_TYPE = URI.create(PROBLEM_BASE_URL + "/invalid-password");
EMAIL_ALREADY_USED_TYPE = URI.create(PROBLEM_BASE_URL + "/email-already-used");
LOGIN_ALREADY_USED_TYPE = URI.create(PROBLEM_BASE_URL + "/login-already-used");
TOKEN_EXPIRED_TYPE = URI.create(PROBLEM_BASE_URL + "/token-expired");
LICENSE_AGREEMENT_NOT_ACCEPTED = URI.create(PROBLEM_BASE_URL + "/license-agreement-not-accepted");
DATABASE_READ_ONLY = URI.create(PROBLEM_BASE_URL + "/database-read-only");
}
}
1 change: 1 addition & 0 deletions src/main/resources/config/application-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ sentry:
application:
name: local
profile: dev
base-url: 'http://localhost:9095'
# This is the proxy link to oncokb-core
api-proxy-url: 'http://localhost:8080/oncokb'
sitemap-enabled: false
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/config/application-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ sentry:
application:
name: oncokb
profile: prod
base-url: 'https://www.oncokb.org'
api-proxy-url: 'http://oncokb-core:8888'
sitemap-enabled: true
redis:
Expand Down
3 changes: 2 additions & 1 deletion src/main/webapp/app/pages/apiAccessGroup/APIAccessPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,8 @@ export default class APIAccessPage extends React.Component<{
Example:{' '}
<code>
curl -H &quot;Authorization: Bearer [your token]&quot;
https://www.oncokb.org/api/v1/utils/allCuratedGenes
{this.props.windowStore.baseUrl}
/api/v1/utils/allCuratedGenes
</code>
</div>
<div className={'mt-2'}>
Expand Down

0 comments on commit 7100cc8

Please sign in to comment.