package io.cloudtrust.keycloak.export;

import org.keycloak.Config.Scope;
import org.keycloak.exportimport.ExportImportConfig;
import org.keycloak.exportimport.ImportProvider;
import org.keycloak.exportimport.ImportProviderFactory;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.KeycloakSessionFactory;

import java.io.File;

public class SingleFileImportProviderFactory implements ImportProviderFactory {
    private static final String ID = "ctSingleFile";

    @Override
    public String getId() {
        return ID;
    }

    @Override
    public ImportProvider create(KeycloakSession session) {
        String fileName = ExportImportConfig.getFile();
        if (fileName == null) {
            throw new IllegalArgumentException("Property " + ExportImportConfig.FILE + " needs to be provided!");
        }
        return new SingleFileImportProvider(new File(fileName));
    }

    @Override
    public void init(Scope config) {
        // Nothing to init
    }

    @Override
    public void postInit(KeycloakSessionFactory factory) {
        // Nothing to do
    }

    @Override
    public void close() {
        // Nothing to close
    }
}