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; } }