Skip to content

Commit

Permalink
ADAPT1-1206 | moved regex validation to common utils
Browse files Browse the repository at this point in the history
  • Loading branch information
aadit-chugh committed Jul 8, 2024
1 parent f8154dd commit 0ab6def
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import hydra.kafka.model.ContactMethod.Slack
import hydra.kafka.model.DataClassification._
import hydra.kafka.model.TopicMetadataV2Request.Subject
import hydra.kafka.model._
import hydra.kafka.util.ValidationUtils

class TopicMetadataV2Validator[F[_] : Sync](metadataAlgebra: MetadataAlgebra[F], kafkaAdmin: KafkaAdminAlgebra[F]) extends Validator {

Expand Down Expand Up @@ -76,7 +77,7 @@ class TopicMetadataV2Validator[F[_] : Sync](metadataAlgebra: MetadataAlgebra[F],
case MetadataAdditionalValidation.replacementTopics => valid
case MetadataAdditionalValidation.contact if maybeSlackChannel.isDefined =>
val slackChannel = maybeSlackChannel.get
val slackChannelValidation = slackChannel.matches("""^#[a-z][a-z_-]{0,78}$""")
val slackChannelValidation = ValidationUtils.isValidSlackChannel(slackChannel)
validate(slackChannelValidation, TopicMetadataError.InvalidContactProvided(slackChannel))
}
resultOf(validations.pure)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ import hydra.common.validation.{AdditionalValidation, AdditionalValidationUtil,
import hydra.core.marshallers.{GenericSchema, TopicMetadataRequest}
import hydra.kafka.model.TopicMetadata
import hydra.kafka.programs.TopicMetadataError
import hydra.kafka.util.{KafkaUtils, MetadataUtils}
import hydra.kafka.util.MetadataUtils
import hydra.kafka.util.{KafkaUtils, MetadataUtils, ValidationUtils}

import scala.util.{Failure, Success, Try}

Expand Down Expand Up @@ -70,7 +69,7 @@ object TopicMetadataValidator {
}

private def validContact(contactField: String): ValidationResponse = {
if (contactField.matches("""^#[a-z][a-z_-]{0,78}$""")) {
if (ValidationUtils.isValidSlackChannel(contactField)) {
Valid
} else {
Invalid(InvalidContactProvided)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package hydra.kafka.util

object ValidationUtils {

val slackChannelRegex: String = "^#[a-z][a-z_-]{0,78}$"

def isValidSlackChannel(slackChannel: String): Boolean = {
slackChannel.matches(slackChannelRegex)
}

}

0 comments on commit 0ab6def

Please sign in to comment.