hjsonschema-0.7.0.0: src/Data/JsonSchema/Draft4/Strings.hs
module Data.JsonSchema.Draft4.Strings where
import qualified Data.Text as T
import Text.RegexPR
import Data.JsonSchema.Core
import Data.JsonSchema.Helpers
import Import
maxLength :: ValidatorConstructor err [FailureInfo]
maxLength _ _ _ val = do
n <- fromJSONInt val
greaterThanZero n
Just $ \x ->
case x of
String y ->
if T.length y > n
then pure (FailureInfo val x)
else mempty
_ -> mempty
minLength :: ValidatorConstructor err [FailureInfo]
minLength _ _ _ val = do
n <- fromJSONInt val
greaterThanZero n
Just $ \x ->
case x of
String y ->
if T.length y < n
then pure (FailureInfo val x)
else mempty
_ -> mempty
pattern :: ValidatorConstructor err [FailureInfo]
pattern _ _ _ val@(String t) =
Just $ \x ->
case x of
String y ->
case matchRegexPR (T.unpack t) (T.unpack y) of
Nothing -> pure (FailureInfo val x)
Just _ -> mempty
_ -> mempty
pattern _ _ _ _ = Nothing