use of org.takes.misc.Href in project wring by yegor256.
the class TkEvents method source.
/**
* Convert event to Xembly.
* @param event The event
* @return Xembly
* @throws IOException If fails
*/
private static XeSource source(final Event event) throws IOException {
final Iterable<Directive> dirs = event.asXembly();
final String title = new XePrint(dirs).text("{/event/title/text()}");
final String hash = new XePrint(dirs).text("{/event/md5/text()}");
return new XeDirectives(new Directives().append(dirs).append(new XeLink("delete", new Href("/event-delete").with("title", title).with("hash", hash)).toXembly()).append(new XeLink("down", new Href("/event-down").with("title", title)).toXembly()));
}
use of org.takes.misc.Href in project wring by yegor256.
the class TkEventDelete method act.
@Override
public Response act(final Request req) throws IOException {
final User user = this.base.user(new RqUser(req).urn());
final Href href = new RqHref.Base(req).href();
final Event event = user.events().event(href.param("title").iterator().next());
final String hash = new XePrint(event.asXembly()).text("{/event/md5/text()}");
if (!hash.equals(href.param("hash").iterator().next())) {
throw new RsForward(new RsFlash("Reload the page, the event has changed", Level.WARNING));
}
final String msg = new XePrint(event.asXembly()).text("Event \"{/event/title/text()}\" deleted");
event.delete();
return new RsForward(new RsFlash(msg));
}
Aggregations