use of gov.usgs.cida.coastalhazards.model.Alias in project coastal-hazards by USGS-CIDA.
the class InfoRouter method useAliasInfoJsp.
@GET
@Produces(MediaType.TEXT_HTML)
@Path("/alias/{aliasId}")
public Response useAliasInfoJsp(@PathParam("aliasId") String aliasId) {
Map<String, Object> map = new HashMap<>();
try (ItemManager mgr = new ItemManager();
AliasManager amgr = new AliasManager()) {
Alias alias = amgr.load(aliasId);
if (alias != null) {
Item item = mgr.load(alias.getItemId());
if (item == null) {
return Response.status(Response.Status.NOT_FOUND).build();
}
map.put("item", item);
map.put("alias", alias);
return Response.ok(new Viewable("/WEB-INF/jsp/ui/back/index.jsp", map)).build();
} else {
return Response.status(Response.Status.NOT_FOUND).build();
}
}
}
use of gov.usgs.cida.coastalhazards.model.Alias in project coastal-hazards by USGS-CIDA.
the class AliasManager method loadAll.
public List<Alias> loadAll() {
Query selectAllQuery = em.createQuery(HQL_SELECT_ALL);
List<Alias> resultList = selectAllQuery.getResultList();
return (resultList);
}
use of gov.usgs.cida.coastalhazards.model.Alias in project coastal-hazards by USGS-CIDA.
the class AliasResource method getAliasList.
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response getAliasList(@PathParam("id") String id) {
Response response = null;
try (AliasManager manager = new AliasManager()) {
List<Alias> aliases = manager.loadAll();
Gson gson = GsonUtil.getDefault();
if (aliases != null) {
response = Response.ok(gson.toJson(aliases), MediaType.APPLICATION_JSON_TYPE).build();
} else {
throw new Error();
}
}
return response;
}
use of gov.usgs.cida.coastalhazards.model.Alias in project coastal-hazards by USGS-CIDA.
the class AliasResource method getItemForAlias.
@GET
@Path("/{id}/item")
@Produces(MediaType.APPLICATION_JSON)
public Response getItemForAlias(@PathParam("id") String id, @DefaultValue("false") @QueryParam("subtree") boolean subtree, @Context Request request) {
Response response = null;
try (AliasManager aliasManager = new AliasManager()) {
Alias alias = aliasManager.load(id);
Item item = null;
try (StatusManager statusMan = new StatusManager()) {
try (ItemManager itemManager = new ItemManager()) {
item = itemManager.load(alias.getItemId());
}
if (item == null) {
throw new NotFoundException();
} else {
// Check when the item and/or structure was last modified, if at all.
// - If both are null, use today's date.
// - If one of the two is not null, use that.
// - Else, if both are not null, use the latest between them.
Status lastItemUpdate = statusMan.load(Status.StatusName.ITEM_UPDATE);
Status lastStructureUpdate = statusMan.load(Status.StatusName.STRUCTURE_UPDATE);
Date modified = new Date();
if (lastItemUpdate != null && lastStructureUpdate != null) {
// Both updates exist, so compare between them and choose the latest
Date lastItemUpdateDate = lastItemUpdate.getLastUpdate();
Date lastStructureUpdateDate = lastStructureUpdate.getLastUpdate();
modified = lastItemUpdateDate.after(lastStructureUpdateDate) ? lastItemUpdateDate : lastStructureUpdateDate;
} else {
// least one exists and use that.
if (lastItemUpdate != null) {
modified = lastItemUpdate.getLastUpdate();
}
if (lastStructureUpdate != null) {
modified = lastStructureUpdate.getLastUpdate();
}
}
Response unmodified = HTTPCachingUtil.checkModified(request, modified);
if (unmodified != null) {
response = unmodified;
} else {
String jsonResult = item.toJSON(subtree);
response = Response.ok(jsonResult, MediaType.APPLICATION_JSON_TYPE).lastModified(modified).build();
}
}
}
}
return response;
}
use of gov.usgs.cida.coastalhazards.model.Alias in project coastal-hazards by USGS-CIDA.
the class AliasResource method updateAlias.
@RolesAllowed({ CoastalHazardsTokenBasedSecurityFilter.CCH_ADMIN_ROLE })
@PUT
@Path("/{id}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response updateAlias(@PathParam("id") String id, String content, @Context HttpServletRequest request) {
Response response = null;
Alias newAlias = Alias.fromJSON(content);
try (AliasManager manager = new AliasManager()) {
Alias alias = manager.load(id);
if (alias != null) {
alias.setItemId(newAlias.getItemId());
manager.update(alias);
response = Response.ok(GsonUtil.getDefault().toJson(alias, Alias.class), MediaType.APPLICATION_JSON_TYPE).build();
} else {
throw new NotFoundException();
}
}
return response;
}
Aggregations