package com.badoo.chateau.core.usecases.messages;
import android.support.annotation.NonNull;
import com.badoo.barf.data.repo.Repository;
import com.badoo.barf.usecase.UseCase;
import com.badoo.chateau.core.model.Message;
import com.badoo.chateau.core.repos.messages.MessageQueries.SendQuery;
import rx.Observable;
/**
* Use case for sending a new message
*/
@UseCase
public class SendMessage<M extends Message> {
private final Repository<? extends Message> mRepo;
public SendMessage(Repository<? extends Message> repo) {
mRepo = repo;
}
public Observable<Void> execute(@NonNull String conversationId, @NonNull M message) {
return mRepo.query(new SendQuery<>(conversationId, message))
.ignoreElements()
.cast(Void.class);
}
}