From 4f1f1e9b01721d369c266f336458f2af13de73ac Mon Sep 17 00:00:00 2001 From: thanhz Date: Tue, 23 Jan 2024 10:18:21 +0000 Subject: [PATCH] TDR-3690 Add File UUID to the filemetadata table (#734) To be included in bagit export --- .../tdr/api/service/FileMetadataService.scala | 2 +- .../gov/nationalarchives/tdr/api/service/FileService.scala | 1 + src/test/resources/application.conf | 2 +- src/test/resources/json/getconsignment_data_all.json | 4 ++++ .../gov/nationalarchives/tdr/api/routes/FileRouteSpec.scala | 6 +++--- .../tdr/api/service/FileMetadataServiceSpec.scala | 1 + .../nationalarchives/tdr/api/service/FileServiceSpec.scala | 6 +++--- .../uk/gov/nationalarchives/tdr/api/utils/TestUtils.scala | 2 +- 8 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/main/scala/uk/gov/nationalarchives/tdr/api/service/FileMetadataService.scala b/src/main/scala/uk/gov/nationalarchives/tdr/api/service/FileMetadataService.scala index b14136124..49877b8df 100644 --- a/src/main/scala/uk/gov/nationalarchives/tdr/api/service/FileMetadataService.scala +++ b/src/main/scala/uk/gov/nationalarchives/tdr/api/service/FileMetadataService.scala @@ -134,6 +134,7 @@ object FileMetadataService { val ClientSideFileSize = "ClientSideFileSize" val ClosurePeriod = "ClosurePeriod" val ClosureStartDate = "ClosureStartDate" + val FileUUID = "UUID" val Filename = "Filename" val FileType = "FileType" val FileReference = "FileReference" @@ -144,7 +145,6 @@ object FileMetadataService { val ClosureType = "ClosureType" val Description = "description" val DescriptionAlternate = "DescriptionAlternate" - val RightsCopyright = "RightsCopyright" val LegalStatus = "LegalStatus" val HeldBy = "HeldBy" diff --git a/src/main/scala/uk/gov/nationalarchives/tdr/api/service/FileService.scala b/src/main/scala/uk/gov/nationalarchives/tdr/api/service/FileService.scala index e570e5627..e8490c0fa 100644 --- a/src/main/scala/uk/gov/nationalarchives/tdr/api/service/FileService.scala +++ b/src/main/scala/uk/gov/nationalarchives/tdr/api/service/FileService.scala @@ -71,6 +71,7 @@ class FileService( ) val commonMetadataRows = List( + row(fileId, fileId.toString, FileUUID), row(fileId, path, ClientSideOriginalFilepath), row(fileId, treeNode.treeNodeType, FileType), row(fileId, treeNode.name, Filename), diff --git a/src/test/resources/application.conf b/src/test/resources/application.conf index 115d47285..c4e840271 100644 --- a/src/test/resources/application.conf +++ b/src/test/resources/application.conf @@ -39,7 +39,7 @@ featureAccessBlock { } referenceGenerator { - referenceGeneratorUrl = "http://localhost:8080" + referenceGeneratorUrl = "http://localhost:8008" referenceLimit = 2 } diff --git a/src/test/resources/json/getconsignment_data_all.json b/src/test/resources/json/getconsignment_data_all.json index b1e402aff..c02b5180c 100644 --- a/src/test/resources/json/getconsignment_data_all.json +++ b/src/test/resources/json/getconsignment_data_all.json @@ -24,6 +24,10 @@ "parentReference": null, "originalFilePath": null, "fileMetadata": [ + { + "name": "UUID", + "value": "42910a85-85c3-40c3-888f-32f697bfadb6" + }, { "name": "SHA256ServerSideChecksum", "value": "Result of FileMetadata processing" diff --git a/src/test/scala/uk/gov/nationalarchives/tdr/api/routes/FileRouteSpec.scala b/src/test/scala/uk/gov/nationalarchives/tdr/api/routes/FileRouteSpec.scala index a5bb72759..f7851dacb 100644 --- a/src/test/scala/uk/gov/nationalarchives/tdr/api/routes/FileRouteSpec.scala +++ b/src/test/scala/uk/gov/nationalarchives/tdr/api/routes/FileRouteSpec.scala @@ -74,7 +74,7 @@ class FileRouteSpec extends TestContainerUtils with Matchers with TestRequest { val res = runTestMutationFileMetadata("mutation_alldata_2", validUserToken()) val distinctDirectoryCount = 3 val fileCount = 5 - val expectedCount = ((Filename :: FileType :: FileReference :: ParentReference :: defaultMetadataProperties).size * distinctDirectoryCount) + + val expectedCount = ((FileUUID :: Filename :: FileType :: FileReference :: ParentReference :: defaultMetadataProperties).size * distinctDirectoryCount) + (defaultMetadataProperties.size * fileCount) + (clientSideProperties.size * fileCount) + (serverSideProperties.size * fileCount) + @@ -216,8 +216,8 @@ class FileRouteSpec extends TestContainerUtils with Matchers with TestRequest { } private def getReferencesMockServer(additionalRefs: Int = 0): WireMockServer = { - val wiremockServer = new WireMockServer(8080) - WireMock.configureFor("localhost", 8080) + val wiremockServer = new WireMockServer(8008) + WireMock.configureFor("localhost", 8008) wiremockServer.start() wiremockServer.stubFor( WireMock diff --git a/src/test/scala/uk/gov/nationalarchives/tdr/api/service/FileMetadataServiceSpec.scala b/src/test/scala/uk/gov/nationalarchives/tdr/api/service/FileMetadataServiceSpec.scala index f3529b4a5..c7ba020e6 100644 --- a/src/test/scala/uk/gov/nationalarchives/tdr/api/service/FileMetadataServiceSpec.scala +++ b/src/test/scala/uk/gov/nationalarchives/tdr/api/service/FileMetadataServiceSpec.scala @@ -547,6 +547,7 @@ class FileMetadataServiceSpec extends AnyFlatSpec with MockitoSugar with Matcher FileMetadataService.HeldBy shouldEqual "HeldBy" FileMetadataService.Language shouldEqual "Language" FileMetadataService.FoiExemptionCode shouldEqual "FoiExemptionCode" + FileMetadataService.FileUUID shouldEqual "UUID" } private def generateFileStatusRows(fileIds: Seq[UUID]) = { diff --git a/src/test/scala/uk/gov/nationalarchives/tdr/api/service/FileServiceSpec.scala b/src/test/scala/uk/gov/nationalarchives/tdr/api/service/FileServiceSpec.scala index 09964f180..94ee28436 100644 --- a/src/test/scala/uk/gov/nationalarchives/tdr/api/service/FileServiceSpec.scala +++ b/src/test/scala/uk/gov/nationalarchives/tdr/api/service/FileServiceSpec.scala @@ -735,7 +735,7 @@ class FileServiceSpec extends AnyFlatSpec with MockitoSugar with Matchers with S row.consignmentid should equal(consignmentId) row.userid should equal(userId) }) - val expectedSize = 56 + val expectedSize = 61 metadataRows.size should equal(expectedSize) defaultMetadataProperties.foreach(prop => { metadataRows.count(_.propertyname == prop) should equal(5) @@ -821,7 +821,7 @@ class FileServiceSpec extends AnyFlatSpec with MockitoSugar with Matchers with S }) val file = fileRows.find(_.filereference.contains("ref4")) file.get.parentreference should equal(Some("ref2")) - val expectedSize = 56 + val expectedSize = 61 metadataRows.size should equal(expectedSize) defaultMetadataProperties.foreach(prop => { metadataRows.count(_.propertyname == prop) should equal(5) @@ -906,7 +906,7 @@ class FileServiceSpec extends AnyFlatSpec with MockitoSugar with Matchers with S row.consignmentid should equal(consignmentId) row.userid should equal(userId) }) - val expectedSize = 36 + val expectedSize = 39 metadataRows.size should equal(expectedSize) defaultMetadataProperties.foreach(prop => { metadataRows.count(_.propertyname == prop) should equal(3) diff --git a/src/test/scala/uk/gov/nationalarchives/tdr/api/utils/TestUtils.scala b/src/test/scala/uk/gov/nationalarchives/tdr/api/utils/TestUtils.scala index 670b979a5..b856b936a 100644 --- a/src/test/scala/uk/gov/nationalarchives/tdr/api/utils/TestUtils.scala +++ b/src/test/scala/uk/gov/nationalarchives/tdr/api/utils/TestUtils.scala @@ -580,7 +580,7 @@ object TestUtils { case class Locations(column: Int, line: Int) val defaultFileId: UUID = UUID.fromString("07a3a4bd-0281-4a6d-a4c1-8fa3239e1313") - val serverSideProperties: List[String] = List(FileReference, ParentReference) + val serverSideProperties: List[String] = List(FileUUID, FileReference, ParentReference) val defaultMetadataProperties: List[String] = List(RightsCopyright, LegalStatus, HeldBy, Language, FoiExemptionCode) val defaultCopyright: String = "Crown Copyright" val defaultLegalStatus: String = "Public Record"