package com.ushahidi.platform.mobile.app.data.repository.datasource.formattribute;
import com.ushahidi.platform.mobile.app.data.api.FormAttributeApi;
import com.ushahidi.platform.mobile.app.data.database.FormAttributeDatabaseHelper;
import com.ushahidi.platform.mobile.app.data.entity.FormAttributeEntity;
import android.support.annotation.NonNull;
import java.util.ArrayList;
import java.util.List;
import rx.Observable;
/**
* @author Ushahidi Team <team@ushahidi.com>
*/
public class FormAttributeApiDataSource implements FormAttributeDataSource {
private final FormAttributeDatabaseHelper mFormAttributeDatabaseHelper;
private FormAttributeApi mFormAttributeApi;
public FormAttributeApiDataSource(@NonNull FormAttributeApi formAttributeApi,
@NonNull FormAttributeDatabaseHelper formAttributeDatabaseHelper) {
mFormAttributeApi = formAttributeApi;
mFormAttributeDatabaseHelper = formAttributeDatabaseHelper;
}
@Override
public Observable<List<FormAttributeEntity>> getFormAttributes(Long deploymentId, Long formId) {
return mFormAttributeApi.getFormAttributes(formId).doOnNext(
formsAttributes -> mFormAttributeDatabaseHelper
.put(setFormAttributeEntity(formsAttributes, deploymentId, formId)));
}
private List<FormAttributeEntity> setFormAttributeEntity(
List<FormAttributeEntity> formAttributeEntityList,
Long deploymentId, Long formId) {
List<FormAttributeEntity> formAttributeList = new ArrayList<>();
for (FormAttributeEntity formAttributeEntity : formAttributeEntityList) {
formAttributeEntity.setDeploymentId(deploymentId);
formAttributeEntity.setFormId(formId);
formAttributeList.add(formAttributeEntity);
}
return formAttributeList;
}
}