| package org.eclipse.fx.travisci.client.impl; |
| |
| import java.util.HashMap; |
| import java.util.List; |
| import java.util.Map; |
| import java.util.concurrent.CompletableFuture; |
| import java.util.function.Consumer; |
| import java.util.stream.Stream; |
| |
| import org.eclipse.fx.travisci.client.BuildsEndpoint; |
| import org.eclipse.fx.travisci.client.entities.Build; |
| import org.eclipse.fx.travisci.client.impl.entities.BuildsResult; |
| |
| import com.google.gson.GsonBuilder; |
| |
| public class BuildsEndpointImpl implements BuildsEndpoint { |
| private final TravisCIClientImpl client; |
| |
| public BuildsEndpointImpl(TravisCIClientImpl client) { |
| this.client = client; |
| } |
| |
| public Stream<Build> getBuilds(BuildsQuery query) { |
| Map<String, Object> parameters = new HashMap<String, Object>(); |
| if( query.afterNumber != null ) { |
| parameters.put("after_number", query.afterNumber); |
| } |
| if( query.ids != null ) { |
| parameters.put("ids",query.ids); |
| } |
| if( query.number != null ) { |
| parameters.put("number",query.number); |
| } |
| if( query.repositoryId != null ) { |
| parameters.put("repository_id",query.repositoryId); |
| } |
| if( query.slug != null ) { |
| parameters.put("slug",query.slug); |
| } |
| String request = client.sendGetRequest("/builds", parameters); |
| GsonBuilder gson = new GsonBuilder().setPrettyPrinting(); |
| BuildsResult result = gson.create().fromJson(request, BuildsResult.class); |
| return ((List<Build>)result.builds()).stream(); |
| } |
| |
| @Override |
| public void getBuilds(BuildsQuery query, Consumer<Stream<Build>> successConsumer, Consumer<Throwable> errorConsumer) { |
| CompletableFuture.supplyAsync(() -> getBuilds(query)).whenComplete((s,t) -> { |
| if( t != null ) { |
| errorConsumer.accept(t); |
| } else { |
| successConsumer.accept(s); |
| } |
| }); |
| } |
| |
| @Override |
| public void cancel(long buildId) { |
| // TODO Auto-generated method stub |
| |
| } |
| |
| @Override |
| public void restart(long buildId) { |
| // TODO Auto-generated method stub |
| |
| } |
| } |