43 lines
1.5 KiB
Java
43 lines
1.5 KiB
Java
package fr.titionfire.ffsaf.domain.service;
|
|
|
|
import fr.titionfire.ffsaf.data.model.ClubModel;
|
|
import fr.titionfire.ffsaf.data.repository.ClubRepository;
|
|
import fr.titionfire.ffsaf.net2.data.SimpleClubModel;
|
|
import io.quarkus.hibernate.reactive.panache.Panache;
|
|
import io.quarkus.hibernate.reactive.panache.common.WithSession;
|
|
import io.quarkus.vertx.VertxContextSupport;
|
|
import io.smallrye.mutiny.Uni;
|
|
import jakarta.enterprise.context.ApplicationScoped;
|
|
import jakarta.inject.Inject;
|
|
|
|
import java.util.Collection;
|
|
import java.util.List;
|
|
|
|
@WithSession
|
|
@ApplicationScoped
|
|
public class ClubService {
|
|
|
|
@Inject
|
|
ClubRepository repository;
|
|
|
|
public SimpleClubModel findByIdOptionalClub(long id) throws Throwable {
|
|
return VertxContextSupport.subscribeAndAwait(() -> Panache.withTransaction(() -> repository.findById(id).map(SimpleClubModel::fromModel)));
|
|
}
|
|
|
|
public Collection<SimpleClubModel> findAllClub() throws Throwable {
|
|
return VertxContextSupport.subscribeAndAwait(() -> Panache.withTransaction(
|
|
() -> repository.findAll().list().map(clubModels -> clubModels.stream().map(SimpleClubModel::fromModel).toList())));
|
|
}
|
|
|
|
public Uni<List<ClubModel>> getAll() {
|
|
return repository.listAll();
|
|
}
|
|
|
|
public Uni<?> setClubId(Long id, String id1) {
|
|
return repository.findById(id).chain(clubModel -> {
|
|
clubModel.setClubId(id1);
|
|
return Panache.withTransaction(() -> repository.persist(clubModel));
|
|
});
|
|
}
|
|
}
|