Release details endpoint

This commit is contained in:
simon 2019-05-25 16:24:00 -04:00
parent 1174a0596e
commit c048c351cf
3 changed files with 38 additions and 1 deletions

View File

@ -30,6 +30,7 @@ public class Main {
rc.registerClasses(Index.class);
rc.registerClasses(ArtistController.class);
rc.registerClasses(CoverController.class);
rc.registerClasses(ReleaseController.class);
rc.registerClasses(ChartController.class);
rc.registerClasses(JacksonFeature.class);

View File

@ -264,7 +264,7 @@ public class MusicDatabase extends AbstractBinder {
.map(x -> new Tag(
(Long) x.get("id"),
(String) x.get("name"),
(Long) x.get("weight")
(Double) x.get("weight")
))
.collect(Collectors.toList())
);

View File

@ -0,0 +1,36 @@
package net.simon987.musicgraph.webapi;
import net.simon987.musicgraph.entities.ReleaseDetails;
import net.simon987.musicgraph.io.MusicDatabase;
import net.simon987.musicgraph.logging.LogManager;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import java.util.logging.Logger;
@Path("/release")
public class ReleaseController {
private static Logger logger = LogManager.getLogger();
@Inject
private MusicDatabase db;
public ReleaseController() {
}
@GET
@Path("details/{mbid}")
@Produces(MediaType.APPLICATION_JSON)
//TODO Should I make an endpoint only for the tags?
public ReleaseDetails getDetails(@PathParam("mbid") String mbid) {
logger.info(String.format("Release details for %s", mbid));
return db.getReleaseDetails(mbid);
}
}