def fromMxsMetadata()

in app/models/CustomMXSMetadata.scala [37:62]


  def fromMxsMetadata(incoming:MxsMetadata):Option[CustomMXSMetadata] = {
    import cats.implicits._ //for .sequence; turns Option[Try[String]] into Try[Option[String]]

    incoming.stringValues.get("GNM_TYPE").map(GnmType.withNameSafe).sequence match {
      case Success(Some(itemType))=>
        Some(new CustomMXSMetadata(Some(itemType),
          incoming.stringValues.get("GNM_PROJECT_ID"),
          incoming.stringValues.get("GNM_COMMISSION_ID"),
          incoming.stringValues.get("GNM_MASTER_ID"),
          incoming.stringValues.get("GNM_MASTER_NAME"),
          incoming.stringValues.get("GNM_MASTER_USER"),
          incoming.stringValues.get("GNM_PROJECT_NAME"),
          incoming.stringValues.get("GNM_COMMISSION_NAME"),
          incoming.stringValues.get("GNM_WORKING_GROUP_NAME"),
          incoming.intValues.get("GNM_DELIVERABLE_ASSET_ID"),
          incoming.intValues.get("GNM_DELIVERABLE_BUNDLE_ID"),
          incoming.intValues.get("GNM_DELIVERABLE_VERSION"),
          incoming.stringValues.get("GNM_DELIVERABLE_TYPE"),
          incoming.boolValues.get("GNM_HIDDEN_FILE")
        ))
      case Success(None)=>None
      case Failure(_)=>
        logger.error(s"Did not recognise GNM_TYPE value ${incoming.stringValues.get("GNM_TYPE")}")
        None
    }
  }