package com.hubspot.baragon.service.resources;
import javax.inject.Singleton;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.google.inject.Inject;
import com.google.inject.name.Named;
import com.hubspot.baragon.auth.NoAuth;
import com.hubspot.baragon.service.BaragonServiceModule;
import com.hubspot.baragon.service.config.BaragonConfiguration;
import com.hubspot.baragon.service.views.IndexView;
/**
* Serves as the base for the UI, returns the mustache view for the actual GUI.
*/
@Singleton
@Path(UIResource.UI_RESOURCE_LOCATION + "{uiPath:.*}")
@NoAuth
public class UIResource {
static final String UI_RESOURCE_LOCATION = "/ui";
private final BaragonConfiguration configuration;
private final String baragonUriBase;
@Inject
public UIResource(@Named(BaragonServiceModule.BARAGON_URI_BASE) String baragonUriBase, BaragonConfiguration configuration) {
this.configuration = configuration;
this.baragonUriBase = baragonUriBase;
}
@GET
@Produces(MediaType.TEXT_HTML)
public IndexView getIndex() {
return new IndexView(baragonUriBase, UI_RESOURCE_LOCATION, configuration);
}
}