Package org.kie.server.services.rest

Source Code of org.kie.server.services.rest.KieServerRestImpl

package org.kie.server.services.rest;

import java.util.List;

import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.GenericEntity;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.core.Variant;

import org.kie.remote.common.rest.RestEasy960Util;
import org.kie.server.api.commands.CommandScript;
import org.kie.server.api.model.KieContainerResource;
import org.kie.server.api.model.KieScannerResource;
import org.kie.server.api.model.ReleaseId;
import org.kie.server.api.model.ServiceResponse;
import org.kie.server.services.api.KieServer;
import org.kie.server.services.impl.KieServerImpl;

import static org.kie.remote.common.rest.RestEasy960Util.*;

@Path("/server")
public class KieServerRestImpl implements KieServer {

    private KieServerImpl server;

    public KieServerRestImpl() {
        // for now, if no server impl is passed as parameter, create one
        this.server = new KieServerImpl();
    }

    public KieServerRestImpl(KieServerImpl server) {
        this.server = server;
    }

    public KieServerImpl getServer() {
        return server;
    }

    public void setServer(KieServerImpl server) {
        this.server = server;
    }

    @Override
    public Response getInfo(HttpHeaders headers) {
        return createCorrectVariant(server.getInfo(), headers);
    }

    @Override
    public Response execute(HttpHeaders headers, CommandScript command) {
        return createCorrectVariant(new GenericEntity<List<ServiceResponse<? extends Object>>>(server.executeScript(command)) {
        }, headers);
    }

    @Override
    public Response listContainers(HttpHeaders headers) {
        return createCorrectVariant(server.listContainers(), headers);
    }

    @Override
    public Response createContainer(HttpHeaders headers, String id, KieContainerResource container) {
        ServiceResponse<KieContainerResource> response = server.createContainer(id, container);
        if( response.getType() == ServiceResponse.ResponseType.SUCCESS ) {
            return createCorrectVariant(response, headers, Status.CREATED);
        }
        return createCorrectVariant(response, headers, Status.BAD_REQUEST);
    }

    @Override
    public Response getContainerInfo(HttpHeaders headers, String id) {
        return createCorrectVariant(server.getContainerInfo(id), headers);
    }

    @Override
    public Response disposeContainer(HttpHeaders headers, String id) {
        return createCorrectVariant(server.disposeContainer(id), headers);
    }

    @Override
    public Response execute(HttpHeaders headers, String id, String cmdPayload) {
        return createCorrectVariant(server.callContainer(id, cmdPayload), headers);
    }

    @Override
    public Response getScannerInfo(HttpHeaders headers, String id) {
        return createCorrectVariant(server.getScannerInfo(id), headers);
    }

    @Override
    public Response updateScanner(HttpHeaders headers, String id, KieScannerResource resource) {
        return createCorrectVariant(server.updateScanner(id, resource), headers);
    };

    @Override
    public Response getReleaseId(HttpHeaders headers, String id) {
        return createCorrectVariant(server.getContainerReleaseId(id), headers);
    }

    @Override
    public Response updateReleaseId(HttpHeaders headers, String id, ReleaseId releaseId) {
        return createCorrectVariant(server.updateContainerReleaseId(id, releaseId), headers);
    }

    protected static Response createCorrectVariant(Object responseObj, HttpHeaders headers) {
        return createCorrectVariant(responseObj, headers, null);
    }

    protected static Response createCorrectVariant(Object responseObj, HttpHeaders headers, javax.ws.rs.core.Response.Status status) {
        Response.ResponseBuilder responseBuilder = null;
        Variant v = getVariant(headers);
        if( v == null ) {
            v = defaultVariant;
        }
        if( status != null ) {
            responseBuilder = Response.status(status).entity(responseObj).variant(v);
        } else {
            responseBuilder = Response.ok(responseObj, v);
        }
        return responseBuilder.build();
    }

}
TOP

Related Classes of org.kie.server.services.rest.KieServerRestImpl

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.