package com.jivesoftware.os.amzabot.deployable.ui.amzabot; import com.jivesoftware.os.mlogger.core.MetricLogger; import com.jivesoftware.os.mlogger.core.MetricLoggerFactory; import javax.inject.Singleton; import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @Singleton @Path("/amzabot/ui") public class AmzaBotUIEndpoints { private static final MetricLogger LOG = MetricLoggerFactory.getLogger(); private final AmzaBotUIService service; public AmzaBotUIEndpoints(@Context AmzaBotUIService service) { this.service = service; } @GET @Produces(MediaType.TEXT_HTML) public Response getUI(@QueryParam("key") @DefaultValue("") String key) { try { String rendered = service.render(new AmzaBotInput(key)); return Response.ok(rendered).build(); } catch (Exception x) { LOG.error("Failed to build ui.", x); return Response.serverError().build(); } } }