class OrganisationCreationKnowledgeBaseController extends AbstractOrganisationCreationController {

    @PostMapping("/details")
    public String saveKnowledgeBaseDetails(@ModelAttribute(name = "form") @Valid KnowledgeBaseCreateForm organisationForm,
                                           BindingResult bindingResult,
                                           ValidationHandler validationHandler,
                                           Model model,
                                           HttpServletRequest request,
                                           HttpServletResponse response,
                                           UserResource user) {

        Supplier<String> failureView = () -> knowledgeBaseDetails(organisationForm, model, request, user);
        return validationHandler.failNowOrSucceedWith(failureView, () -> {

            OrganisationTypeForm organisationTypeForm = new OrganisationTypeForm();
            organisationTypeForm.setOrganisationType(OrganisationTypeEnum.KNOWLEDGE_BASE.getId());
            registrationCookieService.saveToKnowledgeBaseDetailsCookie(organisationForm, response);
            registrationCookieService.saveToKnowledgeBaseAddressCookie(createAddressResource(organisationForm), response);
            registrationCookieService.saveToOrganisationTypeCookie(organisationTypeForm, response);
            return "redirect:" + AbstractOrganisationCreationController.BASE_URL + "/knowledge-base/confirm";
        });
    }

}