BXGLKYRXO2O4NRM3BLNWQ7AWVPQXAMFS57MFYHJNOZZEZZW5BH6AC -- data CreateUser = CreateUser-- { _user :: User-- , _password :: ByteString-- }-- makeLenses ''CreateUser
instance FromJSON CreateUser whereparseJSON (Object v) =let u = User <$> (UserName <$> v .: "username")<*> (BtcAddr <$> v .: "btcAddr")<*> v .: "email"in CreateUser <$> u <*> (fromString <$> v .: "password")parseJSON _ = mzero
registerHandler = ok
registerHandler = doQDB{..} <- view qdb <$> with qm getrequestBody <- readRequestBody 0userData <- maybe (snapError 400 "Could not parse user data") pure $ A.decode requestBodyauthUser <- with auth $AU.createUser (userData ^. (cuser.username._UserName)) (userData ^. password)let createQUser = liftPG $ runReaderT (createUser $ userData ^. cuser)void $ either throwDenied (\_ -> createQUser) authUser