- album.modify().setTitle(title).setDescription(TextFilter.filter(request.getHttpRequest().getHeader("host"), description)).update();
- webInterface.getCore().touchConfiguration();
- return createSuccessJsonObject().put("albumId", album.getId()).put("title", album.getTitle()).put("description", album.getDescription());
+ try {
+ album.get().modify().setTitle(title).setDescription(TextFilter.filter(request.getHttpRequest().getHeader("host"), description)).update();
+ webInterface.getCore().touchConfiguration();
+ return createSuccessJsonObject().put("albumId", album.get().getId()).put("title", album.get().getTitle()).put("description", parseDescription(album.get()));
+ } catch (IllegalStateException e) {
+ return createErrorJsonObject("invalid-album-title");
+ }
+ }
+
+ private String parseDescription(Album album) {
+ Iterable<Part> parts = (Iterable<Part>) parserFilter.format(new TemplateContext(), album.getDescription(),
+ ImmutableMap.<String, Object>builder().put("sone", album.getSone()).build());
+ return (String) renderFilter.format(new TemplateContext(), parts, Collections.<String, Object>emptyMap());