All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javaVertXServer.apiVerticle.mustache Maven / Gradle / Ivy

There is a newer version: 1.6.0
Show newest version
package {{package}};

import io.vertx.core.AbstractVerticle;
import io.vertx.core.json.Json;
import io.vertx.core.json.JsonArray;
import io.vertx.core.json.JsonObject;
import io.vertx.core.logging.Logger;
import io.vertx.core.logging.LoggerFactory;

{{#imports}}import {{import}};
{{/imports}}

import java.util.List;
import java.util.Map;

public class {{classname}}Verticle extends AbstractVerticle {
    final static Logger LOGGER = LoggerFactory.getLogger({{classname}}Verticle.class); 
    
    {{#operations}}{{#operation}}{{#vendorExtensions}}final static String {{x-serviceId-varName}} = "{{x-serviceId}}";
    {{/vendorExtensions}}{{/operation}}{{/operations}}
    //TODO : create Implementation
    {{classname}} service = new {{classname}}Impl();

    @Override
    public void start() throws Exception {
        {{#operations}}{{#operation}}
        //Consumer for {{#vendorExtensions}}{{x-serviceId}}{{/vendorExtensions}}
        vertx.eventBus(). consumer({{#vendorExtensions}}{{x-serviceId-varName}}{{/vendorExtensions}}).handler(message -> {
            try {
                {{#hasParams}}{{#allParams}}{{#isListContainer}}{{{dataType}}} {{paramName}} = Json.mapper.readValue(message.body().getJsonArray("{{baseName}}").encode(),
                        Json.mapper.getTypeFactory().constructCollectionType(List.class, {{{baseType}}}.class));
                {{/isListContainer}}{{^isListContainer}}{{#isPrimitiveType}}{{#isString}}{{{dataType}}} {{paramName}} = message.body().getString("{{baseName}}");
                {{/isString}}{{^isString}}{{{dataType}}} {{paramName}} = Json.mapper.readValue(message.body().getString("{{baseName}}"), {{{dataType}}}.class);
                {{/isString}}{{/isPrimitiveType}}{{^isPrimitiveType}}{{{dataType}}} {{paramName}} = Json.mapper.readValue(message.body().getJsonObject("{{baseName}}").encode(), {{{dataType}}}.class);
                {{/isPrimitiveType}}{{/isListContainer}}{{/allParams}}{{/hasParams}}
                {{#returnType}}{{{returnType}}} result = service.{{operationId}}({{#hasParams}}{{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{/hasParams}});
                {{#isListContainer}}message.reply(new JsonArray(Json.encode(result)).encodePrettily());{{/isListContainer}}{{^isListContainer}}message.reply(new JsonObject(Json.encode(result)).encodePrettily());{{/isListContainer}}{{/returnType}}{{^returnType}}service.{{operationId}}({{#hasParams}}{{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{/hasParams}});
                message.reply(null);{{/returnType}}
            } catch (Exception e) {
                //TODO : replace magic number (101)
                message.fail(101, e.getLocalizedMessage());
            }
        });
        {{/operation}}{{/operations}}
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy