feat(users/Profpatsch/whatcd-resolver): trace http requests
Move the http calls into their own module, so we can trace the request and provide a simple copy-to-replay command. We have to work around a bug in the otel library, which would limit our attribute value length to 128 bytes because it uses the wrong option value. ~~~ `ifExists` is finally made more useful for dealing with optional attributes in e.g. lists. Change-Id: Iafab523e9ec4b00136db43f31fdc12aeefb7f77c Reviewed-on: https://cl.tvl.fyi/c/depot/+/11241 Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de>
This commit is contained in:
parent
0b78998509
commit
eeb5e7abd6
10 changed files with 201 additions and 42 deletions
18
users/Profpatsch/whatcd-resolver/src/Optional.hs
Normal file
18
users/Profpatsch/whatcd-resolver/src/Optional.hs
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
module Optional where
|
||||
|
||||
import GHC.Records (getField)
|
||||
import MyPrelude
|
||||
|
||||
newtype Optional a = OptionalInternal (Maybe a)
|
||||
deriving newtype (Functor)
|
||||
|
||||
mkOptional :: a -> Optional a
|
||||
mkOptional defaultValue = OptionalInternal $ Just defaultValue
|
||||
|
||||
defaults :: Optional a
|
||||
defaults = OptionalInternal Nothing
|
||||
|
||||
instance HasField "withDefault" (Optional a) (a -> a) where
|
||||
getField (OptionalInternal m) defaultValue = case m of
|
||||
Nothing -> defaultValue
|
||||
Just a -> a
|
||||
Loading…
Add table
Add a link
Reference in a new issue