From 34a6eb4a067e06edf3ef99209870b31235398c52 Mon Sep 17 00:00:00 2001 From: Todd Burnside Date: Wed, 23 Oct 2024 10:19:43 -0700 Subject: [PATCH] Add specific ObservationValidationCodes for ConfigurationRequests --- .../enums/ObservationValidationCode.scala | 31 +++++++++++++++++++ .../core/model/ObservationValidation.scala | 15 +++++++-- 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/modules/core/shared/src/main/scala/lucuma/core/enums/ObservationValidationCode.scala b/modules/core/shared/src/main/scala/lucuma/core/enums/ObservationValidationCode.scala index f0d808ba..8efc35e8 100644 --- a/modules/core/shared/src/main/scala/lucuma/core/enums/ObservationValidationCode.scala +++ b/modules/core/shared/src/main/scala/lucuma/core/enums/ObservationValidationCode.scala @@ -13,3 +13,34 @@ enum ObservationValidationCode( case ConfigurationError extends ObservationValidationCode("configuration_error", "Configuration Error", "The observation is not configured correctly and cannot be executed") case CallForProposalsError extends ObservationValidationCode("cfp_error", "Call for Proposals Error", "Not valid for the selected Call for Proposals") case ItcError extends ObservationValidationCode("itc_error", "ITC Error", "Integration time is unavailable.") + case ConfigurationRequestUnavailable + extends ObservationValidationCode( + "config_request_unavailable", + "Configuration Request Unavailable", + ObservationValidationCode.ConfigurationRequestMsg.Unavailable + ) + case ConfigurationRequestNotRequested + extends ObservationValidationCode( + "config_request_not_requested`", + "Configuration Request Not Requested", + ObservationValidationCode.ConfigurationRequestMsg.Unavailable + ) + case ConfigurationRequestDenied + extends ObservationValidationCode( + "config_request_denied", + "Configuration Request Denied", + ObservationValidationCode.ConfigurationRequestMsg.Denied + ) + case ConfigurationRequestPending + extends ObservationValidationCode( + "config_request_pending", + "Configuration Request Pending", + ObservationValidationCode.ConfigurationRequestMsg.Pending + ) + +object ObservationValidationCode: + object ConfigurationRequestMsg: + val Unavailable = "Configuration approval status could not be determined." + val NotRequested = "Configuration is unapproved (approval has not been requested)." + val Denied = "Configuration is unapproved (request was denied)." + val Pending = "Configuration is unapproved (request is pending)." diff --git a/modules/core/shared/src/main/scala/lucuma/core/model/ObservationValidation.scala b/modules/core/shared/src/main/scala/lucuma/core/model/ObservationValidation.scala index 8bc7e386..2c843b8e 100644 --- a/modules/core/shared/src/main/scala/lucuma/core/model/ObservationValidation.scala +++ b/modules/core/shared/src/main/scala/lucuma/core/model/ObservationValidation.scala @@ -8,6 +8,7 @@ import cats.data.NonEmptyChain import cats.derived.* import io.circe.Codec import lucuma.core.enums.ObservationValidationCode +import lucuma.core.enums.ObservationValidationCode.* case class ObservationValidation( code: ObservationValidationCode, @@ -18,8 +19,16 @@ object ObservationValidation: def fromMsgs(code: ObservationValidationCode, msg: String, moreMsgs: String*): ObservationValidation = ObservationValidation(code, NonEmptyChain.of(msg, moreMsgs*)) def configuration(msg: String, moreMsgs: String*): ObservationValidation = - fromMsgs(ObservationValidationCode.ConfigurationError, msg, moreMsgs*) + fromMsgs(ConfigurationError, msg, moreMsgs*) def callForProposals(msg: String, moreMsgs: String*): ObservationValidation = - fromMsgs(ObservationValidationCode.CallForProposalsError, msg, moreMsgs*) + fromMsgs(CallForProposalsError, msg, moreMsgs*) def itc(msg: String, moreMsgs: String*): ObservationValidation = - fromMsgs(ObservationValidationCode.ItcError, msg, moreMsgs*) + fromMsgs(ItcError, msg, moreMsgs*) + def configurationRequestUnavailable: ObservationValidation = + fromMsgs(ConfigurationRequestUnavailable, ConfigurationRequestUnavailable.description) + def configurationRequestNotRequested: ObservationValidation = + fromMsgs(ConfigurationRequestNotRequested, ConfigurationRequestNotRequested.description) + def configurationRequestDenied: ObservationValidation = + fromMsgs(ConfigurationRequestDenied, ConfigurationRequestDenied.description) + def configurationRequestPending: ObservationValidation = + fromMsgs(ConfigurationRequestPending, ConfigurationRequestPending.description)