Create placehoders for organizations not found in the database

deploy_packages_to_gitea
Jens Pelzetter 2022-12-06 19:49:00 +01:00
parent 347f614c2d
commit 28f5fd53f5
1 changed files with 19 additions and 10 deletions

View File

@ -24,6 +24,7 @@ import org.libreccm.cdi.utils.CdiUtil;
import org.librecms.contentsection.AssetRepository;
import java.io.Serializable;
import java.util.Optional;
import javax.enterprise.context.RequestScoped;
@ -48,18 +49,26 @@ public class OrganizationIdResolver implements Serializable, ObjectIdResolver {
@Override
public Object resolveId(final ObjectIdGenerator.IdKey id) {
return CdiUtil
.createCdiUtil()
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
final Optional<Organization> result = cdiUtil
.findBean(AssetRepository.class)
.findByUuidAndType(id.key.toString(), Organization.class)
.orElseThrow(
() -> new IllegalArgumentException(
String.format(
"No Organization with UUID %s found in the database",
id.key.toString()
)
)
.findByUuidAndType(id.key.toString(), Organization.class);
if (result.isPresent()) {
return result.get();
} else {
final Organization organization = new Organization();
organization.setName(
String.format("Placeholder %s", id.key.toString())
);
final AssetRepository assetRepo = cdiUtil.findBean(
AssetRepository.class
);
assetRepo.save(organization);
organization.setUuid(id.key.toString());
assetRepo.save(organization);
return organization;
}
}
@Override