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

com.commercetools.sunrise.framework.controllers.WithContent Maven / Gradle / Ivy

The newest version!
package com.commercetools.sunrise.framework.controllers;

import com.commercetools.sunrise.framework.template.engine.ContentRenderer;
import com.commercetools.sunrise.framework.viewmodels.content.PageContent;
import play.libs.concurrent.HttpExecution;
import play.mvc.Result;
import play.mvc.Results;
import play.twirl.api.Content;

import javax.annotation.Nullable;
import java.util.concurrent.CompletionStage;

public interface WithContent {

    default CompletionStage renderContent(final PageContent pageContent) {
        return getContentRenderer().render(pageContent, getTemplateName(), getCmsPageKey());
    }

    default CompletionStage okResultWithPageContent(final PageContent pageContent) {
        return renderContent(pageContent)
                .thenApplyAsync(Results::ok, HttpExecution.defaultContext());
    }

    default CompletionStage badRequestResultWithPageContent(final PageContent pageContent) {
        return renderContent(pageContent)
                .thenApplyAsync(Results::badRequest, HttpExecution.defaultContext());
    }

    default CompletionStage internalServerErrorResultWithPageContent(final PageContent pageContent) {
        return renderContent(pageContent)
                .thenApplyAsync(Results::internalServerError, HttpExecution.defaultContext());
    }

    ContentRenderer getContentRenderer();

    @Nullable
    default String getTemplateName() {
        return null;
    }

    @Nullable
    default String getCmsPageKey() {
        return null;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy