use of io.wring.model.Pipe 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");
}
use of io.wring.model.Pipe 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);
}
use of io.wring.model.Pipe in project wring by yegor256.
the class CycleTest method processesSinglePipe.
/**
* Cycle can process a single pipe.
* @throws Exception If some problem inside
*/
@Test
public void processesSinglePipe() throws Exception {
final Base base = new FkBase();
final Pipe pipe = new FkPipe();
new Cycle(base).exec(pipe);
}
use of io.wring.model.Pipe in project wring by yegor256.
the class CycleTest method processesSinglePipeWithBrokenJson.
/**
* Cycle can process a single pipe with broken JSOn.
* @throws Exception If some problem inside
*/
@Test
public void processesSinglePipeWithBrokenJson() throws Exception {
final Base base = new FkBase();
final Pipe pipe = new FkPipe(new Directives().add("pipe").add("urn").set("urn:test:1").up().add("json").set("{\"a\":\"/@[a-z0-9\\\\-]\\\\s+\"}").up().up());
new Cycle(base).exec(pipe);
}
use of io.wring.model.Pipe in project wring by yegor256.
the class DyPipesITCase method addsAndRemovePipes.
/**
* DyPipes can add and remove pipes.
* @throws Exception If some problem inside
*/
@Test
public void addsAndRemovePipes() throws Exception {
final User user = new DyUser(new Dynamo(), "jeffrey");
final Pipes pipes = user.pipes();
pipes.add("{\"name\": \"hello\"}");
final Pipe pipe = pipes.iterate().iterator().next();
MatcherAssert.assertThat(new Xembler(pipe.asXembly()).xml(), XhtmlMatchers.hasXPaths("/pipe/json", "/pipe/id"));
pipe.delete();
}
Aggregations