Skip to content

Commit

Permalink
Provide BiReUS repository URLs for featured mods
Browse files Browse the repository at this point in the history
Fixes #134
  • Loading branch information
micheljung committed Sep 16, 2017
1 parent b12259b commit 8a0092f
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 5 deletions.
5 changes: 3 additions & 2 deletions src/main/java/com/faforever/api/config/FafApiProperties.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public class FafApiProperties {
private Mod mod = new Mod();
private Replay replay = new Replay();
private Clan clan = new Clan();
private FeaturedMods featuredMods = new FeaturedMods();
private FeaturedMod featuredMod = new FeaturedMod();
private GitHub gitHub = new GitHub();
private Deployment deployment = new Deployment();
private Registration registration = new Registration();
Expand Down Expand Up @@ -110,8 +110,9 @@ public static class Replay {
}

@Data
public static class FeaturedMods {
public static class FeaturedMod {
private String fileUrlFormat;
private String bireusUrlFormat;
}

@Data
Expand Down
12 changes: 12 additions & 0 deletions src/main/java/com/faforever/api/data/domain/FeaturedMod.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
package com.faforever.api.data.domain;

import com.yahoo.elide.annotation.ComputedAttribute;
import com.yahoo.elide.annotation.Include;
import lombok.Setter;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

@Entity
@Table(name = "game_featuredMods")
@Include(rootLevel = true, type = "featuredMod")
@Setter
@EntityListeners(FeaturedModEnricher.class)
public class FeaturedMod {
private int id;
private String technicalName;
Expand All @@ -23,6 +27,7 @@ public class FeaturedMod {
private String gitBranch;
private Boolean allowOverride;
private String fileExtension;
private String bireusUrl;

@Id
@Column(name = "id")
Expand Down Expand Up @@ -74,4 +79,11 @@ public Boolean isAllowOverride() {
public String getFileExtension() {
return fileExtension;
}

@Transient
@ComputedAttribute
// Enriched by FeaturedModEnricher
public String getBireusUrl() {
return bireusUrl;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.faforever.api.data.domain;

import com.faforever.api.config.FafApiProperties;
import org.springframework.stereotype.Component;

import javax.inject.Inject;
import javax.persistence.PostLoad;

@Component
public class FeaturedModEnricher {
private static FafApiProperties fafApiProperties;

@Inject
public void init(FafApiProperties fafApiProperties) {
FeaturedModEnricher.fafApiProperties = fafApiProperties;
}

@PostLoad
public void enrich(FeaturedMod featuredMod) {
String technicalName = featuredMod.getTechnicalName();
String bireusUrlFormat = fafApiProperties.getFeaturedMod().getBireusUrlFormat();

featuredMod.setBireusUrl(String.format(bireusUrlFormat, technicalName));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public void init(FafApiProperties fafApiProperties) {
public void enhance(FeaturedModFile featuredModFile) {
String filename = featuredModFile.getName();
String folder = featuredModFile.getFolderName();
String urlFormat = fafApiProperties.getFeaturedMods().getFileUrlFormat();
String urlFormat = fafApiProperties.getFeaturedMod().getFileUrlFormat();

featuredModFile.setUrl(String.format(urlFormat, folder, filename));
}
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/config/application-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@ faf-api:
preview-url-format: ${MOD_PREVIEW_URL_FORMAT:http://test.content.faforever.com/faf/vault/mods/%s}
replay:
download-url-format: ${REPLAY_DOWNLOAD_URL_FORMAT:http://content.test.faforever.com/faf/vault/replay_vault/replay.php?id=%s}
featured-mods:
featured-mod:
file-url-format: ${FEATURED_MOD_URL_FORMAT:http://content.test.faforever.com/faf/updaterNew/%s/%s}
bireus-url-format: ${FEAUTED_MOD_BIREUS_URL_FORMAT:https://content.test.faforever.com/repositories/%s}
git-hub:
access-token: ${GITHUB_ACCESS_TOKEN:none}
deployment-environment: ${GITHUB_DEPLOYMENT_ENVIRONMENT:development}
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/config/application-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ faf-api:
preview-url-format: ${MOD_PREVIEW_URL_FORMAT}
replay:
download-url-format: ${REPLAY_DOWNLOAD_URL_FORMAT}
featured-mods:
featured-mod:
file-url-format: ${FEATURED_MOD_URL_FORMAT}
bireus-url-format: ${FEAUTED_MOD_BIREUS_URL_FORMAT}
git-hub:
access-token: ${GITHUB_ACCESS_TOKEN}
deployment-environment: ${GITHUB_DEPLOYMENT_ENVIRONMENT:production}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.faforever.api.data.domain;

import com.faforever.api.config.FafApiProperties;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnitRunner;

import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;

@RunWith(MockitoJUnitRunner.class)
public class FeaturedModEnricherTest {

private FeaturedModEnricher featuredModEnricher;

@Before
public void setUp() throws Exception {
FafApiProperties fafApiProperties = new FafApiProperties();
fafApiProperties.getFeaturedMod().setBireusUrlFormat("http://example.com/%s");

featuredModEnricher = new FeaturedModEnricher();
featuredModEnricher.init(fafApiProperties);

}

@Test
public void enrich() throws Exception {
FeaturedMod featuredMod = new FeaturedMod();
featuredMod.setTechnicalName("faf");

featuredModEnricher.enrich(featuredMod);

assertThat(featuredMod.getBireusUrl(), is("http://example.com/faf"));
}
}

0 comments on commit 8a0092f

Please sign in to comment.