All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.butkoprojects.bots.preprocess.controller.BotApiMethodController Maven / Gradle / Ivy

package io.github.butkoprojects.bots.preprocess.controller;

import org.telegram.telegrambots.meta.api.objects.Update;
import reactor.core.publisher.Flux;
import java.util.function.Function;
import java.util.function.Predicate;

public class BotApiMethodController {

    private Function> processUpdate;
    private Predicate successUpdate;

    public BotApiMethodController() {}

    public BotApiMethodController( Predicate predicate,
                                   Function> process ) {
        this.successUpdate = predicate;
        this.processUpdate = process;
    }

    public Flux process( Update update ) {
        return successUpdate.test( update ) ? processUpdate.apply( update ) : null;
    }
}