Search in sources :

Example 1 with XePrint

use of io.wring.model.XePrint in project wring by yegor256.

the class TkPipeDelete method act.

@Override
public Response act(final Request req) throws IOException {
    final Pipe pipe = this.base.user(new RqUser(req).urn()).pipes().pipe(Long.parseLong(new RqHref.Base(req).href().param("id").iterator().next()));
    final String msg = new XePrint(pipe.asXembly()).text("Pipe #{/pipe/id/text()} deleted");
    pipe.delete();
    return new RsForward(new RsFlash(msg), "/pipes");
}
Also used : RsFlash(org.takes.facets.flash.RsFlash) XePrint(io.wring.model.XePrint) RsForward(org.takes.facets.forward.RsForward) Pipe(io.wring.model.Pipe) Base(io.wring.model.Base)

Example 2 with XePrint

use of io.wring.model.XePrint 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()));
}
Also used : Directives(org.xembly.Directives) XeDirectives(org.takes.rs.xe.XeDirectives) Href(org.takes.misc.Href) XePrint(io.wring.model.XePrint) XeLink(org.takes.rs.xe.XeLink) Directive(org.xembly.Directive) XeDirectives(org.takes.rs.xe.XeDirectives)

Example 3 with XePrint

use of io.wring.model.XePrint in project wring by yegor256.

the class Cycle method exec.

@Override
public void exec(final Pipe pipe) throws Exception {
    final XePrint print = new XePrint(pipe.asXembly());
    final Events events = this.base.user(print.text("{/pipe/urn/text()}")).events();
    final String json = print.text("{/pipe/json/text()}");
    new UncheckedFunc<>(new FuncWithFallback<String, JsonObject>(str -> Json.createReader(new ReaderOf(str)).readObject(), new FuncOf<>(error -> events.post(Cycle.class.getCanonicalName(), String.format("Failed to parse JSON:\n%s\n\n%s", json, new TextOf(new BytesOf(error)).asString()))), obj -> {
        if (obj != null) {
            new Exec(new JsonAgent(this.base, obj), new IgnoreEvents(new BoostEvents(events, obj), obj), pipe).run();
        }
        return obj;
    })).apply(json);
}
Also used : JsonObject(javax.json.JsonObject) Events(io.wring.model.Events) FuncOf(org.cactoos.func.FuncOf) UncheckedFunc(org.cactoos.func.UncheckedFunc) Proc(org.cactoos.Proc) Base(io.wring.model.Base) BytesOf(org.cactoos.io.BytesOf) XePrint(io.wring.model.XePrint) Json(javax.json.Json) Pipe(io.wring.model.Pipe) ReaderOf(org.cactoos.io.ReaderOf) TextOf(org.cactoos.text.TextOf) FuncWithFallback(org.cactoos.func.FuncWithFallback) BytesOf(org.cactoos.io.BytesOf) FuncWithFallback(org.cactoos.func.FuncWithFallback) Events(io.wring.model.Events) ReaderOf(org.cactoos.io.ReaderOf) XePrint(io.wring.model.XePrint) TextOf(org.cactoos.text.TextOf)

Example 4 with XePrint

use of io.wring.model.XePrint 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));
}
Also used : RqHref(org.takes.rq.RqHref) User(io.wring.model.User) RsFlash(org.takes.facets.flash.RsFlash) RqHref(org.takes.rq.RqHref) Href(org.takes.misc.Href) Event(io.wring.model.Event) XePrint(io.wring.model.XePrint) RsForward(org.takes.facets.forward.RsForward)

Aggregations

XePrint (io.wring.model.XePrint)4 Base (io.wring.model.Base)2 Pipe (io.wring.model.Pipe)2 RsFlash (org.takes.facets.flash.RsFlash)2 RsForward (org.takes.facets.forward.RsForward)2 Href (org.takes.misc.Href)2 Event (io.wring.model.Event)1 Events (io.wring.model.Events)1 User (io.wring.model.User)1 Json (javax.json.Json)1 JsonObject (javax.json.JsonObject)1 Proc (org.cactoos.Proc)1 FuncOf (org.cactoos.func.FuncOf)1 FuncWithFallback (org.cactoos.func.FuncWithFallback)1 UncheckedFunc (org.cactoos.func.UncheckedFunc)1 BytesOf (org.cactoos.io.BytesOf)1 ReaderOf (org.cactoos.io.ReaderOf)1 TextOf (org.cactoos.text.TextOf)1 RqHref (org.takes.rq.RqHref)1 XeDirectives (org.takes.rs.xe.XeDirectives)1