package net.techreadiness.batch.org;
import java.util.List;
import java.util.Map.Entry;
import javax.inject.Inject;
import net.techreadiness.batch.BaseItemWriter;
import net.techreadiness.service.ContactService;
import net.techreadiness.service.OrganizationService;
import net.techreadiness.service.ServiceContext;
import net.techreadiness.service.object.Contact;
import net.techreadiness.service.object.Org;
import org.apache.commons.lang3.StringUtils;
import org.springframework.batch.item.ItemWriter;
public class OrgWriter extends BaseItemWriter implements ItemWriter<OrgData> {
@Inject
private OrganizationService orgService;
@Inject
private ContactService contactService;
@Override
public void write(List<? extends OrgData> items) throws Exception {
ServiceContext context = getServiceContext();
for (OrgData orgData : items) {
Org org = orgService.addOrUpdate(context, orgData.getOrg());
contactService.deleteContactsForOrg(context, org.getOrgId());
for (Entry<String, Contact> entry : orgData.getContacts().entrySet()) {
if (entry.getKey().equalsIgnoreCase("primary") || entry.getKey().equalsIgnoreCase("secondary")
&& StringUtils.isNotBlank(entry.getValue().getName())) {
entry.getValue().setContactTypeCode(entry.getKey());
entry.getValue().setOrg(org);
contactService.add(context, entry.getValue());
}
}
}
}
}