package ua.kpi.ecampus.rx;
import java.util.List;
import rx.Observable;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
import ua.kpi.ecampus.api.service.BulletinService;
import ua.kpi.ecampus.api.service.ServiceCreator;
import ua.kpi.ecampus.model.pojo.Bulletin;
import ua.kpi.ecampus.model.pojo.User;
/**
* This class responsible for producing responses for the BulletinBoard.
* <p>
* Created by Administrator on 24.03.2016.
*/
public class BulletinResponseManager {
/**
* Create observable which implements service request.
*
* @param lastId ID of the last existing bulletin.
* @param limit limit number of bulletins.
* @return observable.
*/
public Observable<List<Bulletin>> getResponse(int lastId, int limit) {
BulletinService service = ServiceCreator.createService
(BulletinService.class);
Observable<List<Bulletin>> observable = getRequest(service, limit,
lastId);
observable
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<List<Bulletin>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
//if (e != null)
//Log.e(Config.LOG, e.getMessage());
}
@Override
public void onNext(List<Bulletin> bulletins) {
// Log.d(Config.LOG, bulletins.size() + " loaded " +
// "successful");
}
});
return observable;
}
/**
* Returns service request.
*
* @param service
* @param limit
* @param lastId
* @return service request
*/
protected Observable<List<Bulletin>> getRequest(BulletinService service,
int limit, int lastId) {
return service.getBulletins("bearer " + User.getInstance().token,
limit, lastId);
}
}