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.MessageDataSource.LoadResult;
import com.badoo.chateau.core.repos.messages.MessageQueries.LoadQuery;
import rx.Observable;
@UseCase
public class LoadMessages<M extends Message> {
private final Repository<M> mRepo;
public LoadMessages(Repository<M> repo) {
mRepo = repo;
}
public Observable<LoadResult<M>> all(@NonNull String conversationId) {
return mRepo.query(new LoadQuery<>(conversationId, LoadQuery.Type.ALL, null, null));
}
public Observable<LoadResult<M>> older(@NonNull String conversationId) {
return mRepo.query(new LoadQuery<>(conversationId, LoadQuery.Type.OLDER, null, null));
}
public Observable<LoadResult<M>> newer(@NonNull String conversationId) {
return mRepo.query(new LoadQuery<>(conversationId, LoadQuery.Type.NEWER, null, null));
}
}