Skip to content

Commit

Permalink
Merge pull request #1333 from nationalarchives/TDRD-502-add-consignme…
Browse files Browse the repository at this point in the history
…nt-type-override

Tdrd 502 add consignment type override
  • Loading branch information
TomJKing authored Oct 10, 2024
2 parents 10d308a + 2dbe911 commit 9477538
Show file tree
Hide file tree
Showing 17 changed files with 410 additions and 13 deletions.
4 changes: 4 additions & 0 deletions bagit-export/src/main/resources/application.conf
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,7 @@ efs {
stepFunction {
endpoint = "https://states.eu-west-2.amazonaws.com"
}
consignmentTypeOverride {
judgmentSeries = ["J 347", "J 348", "J 349", "J 350", "J 354", "J 355", "PCAP 16", "UKSC 2", "LE 9", "LE 10", "LE 11", "LE 12", "HO 654"]
transferringBodies = ["HM Courts and Tribunal Service"]
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ object Config {
case class Auth(url: String, clientId: String, clientSecret: String, realm: String)
case class EFS(rootLocation: String)
case class StepFunction(endpoint: String)
case class Configuration(s3: S3, api: Api, auth: Auth, efs: EFS, stepFunction: StepFunction)
case class ConsignmentTypeOverride(judgmentSeries: List[String], transferringBodies: List[String])
case class Configuration(s3: S3, api: Api, auth: Auth, efs: EFS, stepFunction: StepFunction, consignmentTypeOverride: ConsignmentTypeOverride)

implicit def hint[A]: ProductHint[A] = ProductHint[A](ConfigFieldMapping(CamelCase, CamelCase))

Expand Down
Original file line number Diff line number Diff line change
@@ -1,29 +1,30 @@
package uk.gov.nationalarchives.consignmentexport

import java.time.{ZoneOffset, ZonedDateTime}
import java.util.UUID
import cats.effect._
import com.monovore.decline.Opts
import com.monovore.decline.effect.CommandIOApp
import com.typesafe.config.ConfigFactory
import gov.loc.repository.bagit.domain.Metadata
import graphql.codegen.GetConsignmentExport.getConsignmentForExport.GetConsignment
import graphql.codegen.GetConsignmentExport.{getConsignmentForExport => gce}
import graphql.codegen.GetCustomMetadata.customMetadata.CustomMetadata
import org.typelevel.log4cats.SelfAwareStructuredLogger
import org.typelevel.log4cats.slf4j.Slf4jLogger
import uk.gov.nationalarchives.aws.utils.s3.S3Clients.s3Async
import uk.gov.nationalarchives.aws.utils.stepfunction.StepFunctionClients.sfnAsyncClient
import uk.gov.nationalarchives.aws.utils.s3.S3Utils
import uk.gov.nationalarchives.aws.utils.stepfunction.StepFunctionClients.sfnAsyncClient
import uk.gov.nationalarchives.aws.utils.stepfunction.StepFunctionUtils
import uk.gov.nationalarchives.consignmentexport.Arguments._
import uk.gov.nationalarchives.consignmentexport.BagMetadata.{ConsignmentSeriesKey, InternalSenderIdentifierKey, SourceOrganisationKey}
import uk.gov.nationalarchives.consignmentexport.BuildInfo.version
import uk.gov.nationalarchives.consignmentexport.Config.{Configuration, config}
import uk.gov.nationalarchives.consignmentexport.ConsignmentStatus.{StatusType, StatusValue}
import uk.gov.nationalarchives.consignmentexport.GraphQlApi.backend
import uk.gov.nationalarchives.consignmentexport.StepFunction.ExportOutput
import uk.gov.nationalarchives.tdr.keycloak.TdrKeycloakDeployment
import uk.gov.nationalarchives.consignmentexport.BuildInfo.version
import uk.gov.nationalarchives.consignmentexport.ConsignmentStatus.{StatusType, StatusValue}

import java.time.{ZoneOffset, ZonedDateTime}
import java.util.UUID
import scala.concurrent.duration._
import scala.language.{implicitConversions, postfixOps}

Expand Down Expand Up @@ -87,7 +88,7 @@ object Main extends CommandIOApp("tdr-consignment-export", "Exports tdr files in
bagMetadata.get(InternalSenderIdentifierKey).get(0),
bagMetadata.get(SourceOrganisationKey).get(0),
bagMetadata.get(ConsignmentSeriesKey).get(0),
consignmentType,
Overrides.consignmentTypeMessageOverride(consignmentType, consignmentData, config.consignmentTypeOverride),
s3Bucket
))
_ <- graphQlApi.updateConsignmentStatus(StatusType.export, StatusValue.completed)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package uk.gov.nationalarchives.consignmentexport

import graphql.codegen.GetConsignmentExport.getConsignmentForExport.GetConsignment
import uk.gov.nationalarchives.consignmentexport.Config.ConsignmentTypeOverride

object Overrides {
def consignmentTypeMessageOverride(originalConsignmentType: String, consignmentData: GetConsignment, consignmentTypeOverride: ConsignmentTypeOverride): String = {
originalConsignmentType.toLowerCase match {
case "standard" if
historicalTribunalTransfer(consignmentTypeOverride, consignmentData) => "historicalTribunal"
case _ => originalConsignmentType
}
}

private def historicalTribunalTransfer(consignmentTypeOverride: ConsignmentTypeOverride, consignmentData: GetConsignment): Boolean = {
consignmentTypeOverride.transferringBodies.contains(consignmentData.transferringBodyName.get) &&
consignmentTypeOverride.judgmentSeries.contains(consignmentData.seriesName.get)
}
}
5 changes: 4 additions & 1 deletion bagit-export/src/test/resources/application.conf
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,7 @@ auth {
stepFunction {
endpoint = "http://localhost:9003"
}

consignmentTypeOverride {
judgmentSeries = ["override-series", "AAAA"]
transferringBodies = ["override-body", "BBBB"]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
{
"data": {
"getConsignment": {
"seriesName": "override-series",
"exportDatetime": "2021-01-27T13:35:15Z",
"createdDatetime": "2021-01-15T07:47:19Z",
"transferInitiatedDatetime": "2021-01-15T07:47:19Z",
"userid": "b2657adf-6e93-424f-b0f1-aadd26762a96",
"consignmentReference": "consignmentReference-1234",
"consignmentType": "standard",
"includeTopLevelFolder": false,
"transferringBodyName": "override-body",
"files": [
{
"fileId": "7b19b272-d4d1-4d77-bf25-511dc6489d12",
"fileName": "name",
"fileType": "File",
"originalFilePath": "/original/file/path",
"fileMetadata": [
{
"name": "ClientSideOriginalFilepath",
"value": "originalPath"
},
{
"name": "LegalStatus",
"value": "Public Record"
},
{
"name": "ClientSideFileSize",
"value": "1024"
},
{
"name": "ClientSideLastModifiedDate",
"value": "2021-01-26T17:10:58.04"
},
{
"name": "RightsCopyright",
"value": "Crown Copyright"
},
{
"name": "HeldBy",
"value": "TNA"
},
{
"name": "FoiExemptionCode",
"value": "open"
},
{
"name": "Language",
"value": "English"
},
{
"name": "SHA256ClientSideChecksum",
"value": "cd0aa9856147b6c5b4ff2b7dfee5da20aa38253099ef1b4a64aced233c9afe29"
}
],
"ffidMetadata": {
"method": "pronom",
"softwareVersion": "6.5",
"datetime": 1617704135359,
"software": "Droid",
"matches": [
{
"extension": null,
"identificationBasis": "",
"puid": null,
"fileExtensionMismatch": false,
"formatName": ""
}
],
"containerSignatureFileVersion": "DROID_SignatureFile_V96.xml",
"binarySignatureFileVersion": "container-signature-20200121.xml"
},
"antivirusMetadata": {
"software": "software",
"softwareVersion": "softwareVersion"
}
}
]
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
{
"data": {
"getConsignment": {
"seriesName": "override-series",
"exportDatetime": "2021-01-27T13:35:15Z",
"createdDatetime": "2021-01-15T07:47:19Z",
"transferInitiatedDatetime": "2021-01-15T07:47:19Z",
"userid": "b2657adf-6e93-424f-b0f1-aadd26762a96",
"consignmentReference": "consignmentReference-1234",
"consignmentType": "standard",
"includeTopLevelFolder": false,
"transferringBodyName": "override-body",
"files": [
{
"fileId": "7b19b272-d4d1-4d77-bf25-511dc6489d12",
"fileName": "name",
"fileType": "File",
"fileMetadata": [
{
"name": "ClientSideOriginalFilepath",
"value": "originalPath"
},
{
"name": "LegalStatus",
"value": "Public Record"
},
{
"name": "ClientSideFileSize",
"value": "1024"
},
{
"name": "ClientSideLastModifiedDate",
"value": "2021-01-26 17:10:58.042"
},
{
"name": "RightsCopyright",
"value": "Crown Copyright"
},
{
"name": "HeldBy",
"value": "TNA"
},
{
"name": "FoiExemptionCode",
"value": "open"
},
{
"name": "Language",
"value": "English"
},
{
"name": "SHA256ClientSideChecksum",
"value": "differentChecksum"
}
],
"ffidMetadata": {
"method": "pronom",
"softwareVersion": "6.5",
"datetime": 1617704135359,
"software": "Droid",
"matches": [
{
"extension": null,
"identificationBasis": "",
"puid": null,
"fileExtensionMismatch": false,
"formatName": ""
}
],
"containerSignatureFileVersion": "DROID_SignatureFile_V96.xml",
"binarySignatureFileVersion": "container-signature-20200121.xml"
},
"antivirusMetadata": {
"software": "software",
"softwareVersion": "softwareVersion"
}
}
]
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"data": {
"getConsignment": {
"seriesName": "override-series",
"exportDatetime": "2021-01-27T13:35:15Z",
"createdDatetime": "2021-01-15T07:47:19Z",
"transferInitiatedDatetime": "2021-01-15T07:47:19Z",
"userid": "b2657adf-6e93-424f-b0f1-aadd26762a96",
"consignmentReference": "consignmentReference-1234",
"consignmentType": "standard",
"includeTopLevelFolder": false,
"transferringBodyName": "override-body",
"files": [
{
"fileId": "7b19b272-d4d1-4d77-bf25-511dc6489d12",
"fileName": "name",
"fileType": "File",
"fileMetadata": [
{
"name": "ClientSideOriginalFilepath",
"value": "originalPath"
},
{
"name": "LegalStatus",
"value": "Public Record"
},
{
"name": "ClientSideFileSize",
"value": "1024"
},
{
"name": "ClientSideLastModifiedDate",
"value": "2021-01-26T17:10:58.047"
},
{
"name": "RightsCopyright",
"value": "Crown Copyright"
},
{
"name": "HeldBy",
"value": "TNA"
}
]
}
]
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
{
"data": {
"getConsignment": {
"seriesName": "override-series",
"exportDatetime": "2021-01-27T13:35:15Z",
"createdDatetime": "2021-01-15T07:47:19Z",
"transferInitiatedDatetime": "2021-01-15T07:47:19Z",
"userid": "b2657adf-6e93-424f-b0f1-aadd26762a96",
"consignmentReference": "consignmentReference-1234",
"consignmentType": "standard",
"includeTopLevelFolder": false,
"transferringBodyName": "override-body",
"files": [
{
"fileId": "5e271e33-ae7e-4471-9f89-005c5d15c5a1",
"fileName": "name",
"fileType": "File",
"fileMetadata": [
{
"name": "ClientSideOriginalFilepath",
"value": "originalPath"
},
{
"name": "LegalStatus",
"value": "Public Record"
},
{
"name": "ClientSideFileSize",
"value": "1024"
},
{
"name": "ClientSideLastModifiedDate",
"value": "2021-01-26T17:10:58.047"
},
{
"name": "RightsCopyright",
"value": "Crown Copyright"
},
{
"name": "HeldBy",
"value": "TNA"
},
{
"name": "FoiExemptionCode",
"value": "open"
},
{
"name": "Language",
"value": "English"
},
{
"name": "SHA256ClientSideChecksum",
"value": "cd0aa9856147b6c5b4ff2b7dfee5da20aa38253099ef1b4a64aced233c9afe29"
}
],
"ffidMetadata": {
"method": "pronom",
"softwareVersion": "6.5",
"datetime": 1617704135359,
"software": "Droid",
"matches": [
{
"extension": null,
"identificationBasis": "",
"puid": null,
"fileExtensionMismatch": false,
"formatName": ""
}
],
"containerSignatureFileVersion": "DROID_SignatureFile_V96.xml",
"binarySignatureFileVersion": "container-signature-20200121.xml"
}
}
]
}
}
}
Loading

0 comments on commit 9477538

Please sign in to comment.