@@ -3,7 +3,6 @@ module Data.Schematic.Validation where
33import Control.Monad
44import Control.Monad.Validation
55import Data.Aeson
6−import Data.Aeson.Internal
76import Data.Aeson.Types
87import Data.Foldable
98import Data.Functor.Identity
@@ -50,11 +49,11 @@ isValidationError (ValidationError _) = True
5049isValidationError _ = False
5150
5251validateTextConstraint
53− :: JSONPathText
52+ :: JSONPath
5453 -> Text
5554 -> Sing (tcs :: TextConstraint)
5655 -> Validation ()
57−validateTextConstraint (JSONPathText path) t = \case
56+validateTextConstraint (JSONPath path) t = \case
5857 STEq n -> do
5958 let
6059 nlen = withKnownNat n $ natVal n
@@ -107,11 +106,11 @@ validateTextConstraint (JSONPathText path) t = \case
107106 unless (matching ss) warn
108107
109108validateNumberConstraint
110− :: JSONPathText
109+ :: JSONPath
111110 -> Scientific
112111 -> Sing (tcs :: NumberConstraint)
113112 -> Validation ()
114−validateNumberConstraint (JSONPathText path) num = \case
113+validateNumberConstraint (JSONPath path) num = \case
115114 SNEq n -> do
116115 let
117116 nlen = withKnownNat n $ natVal n
@@ -149,11 +148,11 @@ validateNumberConstraint (JSONPathText path) num = \case
149148 unless predicate warn
150149
151150validateArrayConstraint
152− :: JSONPathText
151+ :: JSONPath
153152 -> V.Vector a
154153 -> Sing (tcs :: ArrayConstraint)
155154 -> Validation ()
156−validateArrayConstraint (JSONPathText path) v = \case
155+validateArrayConstraint (JSONPath path) v = \case
157156 SAEq n -> do
158157 let
159158 nlen = withKnownNat n $ natVal n
@@ -192,7 +191,7 @@ validateArrayConstraint (JSONPathText path) v = \case
192191
193192validateJsonRepr
194193 :: Sing schema
195− -> JSONPath
194+ -> [DemotedPathSegment]
196195 -> JsonRepr schema
197196 -> Validation ()
198197validateJsonRepr sschema dpath jr = case jr of
@@ -226,7 +225,7 @@ validateJsonRepr sschema dpath jr = case jr of
226225 process cs
227226 process acs
228227 for_ (V.indexed v) $ \(ix, jr') -> do
229− let newPath = dpath <> pure (Index $ fromIntegral ix)
228+ let newPath = dpath <> pure (DIx $ fromIntegral ix)
230229 validateJsonRepr s newPath jr'
231230 ReprOptional d -> case sschema of
232231 SSchemaOptional ss -> case d of
@@ -238,7 +237,7 @@ validateJsonRepr sschema dpath jr = case jr of
238237 go :: Rec FieldRepr (ts :: [(Symbol, Schema)] ) -> Validation ()
239238 go RNil = pure ()
240239 go (f@(FieldRepr d) :& ftl) = do
241− let newPath = dpath <> [Key (knownFieldName f)]
240+ let newPath = dpath <> [DKey (knownFieldName f)]
242241 validateJsonRepr (knownFieldSchema f) newPath d
243242 go ftl
244243 ReprUnion _ -> pure () -- FIXME
@@ -250,7 +249,7 @@ validateJsonRepr sschema dpath jr = case jr of
250249 -- fail "impossible to produce subUnion, please report this as a bug"
251250 -- Just x -> do
252251 -- let
253− -- JSONPathText path = demotedPathToText dpath
252+ -- JSONPath path = demotedPathToText dpath
254253 -- case stl of
255254 -- SNil -> void $ vWarning $ mmSingleton path
256255 -- $ pure "union handling error, please report this as bug"