
io.miragon.miranum.connect.json.registry.adapter.out.SchemaPersistenceAdapter Maven / Gradle / Ivy
package io.miragon.miranum.connect.json.registry.adapter.out;
import io.miragon.miranum.connect.json.registry.application.ports.out.LoadSchemaPort;
import io.miragon.miranum.connect.json.registry.application.ports.out.SaveSchemaPort;
import io.miragon.miranum.connect.json.registry.domain.Schema;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
@Repository
@RequiredArgsConstructor
public class SchemaPersistenceAdapter implements SaveSchemaPort, LoadSchemaPort {
private final SchemaRepository schemaRepository;
private final SchemaEntityMapper schemaEntityMapper;
@Override
public List loadAllSchemaByRefAndBundle(String bundle, String ref) {
return schemaRepository.findAllByBundleAndRef(bundle, ref).stream()
.map(schemaEntityMapper::map)
.toList();
}
@Override
public Optional loadTaggedSchema(final String bundle, final String ref, final String tag) {
final Optional entity = this.schemaRepository.findByBundleAndRefAndTag(bundle, ref, tag);
return entity.map(this.schemaEntityMapper::map);
}
@Override
public List saveAllSchemas(List<@Valid Schema> schemasToSave) {
return schemaRepository.saveAll(schemasToSave.stream()
.map(schemaEntityMapper::map)
.toList())
.stream()
.map(schemaEntityMapper::map)
.toList();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy