Package com.jetdrone.vertx.extras

Source Code of com.jetdrone.vertx.extras.ExtrasExample

package com.jetdrone.vertx.extras;

import com.jetdrone.vertx.yoke.Yoke;
import com.jetdrone.vertx.yoke.engine.HandlebarsEngine;
import com.jetdrone.vertx.yoke.middleware.*;
import com.jetdrone.vertx.yoke.middleware.BodyParser;
import com.jetdrone.vertx.yoke.middleware.rest.MongoDbStore;
import org.vertx.java.core.Handler;
import org.vertx.java.core.eventbus.EventBus;
import org.vertx.java.core.json.JsonObject;
import org.vertx.java.platform.Verticle;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ExtrasExample extends Verticle {

    @Override
    public void start() {
        final Yoke yoke = new Yoke(this);
        yoke.engine("hbs", new HandlebarsEngine("views"));

        yoke.use(new BodyParser());
        yoke.use(new ErrorHandler(true));

        JsonObject persistorCfg = new JsonObject();
        persistorCfg.putString("host", "localhost");
        persistorCfg.putNumber("port", 27017);
        persistorCfg.putString("address", "mongo.persons");
        persistorCfg.putString("db_name", "yoke");

        final EventBus eb = vertx.eventBus();

        // deploy mongo module
        container.deployModule("io.vertx~mod-mongo-persistor~2.0.0-final", persistorCfg);

        // db access
        final MongoDbStore db = new MongoDbStore(eb, "mongo.persons");

        JsonRestRouter router = new JsonRestRouter(db);
        router.rest("/persons", "persons");

        yoke.use(router);

        yoke.use(new Handler<YokeRequest>() {
            @Override
            public void handle(YokeRequest request) {

                List<Map> users = new ArrayList<>();
                Map<String, String> user;

                user = new HashMap<>();
                user.put("username", "alan");
                user.put("firstName", "Alan");
                user.put("lastName", "Johnson");
                user.put("email", "alan@test.com");
                users.add(user);

                user = new HashMap<>();
                user.put("username", "allison");
                user.put("firstName", "Allison");
                user.put("lastName", "House");
                user.put("email", "allison@test.com");
                users.add(user);

                user = new HashMap<>();
                user.put("username", "ryan");
                user.put("firstName", "Ryan");
                user.put("lastName", "Carson");
                user.put("email", "ryan@test.com");
                users.add(user);

                request.put("users", users);
                request.response().render("handlebars.hbs");
            }
        });

        yoke.listen(8080);

        container.logger().info("Yoke server listening on port 8080");
    }
}
TOP

Related Classes of com.jetdrone.vertx.extras.ExtrasExample

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.