UpdateOrgMembershipJob.java
package edu.ucsb.cs156.frontiers.jobs;
import edu.ucsb.cs156.frontiers.entities.Course;
import edu.ucsb.cs156.frontiers.entities.RosterStudent;
import edu.ucsb.cs156.frontiers.enums.OrgStatus;
import edu.ucsb.cs156.frontiers.models.OrgMember;
import edu.ucsb.cs156.frontiers.repositories.RosterStudentRepository;
import edu.ucsb.cs156.frontiers.services.OrganizationMemberService;
import edu.ucsb.cs156.frontiers.services.jobs.JobContext;
import edu.ucsb.cs156.frontiers.services.jobs.JobContextConsumer;
import java.util.Optional;
import lombok.Builder;
@Builder
public class UpdateOrgMembershipJob implements JobContextConsumer {
Course course;
OrganizationMemberService organizationMemberService;
RosterStudentRepository rosterStudentRepository;
@Override
public void accept(JobContext ctx) throws Exception {
ctx.log("Processing...");
Iterable<OrgMember> members = organizationMemberService.getOrganizationMembers(course);
for (OrgMember member : members) {
Optional<RosterStudent> student =
rosterStudentRepository.findByCourseAndGithubId(course, member.getGithubId());
if (student.isPresent()) {
RosterStudent foundStudent = student.get();
foundStudent.setOrgStatus(OrgStatus.MEMBER);
rosterStudentRepository.save(foundStudent);
}
}
ctx.log("Done");
}
}