aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/esper/testing/web
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/web')
-rwxr-xr-xsrc/main/java/io/trygvis/esper/testing/web/JerseyApplication.java21
-rwxr-xr-xsrc/main/java/io/trygvis/esper/testing/web/MyObjectMapper.java26
-rw-r--r--src/main/java/io/trygvis/esper/testing/web/resource/BadgeJson.java25
-rwxr-xr-xsrc/main/java/io/trygvis/esper/testing/web/resource/CoreResource.java40
4 files changed, 52 insertions, 60 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/web/JerseyApplication.java b/src/main/java/io/trygvis/esper/testing/web/JerseyApplication.java
index 8f66548..3c86581 100755
--- a/src/main/java/io/trygvis/esper/testing/web/JerseyApplication.java
+++ b/src/main/java/io/trygvis/esper/testing/web/JerseyApplication.java
@@ -8,6 +8,7 @@ import io.trygvis.esper.testing.*;
import io.trygvis.esper.testing.core.badge.*;
import io.trygvis.esper.testing.util.sql.*;
import io.trygvis.esper.testing.web.resource.*;
+import org.codehaus.jackson.map.*;
import javax.ws.rs.*;
import javax.ws.rs.core.*;
@@ -23,18 +24,22 @@ public class JerseyApplication extends Application {
private final HashSet<Object> singletons;
public JerseyApplication() throws Exception {
- DatabaseAccess da = new DatabaseAccess(WebConfig.config.createBoneCp());
+ Config config = WebConfig.config;
- BadgeService badgeService = new BadgeService();
+ DatabaseAccess da = new DatabaseAccess(config.createBoneCp());
+ ObjectMapper objectMapper = config.createObjectMapper();
- singletons = new HashSet<Object>(Arrays.asList(
+ BadgeService badgeService = new BadgeService(objectMapper);
+
+ singletons = new HashSet<>(Arrays.asList(
new CoreResource(da, badgeService),
- new JenkinsResource(da)
+ new JenkinsResource(da),
+ new MyObjectMapper(objectMapper)
));
}
public Set<Class<?>> getClasses() {
- return new HashSet<>(Arrays.<Class<?>>asList(ResourceParamInjector.class, MyObjectMapper.class));
+ return new HashSet<>(Arrays.<Class<?>>asList(ResourceParamInjector.class));
}
public Set<Object> getSingletons() {
@@ -44,12 +49,6 @@ public class JerseyApplication extends Application {
@Provider
public static class ResourceParamInjector implements InjectableProvider<MagicParam, Type> {
- private final ResourceContext rc;
-
- public ResourceParamInjector(@Context ResourceContext rc) {
- this.rc = rc;
- }
-
public ComponentScope getScope() {
return ComponentScope.PerRequest;
}
diff --git a/src/main/java/io/trygvis/esper/testing/web/MyObjectMapper.java b/src/main/java/io/trygvis/esper/testing/web/MyObjectMapper.java
index bfbd6eb..c684010 100755
--- a/src/main/java/io/trygvis/esper/testing/web/MyObjectMapper.java
+++ b/src/main/java/io/trygvis/esper/testing/web/MyObjectMapper.java
@@ -1,37 +1,17 @@
package io.trygvis.esper.testing.web;
-import io.trygvis.esper.testing.*;
-import org.codehaus.jackson.*;
import org.codehaus.jackson.map.*;
-import org.codehaus.jackson.map.module.*;
-import java.io.*;
import javax.ws.rs.ext.*;
public class MyObjectMapper implements ContextResolver<ObjectMapper> {
- private ObjectMapper objectMapper;
+ private final ObjectMapper objectMapper;
- public MyObjectMapper() throws Exception {
- objectMapper = new ObjectMapper();
- SimpleModule module = new SimpleModule("wat", Version.unknownVersion());
- module.addDeserializer(Uuid.class, new UuidDeserializer());
- module.addSerializer(Uuid.class, new UuidSerializer());
- objectMapper.registerModule(module);
+ public MyObjectMapper(ObjectMapper objectMapper) throws Exception {
+ this.objectMapper = objectMapper;
}
public ObjectMapper getContext(Class<?> type) {
return objectMapper;
}
-
- private static class UuidDeserializer extends JsonDeserializer<Uuid> {
- public Uuid deserialize(JsonParser jp, DeserializationContext context) throws IOException {
- return Uuid.fromString(jp.getText());
- }
- }
-
- private static class UuidSerializer extends JsonSerializer<Uuid> {
- public void serialize(Uuid value, JsonGenerator generator, SerializerProvider provider) throws IOException {
- generator.writeString(value.toStringBase64());
- }
- }
}
diff --git a/src/main/java/io/trygvis/esper/testing/web/resource/BadgeJson.java b/src/main/java/io/trygvis/esper/testing/web/resource/BadgeJson.java
index 8eea335..ded97ae 100644
--- a/src/main/java/io/trygvis/esper/testing/web/resource/BadgeJson.java
+++ b/src/main/java/io/trygvis/esper/testing/web/resource/BadgeJson.java
@@ -1,20 +1,33 @@
package io.trygvis.esper.testing.web.resource;
+import org.joda.time.*;
+
public class BadgeJson {
+ public final DateTime createdDate;
public final String name;
public final int level;
+ public final Integer progress;
+ public final Integer goal;
+
/**
- * Number of times this badge has been received.
+ * For completed badges.
*/
- public final int count;
- public final int progress;
- public final int goal;
+ public BadgeJson(DateTime createdDate, String name, int level) {
+ this.createdDate = createdDate;
+ this.name = name;
+ this.level = level;
+ this.progress = null;
+ this.goal = null;
+ }
- public BadgeJson(String name, int level, int count, int progress, int goal) {
+ /**
+ * For badges in progress.
+ */
+ public BadgeJson(DateTime createdDate, String name, int level, int progress, int goal) {
+ this.createdDate = createdDate;
this.name = name;
this.level = level;
- this.count = count;
this.progress = progress;
this.goal = goal;
}
diff --git a/src/main/java/io/trygvis/esper/testing/web/resource/CoreResource.java b/src/main/java/io/trygvis/esper/testing/web/resource/CoreResource.java
index f68d6ec..a129cf3 100755
--- a/src/main/java/io/trygvis/esper/testing/web/resource/CoreResource.java
+++ b/src/main/java/io/trygvis/esper/testing/web/resource/CoreResource.java
@@ -124,14 +124,14 @@ public class CoreResource extends AbstractResource {
@GET
@Path("/badge")
- public List<BadgeDetailJson> getBadges(@MagicParam final PageRequest page, @MagicParam(query = "person") final Uuid person) throws Exception {
- return da.inTransaction(new CoreDaosCallback<List<BadgeDetailJson>>() {
- protected List<BadgeDetailJson> run() throws SQLException {
- List<PersonBadgeDto> badgeDtos = daos.personDao.selectBadges(fromNull(person), Option.<PersonBadgeDto.BadgeType>none(), Option.<Integer>none(), page);
-
- List<BadgeDetailJson> list = new ArrayList<>();
- for (PersonBadgeDto badge : badgeDtos) {
- list.add(getBadgeDetailJson.apply(badge));
+ public List<BadgeJson> getBadges(@MagicParam final PageRequest page, @MagicParam(query = "person") final Uuid person) throws Exception {
+ return da.inTransaction(new CoreDaosCallback<List<BadgeJson>>() {
+ protected List<BadgeJson> run() throws SQLException {
+ List<PersonalBadgeDto> badgeDtos = daos.personDao.selectBadges(fromNull(person), Option.<PersonalBadgeDto.BadgeType>none(), Option.<Integer>none(), page);
+
+ List<BadgeJson> list = new ArrayList<>();
+ for (PersonalBadgeDto badge : badgeDtos) {
+ list.add(getBadgeJson.apply(badge));
}
return list;
}
@@ -157,15 +157,13 @@ public class CoreResource extends AbstractResource {
protected final SqlF<PersonDto, PersonDetailJson> getPersonDetailJson = new SqlF<PersonDto, PersonDetailJson>() {
public PersonDetailJson apply(PersonDto person) throws SQLException {
List<BadgeJson> badges = new ArrayList<>();
-
- for (PersonBadgeDto badge : daos.personDao.selectBadges(person.uuid)) {
- badges.add(getBadge(badge));
+ for (PersonalBadgeDto badge : daos.personDao.selectBadges(person.uuid)) {
+ badges.add(getBadgeJson.apply(badge));
}
List<BadgeJson> badgesInProgress = new ArrayList<>();
-
for (PersonBadgeProgressDto badgeProgressDto : daos.personDao.selectBadgeProgresses(person.uuid)) {
- UnbreakableBadgeProgress progress = badgeService.unbreakable(badgeProgressDto);
+ BadgeProgress progress = badgeService.badgeProgress(badgeProgressDto);
badgesInProgress.add(getBadge(progress));
}
@@ -177,17 +175,19 @@ public class CoreResource extends AbstractResource {
}
};
- private BadgeJson getBadge(PersonBadgeDto badge) {
- return new BadgeJson(badge.type.name(), badge.level, badge.count, 100, 100);
- }
+ protected SqlF<PersonalBadgeDto, BadgeJson> getBadgeJson = new SqlF<PersonalBadgeDto, BadgeJson>() {
+ public BadgeJson apply(PersonalBadgeDto badge) throws SQLException {
+ return new BadgeJson(badge.createdDate, badge.type.name(), badge.level);
+ }
+ };
private BadgeJson getBadge(BadgeProgress progress) {
- return new BadgeJson(progress.type.name(), progress.progressingAgainstLevel(), 0, progress.progression(), progress.goal());
+ return new BadgeJson(null, progress.type.name(), progress.progressingAgainstLevel(), progress.progression(), progress.goal());
}
- protected final SqlF<PersonBadgeDto, BadgeDetailJson> getBadgeDetailJson = new SqlF<PersonBadgeDto, BadgeDetailJson>() {
- public BadgeDetailJson apply(PersonBadgeDto badgeDto) throws SQLException {
- return new BadgeDetailJson(getBadge(badgeDto),
+ protected final SqlF<PersonalBadgeDto, BadgeDetailJson> getBadgeDetailJson = new SqlF<PersonalBadgeDto, BadgeDetailJson>() {
+ public BadgeDetailJson apply(PersonalBadgeDto badgeDto) throws SQLException {
+ return new BadgeDetailJson(getBadgeJson.apply(badgeDto),
daos.personDao.selectPerson(badgeDto.person).map(getPersonJson).get());
}
};