/*
 * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
 * Ministerpräsidenten des Landes Schleswig-Holstein
 * Staatskanzlei
 * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
 *
 * Lizenziert unter der EUPL, Version 1.2 oder - sobald
 * diese von der Europäischen Kommission genehmigt wurden -
 * Folgeversionen der EUPL ("Lizenz");
 * Sie dürfen dieses Werk ausschließlich gemäß
 * dieser Lizenz nutzen.
 * Eine Kopie der Lizenz finden Sie hier:
 *
 * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
 *
 * Sofern nicht durch anwendbare Rechtsvorschriften
 * gefordert oder in schriftlicher Form vereinbart, wird
 * die unter der Lizenz verbreitete Software "so wie sie
 * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
 * ausdrücklich oder stillschweigend - verbreitet.
 * Die sprachspezifischen Genehmigungen und Beschränkungen
 * unter der Lizenz sind dem Lizenztext zu entnehmen.
 */
package de.ozgcloud.admin;

import jakarta.validation.Validation;

import org.springframework.context.annotation.Configuration;
import org.springframework.data.rest.core.event.ValidatingRepositoryEventListener;
import org.springframework.data.rest.webmvc.config.RepositoryRestConfigurer;

import de.ozgcloud.admin.common.DelegatingValidatorAdapter;

@Configuration
public class AdministrationRepositoryRestConfigurer implements RepositoryRestConfigurer {

	private static final DelegatingValidatorAdapter DELEGATING_VALIDATOR_ADAPTER = new DelegatingValidatorAdapter(
			Validation.buildDefaultValidatorFactory().getValidator());

	@Override
	public void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener listener) {
		listener.addValidator("beforeCreate", DELEGATING_VALIDATOR_ADAPTER);
		listener.addValidator("beforeSave", DELEGATING_VALIDATOR_ADAPTER);
	}
}