Skip to content

Commit

Permalink
Merge pull request #80 from abes-esr/develop
Browse files Browse the repository at this point in the history
Merge develop dans main
  • Loading branch information
SamuelQuetin authored Nov 6, 2024
2 parents c7d7bb4 + f169649 commit 1c97cb8
Show file tree
Hide file tree
Showing 4 changed files with 95 additions and 34 deletions.
24 changes: 2 additions & 22 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.4</version>
<version>3.2.8</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>fr.abes</groupId>
Expand Down Expand Up @@ -164,30 +164,10 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--TU Kafka-->
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka-test</artifactId>
<exclusions>
<exclusion>
<groupId>org.scala-lang.modules</groupId>
<artifactId>scala-collection-compat_2.13</artifactId>
</exclusion>
<exclusion>
<groupId>com.typesafe.scala-logging</groupId>
<artifactId>scala-logging_2.13</artifactId>
</exclusion>
<exclusion>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
</exclusion>
</exclusions>
<scope>test</scope>
</dependency>
<dependency>
<groupId>fr.abes.api-communes</groupId>
<artifactId>AccesCbs</artifactId>
<version>2.5.64</version>
<version>2.5.75</version>
<scope>compile</scope>
</dependency>

Expand Down
6 changes: 3 additions & 3 deletions src/main/java/fr/abes/kafkatosudoc/kafka/KbartListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -418,7 +418,7 @@ private void creerNoticeExNihilo(LigneKbartConnect ligneKbartConnect, String pro
try {
log.debug("erreur de communication avec le Sudoc, tentative de reconnexion");
service.disconnect();
service.authenticate(serveurSudoc, portSudoc, loginSudoc, passwordSudoc);
service.authenticateBaseSignal(serveurSudoc, portSudoc, loginSudoc, passwordSudoc, signalDb);
} catch (CBSException | IOException ex) {
log.error(ex.getMessage());
}
Expand Down Expand Up @@ -454,7 +454,7 @@ public void listenKbartFromKafkaImprime(ConsumerRecord<String, LigneKbartImprime
SudocService service = new SudocService();
try {
//authentification sur la base maitre du sudoc pour récupérer la notice imprimée
service.authenticate(serveurSudoc, portSudoc, loginSudoc, passwordSudoc);
service.authenticateBaseSignal(serveurSudoc, portSudoc, loginSudoc, passwordSudoc, signalDb);
if (this.workInProgressMapImprime.get(filename).getListeNotices() != null && !this.workInProgressMapImprime.get(filename).getListeNotices().isEmpty()) {
for (LigneKbartImprime ligneKbartImprime : this.workInProgressMapImprime.get(filename).getListeNotices()) {
creerNoticeAPartirImprime(ligneKbartImprime, provider, filename, service);
Expand All @@ -466,7 +466,7 @@ public void listenKbartFromKafkaImprime(ConsumerRecord<String, LigneKbartImprime
try {
log.debug("erreur de communication avec le Sudoc, tentative de reconnexion");
service.disconnect();
service.authenticate(serveurSudoc, portSudoc, loginSudoc, passwordSudoc);
service.authenticateBaseSignal(serveurSudoc, portSudoc, loginSudoc, passwordSudoc, signalDb);
} catch (CBSException | IOException ex) {
log.error(ex.getMessage());
}
Expand Down
48 changes: 42 additions & 6 deletions src/main/java/fr/abes/kafkatosudoc/utils/NoticeMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -275,25 +275,61 @@ public NoticeConcrete convert(MappingContext<KbartAndImprimeDto, NoticeConcrete>
else
noticeElec.addZone("371", "$a", "Accès en ligne réservé aux établissements ou bibliothèques ayant souscrit l'abonnement", new char[]{'0', '#'});

noticeElec.addZone("452", "$0", kbart.getPpn().toString(), new char[]{'#', '#'});
noticeElec.addZone("452", "$5", kbart.getPpn().toString(), new char[]{'#', '#'});

Zone zone454 = noticeImprimee.getNoticeBiblio().findZone("454", 0);
if (zone454 != null) {
if (zone454 != null && zone454.findSubLabel("$0") == null) {
String zone454dollart = zone454.findSubLabel("$t");
if (zone454dollart != null)
noticeElec.addZone("454", "$t", zone454dollart, new char[]{'#', '#'});
}
//zone 5XX sauf 579, 512 et 516
List<Zone> zones500 = noticeImprimee.getNoticeBiblio().getListeZones().values().stream().filter(zone -> zone.getLabel().startsWith("5")).filter(zone -> (!zone.getLabel().equals("579") && !zone.getLabel().equals("512") && !zone.getLabel().equals("516"))).toList();
for (Zone zone1 : zones500) {
if (zone1.findSubLabel("$3") != null) {
zone1.addSubLabel("$5", zone1.findSubLabel("$3"));
zone1.deleteSubLabel("$3");
}
}
zones500.forEach(noticeElec::addZone);

List<Zone> zones600 = noticeImprimee.getNoticeBiblio().getListeZones().values().stream().filter(zone -> zone.getLabel().startsWith("6")).toList();
for (Zone zone1 : zones600) {
if (zone1.findSubLabel("$3") != null) {
zone1.addSubLabel("$5", zone1.findSubLabel("$3"));
zone1.deleteSubLabel("$3");
}
}
zones600.forEach(noticeElec::addZone);

noticeImprimee.getNoticeBiblio().findZones("700").forEach(noticeElec::addZone);
noticeImprimee.getNoticeBiblio().findZones("701").forEach(noticeElec::addZone);
noticeImprimee.getNoticeBiblio().findZones("710").forEach(noticeElec::addZone);
noticeImprimee.getNoticeBiblio().findZones("711").forEach(noticeElec::addZone);
for (Zone zone700 : noticeImprimee.getNoticeBiblio().findZones("700")) {
if (zone700.findSubLabel("$3") != null) {
zone700.addSubLabel("$5", zone700.findSubLabel("$3"));
zone700.deleteSubLabel("$3");
}
noticeElec.addZone(zone700);
}
for (Zone zone701 : noticeImprimee.getNoticeBiblio().findZones("701")) {
if (zone701.findSubLabel("$3") != null) {
zone701.addSubLabel("$5", zone701.findSubLabel("$3"));
zone701.deleteSubLabel("$3");
}
noticeElec.addZone(zone701);
}
for (Zone zone710 : noticeImprimee.getNoticeBiblio().findZones("710")) {
if (zone710.findSubLabel("$3") != null) {
zone710.addSubLabel("$5", zone710.findSubLabel("$3"));
zone710.deleteSubLabel("$3");
}
noticeElec.addZone(zone710);
}
for (Zone zone711 : noticeImprimee.getNoticeBiblio().findZones("711")) {
if (zone711.findSubLabel("$3") != null) {
zone711.addSubLabel("$5", zone711.findSubLabel("$3"));
zone711.deleteSubLabel("$3");
}
noticeElec.addZone(zone711);
}

//url d'accès
if (kbart.getTitleUrl() != null)
Expand Down
51 changes: 48 additions & 3 deletions src/test/java/fr/abes/kafkatosudoc/utils/NoticeMapperTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ void testMapperNoticeFromKbartCas2() {
Assertions.assertEquals("0-415-11262-8", biblio.findZones("010").get(0).findSubLabel("$a"));

//controle note sur les conditions d'accès
Assertions.assertEquals("Accès en ligne réservé aux établissements ou bibliothèques qui en ont fait l'acquisition", biblio.findZones("371").get(0).findSubLabel("$a"));
Assertions.assertEquals("Accès en ligne réservé aux établissements ou bibliothèques ayant souscrit l'abonnement", biblio.findZones("371").get(0).findSubLabel("$a"));
Assertions.assertEquals('0', biblio.findZones("371").get(0).getIndicateurs()[0]);
Assertions.assertEquals('#', biblio.findZones("371").get(0).getIndicateurs()[1]);
}
Expand Down Expand Up @@ -187,8 +187,8 @@ void testMapperNoticeFromKbartAndImprimeMin() throws ZoneException {
Assertions.assertEquals("ceb", biblio.findZone("183", 0).findSubLabel("$a"));
Assertions.assertEquals("Titre notice", biblio.findZone("200", 0).findSubLabel("$a"));
Assertions.assertEquals("[Lieu de publication inconnu]", biblio.findZone("214", 0).findSubLabel("$a"));
Assertions.assertEquals("Accès en ligne réservé aux établissements ou bibliothèques qui en ont fait l'acquisition", biblio.findZone("371", 0).findSubLabel("$a"));
Assertions.assertEquals("123456789", biblio.findZone("452", 0).findSubLabel("$0"));
Assertions.assertEquals("Accès en ligne réservé aux établissements ou bibliothèques ayant souscrit l'abonnement", biblio.findZone("371", 0).findSubLabel("$a"));
Assertions.assertEquals("123456789", biblio.findZone("452", 0).findSubLabel("$5"));
Assertions.assertEquals("http://www.test.com/", biblio.findZone("859", 0).findSubLabel("$u"));
}

Expand All @@ -208,6 +208,51 @@ void testMapperNoticeFromKbartAndImprimeCas0() throws ZoneException {
Assertions.assertEquals(14, biblio.getListeZones().size());
}

@Test
@DisplayName("Test création notice from Kbart & notice imprimée cas 0 : ajout isbn ")
void testMapperNoticeFromKbartAndImprimeZones500() throws ZoneException {
KbartAndImprimeDto kbartAndImprimeDto = getKbartAndImprimeDto();
Zone zone500 = new Zone("500", TYPE_NOTICE.BIBLIOGRAPHIQUE);
zone500.addSubLabel("$3", "test");
zone500.addSubLabel("$k", "testk");
kbartAndImprimeDto.getNotice().getNoticeBiblio().addZone(zone500);

NoticeConcrete noticeResult = mapper.map(kbartAndImprimeDto, NoticeConcrete.class);
Biblio biblio = noticeResult.getNoticeBiblio();
Assertions.assertEquals(16, biblio.getListeZones().size());
Assertions.assertEquals("0-415-11262-8", biblio.findZone("010", 0).findSubLabel("$a"));
Assertions.assertEquals("test", biblio.findZone("500", 0).findSubLabel("$5"));
Assertions.assertEquals("testk", biblio.findZone("500", 0).findSubLabel("$k"));
Assertions.assertNull(biblio.findZone("500", 0).findSubLabel("$3"));

kbartAndImprimeDto.getKbart().setOnlineIdentifier(null);
noticeResult = mapper.map(kbartAndImprimeDto, NoticeConcrete.class);
biblio = noticeResult.getNoticeBiblio();
Assertions.assertEquals(15, biblio.getListeZones().size());
}

@Test
@DisplayName("Test création notice from Kbart & notice imprimée cas 0 : ajout isbn ")
void testMapperNoticeFromKbartAndImprimeZones454() throws ZoneException {
KbartAndImprimeDto kbartAndImprimeDto = getKbartAndImprimeDto();
Zone zone454 = new Zone("454", TYPE_NOTICE.BIBLIOGRAPHIQUE);
zone454.addSubLabel("$t", "test");
kbartAndImprimeDto.getNotice().getNoticeBiblio().addZone(zone454);

NoticeConcrete noticeResult = mapper.map(kbartAndImprimeDto, NoticeConcrete.class);
Biblio biblio = noticeResult.getNoticeBiblio();
Assertions.assertEquals(16, biblio.getListeZones().size());
Assertions.assertEquals("0-415-11262-8", biblio.findZone("010", 0).findSubLabel("$a"));
Assertions.assertEquals("test", biblio.findZone("454", 0).findSubLabel("$t"));

kbartAndImprimeDto.getNotice().getNoticeBiblio().findZone("454", 0).addSubLabel("$0", "test");
noticeResult = mapper.map(kbartAndImprimeDto, NoticeConcrete.class);
biblio = noticeResult.getNoticeBiblio();
Assertions.assertEquals(15, biblio.getListeZones().size());
Assertions.assertEquals("0-415-11262-8", biblio.findZone("010", 0).findSubLabel("$a"));
Assertions.assertNull(biblio.findZone("454", 0));
}

@Test
@DisplayName("Test création notice from Kbart & notice imprimée cas 1 : ajout doi ")
void testMapperNoticeFromKbartAndImprimeCas1() throws ZoneException {
Expand Down

0 comments on commit 1c97cb8

Please sign in to comment.