Examples of EndpointResponse


Examples of com.dottydingo.service.endpoint.context.EndpointResponse

    @Override
    public void onComplete(HyperionContext context)
    {

        EndpointResponse response = context.getEndpointResponse();

        Throwable error = context.getError();
        if(error != null)
        {
            Throwable cause = getCause(error);

            int status = 500;

            if(error instanceof HyperionException)
            {
                status = ((HyperionException)error).getStatusCode();
            }

            if(status == 500)
                logger.error(cause.getMessage(),cause);
            else
                logger.info(cause.getMessage());


            if(!context.isTimedOut())
            {
                response.setResponseCode(status);

                response.setContentEncoding("UTF-8");
                response.setContentType("application/json");

                ErrorResponse errorResponse = new ErrorResponse();
                errorResponse.setStatusCode(response.getResponseCode());
                errorResponse.setMessage(error.getMessage());
                if (status == 500 || context.getShowErrorDetail())
                    errorResponse.setStackTrace(buildStackTrace(cause));

                String exceptionType = error.getClass().getName();
                if (!(error instanceof HyperionException))
                    exceptionType = InternalException.class.getName();
                else
                    errorResponse.setErrorDetails(((HyperionException) error).getErrorDetails());

                errorResponse.setType(exceptionType);

                endpointMarshaller.marshall(response.getOutputStream(), errorResponse);
            }
        }

    }
View Full Code Here

Examples of com.dottydingo.service.endpoint.context.EndpointResponse

    @Override
    protected void executePhase(HyperionContext phaseContext) throws Exception
    {
        EndpointRequest request = phaseContext.getEndpointRequest();
        EndpointResponse response = phaseContext.getEndpointResponse();

        ApiVersionPlugin<ApiObject,PersistentObject> apiVersionPlugin = phaseContext.getVersionPlugin();
        EntityPlugin plugin = phaseContext.getEntityPlugin();

        ApiObject clientObject = marshaller.unmarshall(request.getInputStream(),apiVersionPlugin.getApiClass());
        clientObject.setId(null);

        PersistenceContext persistenceContext = buildPersistenceContext(phaseContext);
        Set<String> fieldSet = persistenceContext.getRequestedFields();
        if(fieldSet != null)
            fieldSet.add("id");

        ApiObject saved = plugin.getPersistenceOperations().createOrUpdateItem(clientObject, persistenceContext);
        if(saved != null)
        {
            processChangeEvents(phaseContext,persistenceContext);
            if(persistenceContext.getWriteContext() == WriteContext.create)
            {
                response.setResponseCode(201);
                String location = String.format("%s%s/%s",request.getBaseUrl(),request.getRequestUri(),saved.getId());
                response.setHeader("Location", location);
            }
            else
            {
                response.setResponseCode(200);
            }
            phaseContext.setResult(saved);
        }
        else
            response.setResponseCode(304);

    }
View Full Code Here

Examples of com.dottydingo.service.endpoint.context.EndpointResponse

    protected void executePhase(HyperionContext phaseContext) throws Exception
    {
        Object result = phaseContext.getResult();
        if(result != null)
        {
            EndpointResponse response = phaseContext.getEndpointResponse();
            response.setContentType("application/json");
            response.setContentEncoding("UTF-8");

            if(phaseContext.getEffectiveMethod() != HttpMethod.DELETE)
                response.setHeader(configuration.getVersionHeaderName(),phaseContext.getVersionPlugin().getVersion().toString());

            try
            {
                if(phaseContext.getRequestMethod() != HttpMethod.HEAD)
                    marshaller.marshall(phaseContext.getEndpointResponse().getOutputStream(),result);
View Full Code Here

Examples of com.dottydingo.service.endpoint.context.EndpointResponse

    @Override
    protected void executePhase(HyperionContext phaseContext) throws Exception
    {
        EndpointRequest request = phaseContext.getEndpointRequest();
        EndpointResponse response = phaseContext.getEndpointResponse();

        ApiVersionPlugin<ApiObject,PersistentObject> apiVersionPlugin = phaseContext.getVersionPlugin();
        EntityPlugin plugin = phaseContext.getEntityPlugin();

        PersistenceContext persistenceContext = buildPersistenceContext(phaseContext);

        RequestContext<ApiObject> requestContext = marshaller.unmarshallWithContext(request.getInputStream(), apiVersionPlugin.getApiClass());
        ApiObject clientObject = requestContext.getRequestObject();

        List ids = plugin.getKeyConverter().covertKeys(phaseContext.getId());
        if(ids.size() != 1)
            throw new BadRequestException("A single id must be provided for an update.");

        Set<String> setFields = requestContext.getSetFields();

        persistenceContext.setProvidedFields(setFields);

        Set<String> fieldSet = persistenceContext.getRequestedFields();
        if(fieldSet != null)
            fieldSet.add("id");

        ApiObject saved = plugin.getPersistenceOperations().updateItem(ids, clientObject, persistenceContext);

        processChangeEvents(phaseContext,persistenceContext);

        if(saved != null)
        {
            response.setResponseCode(200);
            phaseContext.setResult(saved);
        }
        else
            response.setResponseCode(304);
    }
View Full Code Here

Examples of com.dottydingo.service.endpoint.context.EndpointResponse

    @Override
    public void onComplete(HyperionContext context)
    {

        EndpointResponse response = context.getEndpointResponse();

        Throwable error = context.getError();
        if(error != null)
        {
            Throwable cause = getCause(error);

            int status = 500;

            if(error instanceof HyperionException)
            {
                status = ((HyperionException)error).getStatusCode();
            }

            if(status == 500)
                logger.error(cause.getMessage(),cause);
            else
                logger.info(cause.getMessage());

            response.setResponseCode(status);

            response.setContentEncoding("UTF-8");
            response.setContentType("application/json");

            ErrorResponse errorResponse = new ErrorResponse();
            errorResponse.setStatusCode(response.getResponseCode());
            errorResponse.setMessage(error.getMessage());
            if(status == 500 || context.getShowErrorDetail())
                errorResponse.setErrorDetail(buildErrorDetail(cause));

            String exceptionType = error.getClass().getName();
            if(!(error instanceof HyperionException))
                exceptionType = InternalException.class.getName();

            errorResponse.setType(exceptionType);

            endpointMarshaller.marshall(response.getOutputStream(),errorResponse);
        }

    }
View Full Code Here

Examples of com.dottydingo.service.endpoint.context.EndpointResponse

    @Override
    protected void executePhase(HyperionContext phaseContext) throws Exception
    {
        EndpointRequest request = phaseContext.getEndpointRequest();
        EndpointResponse response = phaseContext.getEndpointResponse();

        ApiVersionPlugin<ApiObject,PersistentObject> apiVersionPlugin = phaseContext.getVersionPlugin();
        EntityPlugin plugin = phaseContext.getEntityPlugin();

        ApiObject clientObject = marshaller.unmarshall(request.getInputStream(),apiVersionPlugin.getApiClass());
        clientObject.setId(null);

        PersistenceContext persistenceContext = buildPersistenceContext(phaseContext);
        Set<String> fieldSet = persistenceContext.getRequestedFields();
        if(fieldSet != null)
            fieldSet.add("id");


        ApiObject saved = plugin.getPersistenceOperations().createOrUpdateItem(clientObject, persistenceContext);
        if(saved != null)
        {
            processChangeEvents(phaseContext,persistenceContext);
            if(persistenceContext.getWriteContext() == WriteContext.create)
            {
                response.setResponseCode(201);
                String location = String.format("%s%s/%s",request.getBaseUrl(),request.getRequestUri(),saved.getId());
                response.setHeader("Location", location);
            }
            else
            {
                response.setResponseCode(200);
            }
            phaseContext.setResult(saved);
        }
        else
            response.setResponseCode(304);

    }
View Full Code Here

Examples of com.dottydingo.service.endpoint.context.EndpointResponse

    protected void executePhase(HyperionContext phaseContext) throws Exception
    {
        Object result = phaseContext.getResult();
        if(result != null)
        {
            EndpointResponse response = phaseContext.getEndpointResponse();
            response.setContentType("application/json");
            response.setContentEncoding("UTF-8");

            if(phaseContext.getEffectiveMethod() != HttpMethod.DELETE)
                response.setHeader(configuration.getVersionHeaderName(),phaseContext.getVersionPlugin().getVersion().toString());

            if(phaseContext.getRequestMethod() != HttpMethod.HEAD)
                marshaller.marshall(phaseContext.getEndpointResponse().getOutputStream(),result);
        }
View Full Code Here

Examples of com.dottydingo.service.endpoint.context.EndpointResponse

{
    @Override
    protected void executePhase(HyperionContext phaseContext) throws Exception
    {
        EndpointRequest request = phaseContext.getEndpointRequest();
        EndpointResponse response = phaseContext.getEndpointResponse();

        ApiVersionPlugin<ApiObject,PersistentObject> apiVersionPlugin = phaseContext.getVersionPlugin();
        EntityPlugin plugin = phaseContext.getEntityPlugin();

        PersistenceContext persistenceContext = buildPersistenceContext(phaseContext);

        List ids = plugin.getKeyConverter().covertKeys(phaseContext.getId());
        int deleted = plugin.getPersistenceOperations().deleteItem(ids, persistenceContext);

        processChangeEvents(phaseContext,persistenceContext);
        DeleteResponse deleteResponse = new DeleteResponse();
        deleteResponse.setCount(deleted);
        phaseContext.setResult(deleteResponse);

        response.setResponseCode(200);
    }
View Full Code Here

Examples of com.dottydingo.service.endpoint.context.EndpointResponse

        entityResponse.setStart(1);
        entityResponse.setTotalCount(new Long(converted.size()));

        phaseContext.setResult(entityResponse);

        EndpointResponse response = phaseContext.getEndpointResponse();
        response.setResponseCode(200);
    }
View Full Code Here

Examples of com.dottydingo.service.endpoint.context.EndpointResponse

    @Override
    protected void executePhase(HyperionContext phaseContext) throws Exception
    {
        EndpointRequest request = phaseContext.getEndpointRequest();
        EndpointResponse response = phaseContext.getEndpointResponse();

        ApiVersionPlugin<ApiObject,PersistentObject> apiVersionPlugin = phaseContext.getVersionPlugin();
        EntityPlugin plugin = phaseContext.getEntityPlugin();

        PersistenceContext persistenceContext = buildPersistenceContext(phaseContext);

        ApiObject clientObject = marshaller.unmarshall(request.getInputStream(), apiVersionPlugin.getApiClass());

        List ids = plugin.getKeyConverter().covertKeys(phaseContext.getId());
        if(ids.size() != 1)
            throw new BadRequestException("A single id must be provided for an update.");

        Set<String> fieldSet = persistenceContext.getRequestedFields();
        if(fieldSet != null)
            fieldSet.add("id");

        ApiObject saved = plugin.getPersistenceOperations().updateItem(ids, clientObject, persistenceContext);

        processChangeEvents(phaseContext,persistenceContext);

        if(saved != null)
        {
            response.setResponseCode(200);
            phaseContext.setResult(saved);
        }
        else
            response.setResponseCode(304);
    }
View Full Code Here
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.