diff --git a/core/src/main/java/se/su/dsv/scipro/daisyExternal/http/DaisyAPI.java b/core/src/main/java/se/su/dsv/scipro/daisyExternal/http/DaisyAPI.java index 19c17dfa1b..af60d40470 100644 --- a/core/src/main/java/se/su/dsv/scipro/daisyExternal/http/DaisyAPI.java +++ b/core/src/main/java/se/su/dsv/scipro/daisyExternal/http/DaisyAPI.java @@ -6,7 +6,27 @@ import java.util.Date; import java.util.List; import java.util.Optional; import java.util.Set; -import se.su.dsv.scipro.io.dto.*; + +import se.su.dsv.scipro.io.dto.AddThesisAuthor; +import se.su.dsv.scipro.io.dto.AuthorProjectParticipant; +import se.su.dsv.scipro.io.dto.CourseRegistration; +import se.su.dsv.scipro.io.dto.Employee; +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.ProjectParticipant; +import se.su.dsv.scipro.io.dto.PublishingConsent; +import se.su.dsv.scipro.io.dto.PublishingConsentLevel; +import se.su.dsv.scipro.io.dto.ResearchArea; +import se.su.dsv.scipro.io.dto.ResearchSubject; +import se.su.dsv.scipro.io.dto.StudentProgramAdmission; +import se.su.dsv.scipro.io.dto.Thesis; +import se.su.dsv.scipro.io.dto.ThesisPublication; +import se.su.dsv.scipro.io.dto.ThesisRejection; +import se.su.dsv.scipro.io.dto.ThesisToBeCreated; +import se.su.dsv.scipro.io.dto.ThesisToBeUpdated; +import se.su.dsv.scipro.io.dto.Unit; +import se.su.dsv.scipro.io.dto.UserName; public interface DaisyAPI { Set<ProjectParticipant> getContributors(Integer projectId); diff --git a/core/src/main/java/se/su/dsv/scipro/daisyExternal/http/DaisyAPIImpl.java b/core/src/main/java/se/su/dsv/scipro/daisyExternal/http/DaisyAPIImpl.java index aa41073c08..e239ea3f9c 100755 --- a/core/src/main/java/se/su/dsv/scipro/daisyExternal/http/DaisyAPIImpl.java +++ b/core/src/main/java/se/su/dsv/scipro/daisyExternal/http/DaisyAPIImpl.java @@ -16,9 +16,34 @@ import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; import java.io.InputStream; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.Optional; +import java.util.Set; + import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature; -import se.su.dsv.scipro.io.dto.*; +import se.su.dsv.scipro.io.dto.AddThesisAuthor; +import se.su.dsv.scipro.io.dto.AuthorProjectParticipant; +import se.su.dsv.scipro.io.dto.CourseRegistration; +import se.su.dsv.scipro.io.dto.Employee; +import se.su.dsv.scipro.io.dto.ObjectFactory; +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.ProjectParticipant; +import se.su.dsv.scipro.io.dto.PublishingConsent; +import se.su.dsv.scipro.io.dto.PublishingConsentLevel; +import se.su.dsv.scipro.io.dto.ResearchArea; +import se.su.dsv.scipro.io.dto.ResearchSubject; +import se.su.dsv.scipro.io.dto.StudentProgramAdmission; +import se.su.dsv.scipro.io.dto.Thesis; +import se.su.dsv.scipro.io.dto.ThesisPublication; +import se.su.dsv.scipro.io.dto.ThesisRejection; +import se.su.dsv.scipro.io.dto.ThesisToBeCreated; +import se.su.dsv.scipro.io.dto.ThesisToBeUpdated; +import se.su.dsv.scipro.io.dto.Unit; +import se.su.dsv.scipro.io.dto.UserName; public class DaisyAPIImpl implements DaisyAPI { @@ -364,8 +389,7 @@ public class DaisyAPIImpl implements DaisyAPI { @Override public OrganisationalUnit orgunit(final int unitId) { return () -> - target() - .path("orgunit") + units() .path(Integer.toString(unitId)) .path("researchAreas") .request(MediaType.APPLICATION_XML_TYPE) diff --git a/core/src/main/xsd/daisy_api.xsd b/core/src/main/xsd/daisy_api.xsd index 806769ad48..301a0271da 100755 --- a/core/src/main/xsd/daisy_api.xsd +++ b/core/src/main/xsd/daisy_api.xsd @@ -1,7 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<xs:schema version="1.0" - - xmlns:xs="http://www.w3.org/2001/XMLSchema"> +<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="addThesisAuthor" type="addThesisAuthor"/> <xs:element name="courseRegistrationForCourse" type="courseRegistrationGet"/> @@ -62,6 +60,7 @@ <xs:element name="degree" type="degree"/> <xs:element name="programAdmission" type="programAdmission"/> <xs:element name="student" type="student"/> + <xs:complexType name="addThesisAuthor"> <xs:sequence> <xs:element name="student" type="AddThesisAuthorStudent" minOccurs="1"> diff --git a/daisy-integration/src/main/java/se/su/dsv/scipro/daisyExternal/impl/ImporterTransactionsImpl.java b/daisy-integration/src/main/java/se/su/dsv/scipro/daisyExternal/impl/ImporterTransactionsImpl.java index 395f5485ef..591f40dec0 100644 --- a/daisy-integration/src/main/java/se/su/dsv/scipro/daisyExternal/impl/ImporterTransactionsImpl.java +++ b/daisy-integration/src/main/java/se/su/dsv/scipro/daisyExternal/impl/ImporterTransactionsImpl.java @@ -4,22 +4,43 @@ import jakarta.inject.Inject; import jakarta.inject.Named; import jakarta.transaction.Transactional; import jakarta.ws.rs.core.Response; -import java.util.*; -import java.util.stream.Stream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import se.su.dsv.scipro.daisyExternal.ImporterTransactions; import se.su.dsv.scipro.daisyExternal.http.DaisyAPI; -import se.su.dsv.scipro.io.dto.*; +import se.su.dsv.scipro.io.dto.AuthorProjectParticipant; +import se.su.dsv.scipro.io.dto.Course; +import se.su.dsv.scipro.io.dto.CourseRegistration; +import se.su.dsv.scipro.io.dto.EducationalLevel; +import se.su.dsv.scipro.io.dto.Person; +import se.su.dsv.scipro.io.dto.ProgramType; import se.su.dsv.scipro.io.dto.ResearchArea; +import se.su.dsv.scipro.io.dto.StudentProgramAdmission; +import se.su.dsv.scipro.io.dto.Thesis; +import se.su.dsv.scipro.io.dto.UserName; import se.su.dsv.scipro.match.ProgramService; import se.su.dsv.scipro.project.Project; import se.su.dsv.scipro.project.ProjectService; import se.su.dsv.scipro.security.auth.roles.Roles; -import se.su.dsv.scipro.system.*; +import se.su.dsv.scipro.system.DegreeType; +import se.su.dsv.scipro.system.Language; import se.su.dsv.scipro.system.Program; +import se.su.dsv.scipro.system.ResearchAreaService; +import se.su.dsv.scipro.system.User; +import se.su.dsv.scipro.system.UserNameService; +import se.su.dsv.scipro.system.UserService; +import se.su.dsv.scipro.system.Username; import se.su.dsv.scipro.util.Pair; +import java.util.Comparator; +import java.util.EnumSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Stream; + @Named public class ImporterTransactionsImpl implements ImporterTransactions { diff --git a/daisy-integration/src/main/java/se/su/dsv/scipro/integration/daisy/workers/ProjectExporter.java b/daisy-integration/src/main/java/se/su/dsv/scipro/integration/daisy/workers/ProjectExporter.java index 3bd943ffca..8ca912dca2 100644 --- a/daisy-integration/src/main/java/se/su/dsv/scipro/integration/daisy/workers/ProjectExporter.java +++ b/daisy-integration/src/main/java/se/su/dsv/scipro/integration/daisy/workers/ProjectExporter.java @@ -1,19 +1,8 @@ package se.su.dsv.scipro.integration.daisy.workers; -import static com.querydsl.core.types.dsl.Expressions.anyOf; - import jakarta.inject.Inject; import jakarta.inject.Named; import jakarta.ws.rs.core.Response; -import java.time.Instant; -import java.time.Period; -import java.util.Calendar; -import java.util.Date; -import java.util.Optional; -import java.util.Set; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.stream.Stream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import se.su.dsv.scipro.daisyExternal.http.DaisyAPI; @@ -23,7 +12,15 @@ import se.su.dsv.scipro.finalseminar.FinalSeminarService; import se.su.dsv.scipro.finalthesis.FinalThesis; import se.su.dsv.scipro.finalthesis.FinalThesisService; import se.su.dsv.scipro.io.ExternalExporter; -import se.su.dsv.scipro.io.dto.*; +import se.su.dsv.scipro.io.dto.AuthorProjectParticipant; +import se.su.dsv.scipro.io.dto.Person; +import se.su.dsv.scipro.io.dto.ProjectParticipant; +import se.su.dsv.scipro.io.dto.ResearchAreaWithID; +import se.su.dsv.scipro.io.dto.ResearchAreas; +import se.su.dsv.scipro.io.dto.Role; +import se.su.dsv.scipro.io.dto.Thesis; +import se.su.dsv.scipro.io.dto.ThesisToBeUpdated; +import se.su.dsv.scipro.io.dto.UnitWithID; import se.su.dsv.scipro.io.exceptions.ExternalExportException; import se.su.dsv.scipro.io.facade.ExporterFacade; import se.su.dsv.scipro.project.Project; @@ -35,6 +32,18 @@ import se.su.dsv.scipro.system.DegreeType; import se.su.dsv.scipro.system.User; import se.su.dsv.scipro.workerthreads.AbstractWorker; +import java.time.Instant; +import java.time.Period; +import java.util.Calendar; +import java.util.Date; +import java.util.Optional; +import java.util.Set; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Stream; + +import static com.querydsl.core.types.dsl.Expressions.anyOf; + @Named public class ProjectExporter extends AbstractWorker { diff --git a/daisy-integration/src/main/java/se/su/dsv/scipro/io/impl/ExternalExporterDaisyImpl.java b/daisy-integration/src/main/java/se/su/dsv/scipro/io/impl/ExternalExporterDaisyImpl.java index 90aaca25c2..dd20dd1064 100755 --- a/daisy-integration/src/main/java/se/su/dsv/scipro/io/impl/ExternalExporterDaisyImpl.java +++ b/daisy-integration/src/main/java/se/su/dsv/scipro/io/impl/ExternalExporterDaisyImpl.java @@ -9,7 +9,17 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import se.su.dsv.scipro.daisyExternal.http.DaisyAPI; import se.su.dsv.scipro.io.ExternalExporter; -import se.su.dsv.scipro.io.dto.*; +import se.su.dsv.scipro.io.dto.AddThesisAuthor; +import se.su.dsv.scipro.io.dto.AddThesisAuthorCourse; +import se.su.dsv.scipro.io.dto.AddThesisAuthorStudent; +import se.su.dsv.scipro.io.dto.EducationalLevel; +import se.su.dsv.scipro.io.dto.Person; +import se.su.dsv.scipro.io.dto.ProjectParticipant; +import se.su.dsv.scipro.io.dto.ResearchAreaWithID; +import se.su.dsv.scipro.io.dto.ResearchAreas; +import se.su.dsv.scipro.io.dto.Role; +import se.su.dsv.scipro.io.dto.ThesisToBeCreated; +import se.su.dsv.scipro.io.dto.UnitWithID; import se.su.dsv.scipro.io.exceptions.ExternalExportException; import se.su.dsv.scipro.project.Project; import se.su.dsv.scipro.reusable.SciProUtilities; diff --git a/daisy-integration/src/test/java/se/su/dsv/scipro/integration/daisy/workers/ProjectExporterTest.java b/daisy-integration/src/test/java/se/su/dsv/scipro/integration/daisy/workers/ProjectExporterTest.java index 1cfcf78361..570bbfa9f1 100644 --- a/daisy-integration/src/test/java/se/su/dsv/scipro/integration/daisy/workers/ProjectExporterTest.java +++ b/daisy-integration/src/test/java/se/su/dsv/scipro/integration/daisy/workers/ProjectExporterTest.java @@ -18,7 +18,12 @@ import se.su.dsv.scipro.daisyExternal.http.DaisyAPI; import se.su.dsv.scipro.finalseminar.FinalSeminarService; import se.su.dsv.scipro.finalthesis.FinalThesisService; import se.su.dsv.scipro.io.ExternalExporter; -import se.su.dsv.scipro.io.dto.*; +import se.su.dsv.scipro.io.dto.AuthorProjectParticipant; +import se.su.dsv.scipro.io.dto.Person; +import se.su.dsv.scipro.io.dto.ProjectParticipant; +import se.su.dsv.scipro.io.dto.Role; +import se.su.dsv.scipro.io.dto.Thesis; +import se.su.dsv.scipro.io.dto.ThesisToBeUpdated; import se.su.dsv.scipro.io.facade.ExporterFacade; import se.su.dsv.scipro.project.Project; import se.su.dsv.scipro.project.ProjectRepo;