1684 Sync all research areas
This commit is contained in:
parent
958aede17b
commit
71ab3ab4eb
core/src
main/java/se/su/dsv/scipro
daisyExternal
system
test/java/se/su/dsv/scipro/system
daisy-integration/src
main/java/se/su/dsv/scipro/integration/daisy/workers
test/java/se/su/dsv/scipro/integration/daisy/workers
@ -71,4 +71,6 @@ public interface DaisyAPI {
|
||||
List<CourseRegistration> getCourseRegistrationsForStudent(int studentId);
|
||||
|
||||
List<Employee> listEmployees(int departmentId);
|
||||
|
||||
OrganisationalUnit orgunit(int unitId);
|
||||
}
|
||||
|
@ -410,6 +410,16 @@ public class DaisyAPIImpl implements DaisyAPI {
|
||||
.get(new GenericType<>(){});
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrganisationalUnit orgunit(final int unitId) {
|
||||
return () -> target()
|
||||
.path("orgunit")
|
||||
.path(Integer.toString(unitId))
|
||||
.path("researchAreas")
|
||||
.request(MediaType.APPLICATION_JSON_TYPE)
|
||||
.get(new GenericType<>(){});
|
||||
}
|
||||
|
||||
private WebTarget program() {
|
||||
return target()
|
||||
.path(PROGRAM);
|
||||
|
@ -0,0 +1,9 @@
|
||||
package se.su.dsv.scipro.daisyExternal.http;
|
||||
|
||||
import se.su.dsv.scipro.io.dto.ResearchArea;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface OrganisationalUnit {
|
||||
List<ResearchArea> getResearchAreas();
|
||||
}
|
@ -168,7 +168,7 @@ public class ImporterTransactionsImpl implements ImporterTransactions {
|
||||
.collect(Collectors.toList());
|
||||
for (ResearchArea daisyResearchArea : researchAreas) {
|
||||
se.su.dsv.scipro.system.ResearchArea researchArea =
|
||||
researchAreaService.updateExternalResearchArea(daisyResearchArea.getId(), daisyResearchArea.getNameEn());
|
||||
researchAreaService.updateExternalResearchArea(daisyResearchArea.getId(), daisyResearchArea.getNameEn(), daisyResearchArea.isActive());
|
||||
employee.addResearchArea(researchArea);
|
||||
}
|
||||
employee.getResearchAreas()
|
||||
|
@ -4,5 +4,5 @@ import java.util.List;
|
||||
|
||||
public interface ResearchAreaService extends GenericService<ResearchArea, Long> {
|
||||
List<ResearchArea> findNotDeleted();
|
||||
ResearchArea updateExternalResearchArea(Long id, String name);
|
||||
ResearchArea updateExternalResearchArea(Long id, String name, boolean active);
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ public class ResearchAreaServiceImpl extends AbstractServiceImpl<ResearchArea,Lo
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResearchArea updateExternalResearchArea(Long identifier, String name) {
|
||||
public ResearchArea updateExternalResearchArea(Long identifier, String name, final boolean active) {
|
||||
ResearchArea ra = new ResearchArea();
|
||||
if (identifier != null) {
|
||||
ResearchArea existing = findOne(QResearchArea.researchArea.identifier.eq(identifier));
|
||||
@ -25,6 +25,7 @@ public class ResearchAreaServiceImpl extends AbstractServiceImpl<ResearchArea,Lo
|
||||
}
|
||||
}
|
||||
ra.setTitle(name);
|
||||
ra.setDeleted(!active);
|
||||
return save(ra);
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@ public class ResearchAreaServiceImplIntegrationTest extends IntegrationTest {
|
||||
Long identifier = 1L;
|
||||
ResearchArea researchArea = createResearchArea(identifier, "Some title");
|
||||
|
||||
ResearchArea created = researchAreaService.updateExternalResearchArea(researchArea.getIdentifier(), researchArea.getTitle());
|
||||
ResearchArea created = researchAreaService.updateExternalResearchArea(researchArea.getIdentifier(), researchArea.getTitle(), !researchArea.isDeleted());
|
||||
assertEquals(1, researchAreaService.count());
|
||||
assertNotNull(created);
|
||||
assertNotNull(created.getId());
|
||||
@ -35,7 +35,7 @@ public class ResearchAreaServiceImplIntegrationTest extends IntegrationTest {
|
||||
|
||||
String title = "New title";
|
||||
|
||||
ResearchArea updated = researchAreaService.updateExternalResearchArea(old.getIdentifier(), title);
|
||||
ResearchArea updated = researchAreaService.updateExternalResearchArea(old.getIdentifier(), title, !old.isDeleted());
|
||||
|
||||
assertEquals(title, updated.getTitle());
|
||||
assertEquals(1, researchAreaService.count());
|
||||
|
@ -12,9 +12,11 @@ import se.su.dsv.scipro.daisyExternal.http.Semester;
|
||||
import se.su.dsv.scipro.io.dto.Person;
|
||||
import se.su.dsv.scipro.io.dto.Program;
|
||||
import se.su.dsv.scipro.io.dto.ProgramAdmission;
|
||||
import se.su.dsv.scipro.io.dto.ResearchArea;
|
||||
import se.su.dsv.scipro.io.dto.Thesis;
|
||||
import se.su.dsv.scipro.match.ProgramService;
|
||||
import se.su.dsv.scipro.system.MergeService;
|
||||
import se.su.dsv.scipro.system.ResearchAreaService;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.system.UserService;
|
||||
import se.su.dsv.scipro.system.Username;
|
||||
@ -40,6 +42,7 @@ public class UserImportWorker extends AbstractWorker {
|
||||
private final MergeService mergeService;
|
||||
private final ProgramService programService;
|
||||
private final Provider<EntityManager> entityManagerProvider;
|
||||
private final ResearchAreaService researchAreaService;
|
||||
|
||||
@Inject
|
||||
public UserImportWorker(DaisyAPI daisyAPI,
|
||||
@ -49,7 +52,9 @@ public class UserImportWorker extends AbstractWorker {
|
||||
final MergeService mergeService,
|
||||
UserService userService,
|
||||
ProgramService programService,
|
||||
Provider<EntityManager> entityManagerProvider) {
|
||||
Provider<EntityManager> entityManagerProvider,
|
||||
final ResearchAreaService researchAreaService)
|
||||
{
|
||||
this.daisyAPI = daisyAPI;
|
||||
this.importerTransactions = importerTransactions;
|
||||
this.externalImporter = externalImporter;
|
||||
@ -58,6 +63,7 @@ public class UserImportWorker extends AbstractWorker {
|
||||
this.mergeService = mergeService;
|
||||
this.programService = programService;
|
||||
this.entityManagerProvider = entityManagerProvider;
|
||||
this.researchAreaService = researchAreaService;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -67,6 +73,7 @@ public class UserImportWorker extends AbstractWorker {
|
||||
LOGGER.info("Starting execution for scheduled remote user import of all remote supervisors");
|
||||
|
||||
final Map<Integer, Program> programCache = new HashMap<>();
|
||||
importResearchAreas();
|
||||
importUserDetails(programCache);
|
||||
importSupervisors(programCache);
|
||||
importSupervisorUnits();
|
||||
@ -81,6 +88,15 @@ public class UserImportWorker extends AbstractWorker {
|
||||
executionTimeSecs % 60);
|
||||
}
|
||||
|
||||
private void importResearchAreas() {
|
||||
List<ResearchArea> daisyResearchAreas = daisyAPI
|
||||
.orgunit(DSV)
|
||||
.getResearchAreas();
|
||||
for (ResearchArea daisyResearchArea : daisyResearchAreas) {
|
||||
researchAreaService.updateExternalResearchArea(daisyResearchArea.getId(), daisyResearchArea.getName(), daisyResearchArea.isActive());
|
||||
}
|
||||
}
|
||||
|
||||
private void importUserDetails(final Map<Integer, Program> programCache) {
|
||||
for (final User user : userService.findAll()) {
|
||||
if (user.getIdentifier() != null) {
|
||||
|
15
daisy-integration/src/test/java/se/su/dsv/scipro/integration/daisy/workers/UserImportWorkerTest.java
15
daisy-integration/src/test/java/se/su/dsv/scipro/integration/daisy/workers/UserImportWorkerTest.java
@ -13,6 +13,7 @@ import se.su.dsv.scipro.io.dto.Person;
|
||||
import se.su.dsv.scipro.io.dto.Thesis;
|
||||
import se.su.dsv.scipro.match.ProgramService;
|
||||
import se.su.dsv.scipro.system.MergeService;
|
||||
import se.su.dsv.scipro.system.ResearchAreaService;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.system.UserService;
|
||||
|
||||
@ -39,13 +40,25 @@ public class UserImportWorkerTest {
|
||||
private ProgramService programService;
|
||||
@Mock
|
||||
private EntityManager entityManager;
|
||||
@Mock
|
||||
private ResearchAreaService researchAreaService;
|
||||
|
||||
private UserImportWorker worker;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
when(userService.findAll()).thenReturn(Collections.emptyList());
|
||||
worker = new UserImportWorker(daisyAPI, importerTransactions, externalImporter, NoopTracerFactory.create(), mergeService, userService, programService, () -> entityManager);
|
||||
when(daisyAPI.orgunit(anyInt())).thenReturn(Collections::emptyList);
|
||||
worker = new UserImportWorker(
|
||||
daisyAPI,
|
||||
importerTransactions,
|
||||
externalImporter,
|
||||
NoopTracerFactory.create(),
|
||||
mergeService,
|
||||
userService,
|
||||
programService,
|
||||
() -> entityManager,
|
||||
researchAreaService);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Loading…
x
Reference in New Issue
Block a user