From 4b598601e46380a4c41357164ce8de194869b569 Mon Sep 17 00:00:00 2001
From: Arthur Suzuki <arthur.suzuki@biblibre.com>
Date: Mon, 26 Jun 2023 09:50:39 +0000
Subject: [PATCH] hotline#180669 : Artecampus imports note field in 300$a

---
 VERSIONS_HOTLINE/180669                                    | 1 +
 library/Class/Album.php                                    | 1 +
 library/digital_resources/ArteCampus/Service/Program.php   | 4 +++-
 .../digital_resources/ArteCampus/tests/ArteCampusTest.php  | 7 +++++++
 library/digital_resources/ArteCampus/tests/fixture.json    | 1 +
 library/digital_resources/Bacon/Service/Parser.php         | 2 +-
 6 files changed, 14 insertions(+), 2 deletions(-)
 create mode 100644 VERSIONS_HOTLINE/180669

diff --git a/VERSIONS_HOTLINE/180669 b/VERSIONS_HOTLINE/180669
new file mode 100644
index 00000000000..e10ceec4b94
--- /dev/null
+++ b/VERSIONS_HOTLINE/180669
@@ -0,0 +1 @@
+ - correctif #180669 : Connecteur Arte Campus : le champ Note est désormais importé en 300$a.
\ No newline at end of file
diff --git a/library/Class/Album.php b/library/Class/Album.php
index 914e9501e7c..f77de423786 100644
--- a/library/Class/Album.php
+++ b/library/Class/Album.php
@@ -80,6 +80,7 @@ class Class_Album extends Storm_Model_Abstract {
   const EDITOR_FIELD = '210';
   const COLLECTION_FIELD = '225';
   const DISTRIBUTOR_FIELD = '306$a';
+  const NOTE_FIELD = '300$a';
   const THUMB_PREFIX = 'thumb_';
 
   const STATUS_DRAFT = 1;
diff --git a/library/digital_resources/ArteCampus/Service/Program.php b/library/digital_resources/ArteCampus/Service/Program.php
index 47a823ff3fc..09be214e178 100644
--- a/library/digital_resources/ArteCampus/Service/Program.php
+++ b/library/digital_resources/ArteCampus/Service/Program.php
@@ -27,6 +27,7 @@ class ArteCampus_Service_Program extends Class_WebService_BibNumerique_Ressource
 
   protected
     $_directors = [],
+    $_note,
     $_status;
 
 
@@ -51,7 +52,7 @@ class ArteCampus_Service_Program extends Class_WebService_BibNumerique_Ressource
       $this->addTag($version['language']);
 
     $this->_status = $json['status'];
-
+    $this->_note = $json['editorial']['note'] ?? '';
     return $this;
   }
 
@@ -63,6 +64,7 @@ class ArteCampus_Service_Program extends Class_WebService_BibNumerique_Ressource
 
   public function fillAlbum(Class_Album $album) : self {
     $album->setVisible(true)
+          ->addNote(Class_Album::NOTE_FIELD, $this->_note)
           ->setTypeDocId(ArteCampus_Config::getInstance()->getDocType())
           ->getMarc()->clearZone('856');
 
diff --git a/library/digital_resources/ArteCampus/tests/ArteCampusTest.php b/library/digital_resources/ArteCampus/tests/ArteCampusTest.php
index ee10e393c2a..c173a8cbdbd 100644
--- a/library/digital_resources/ArteCampus/tests/ArteCampusTest.php
+++ b/library/digital_resources/ArteCampus/tests/ArteCampusTest.php
@@ -322,6 +322,13 @@ class ArteCampusHarvestAlbumCreationTest extends ModelTestCase {
     $this->assertTrue($index_200a < $index_200e,
                       sprintf('200$a : %s , 200$e : %s', $index_200a, $index_200e));
   }
+
+
+  /** @test */
+  public function field300DollarAShouldContainsKarambolageEstUneSuperEmission() {
+    $this->assertEquals("Karambolage est une super émission!",
+                        $this->_album->getNote(Class_Album::NOTE_FIELD));
+  }
 }
 
 
diff --git a/library/digital_resources/ArteCampus/tests/fixture.json b/library/digital_resources/ArteCampus/tests/fixture.json
index cc14824a359..0a643059b85 100644
--- a/library/digital_resources/ArteCampus/tests/fixture.json
+++ b/library/digital_resources/ArteCampus/tests/fixture.json
@@ -70,6 +70,7 @@
         "Économie",
         "Science politique"
       ],
+      "note":"Karambolage est une super émission!",
       "scolarshipLevels": [],
 	"keywords": [
 	    "hamburger",
diff --git a/library/digital_resources/Bacon/Service/Parser.php b/library/digital_resources/Bacon/Service/Parser.php
index 1a2f12b41e2..77aae73ed61 100644
--- a/library/digital_resources/Bacon/Service/Parser.php
+++ b/library/digital_resources/Bacon/Service/Parser.php
@@ -149,7 +149,7 @@ class Bacon_Service_Parser {
 
 
   public function endNotes($data) {
-    $this->_current_album->addNote('300$a', $data);
+    $this->_current_album->addNote(Class_Album::NOTE_FIELD, $data);
   }
 
 
-- 
GitLab