Added primitive user registration handler.
[?]
Jan 24, 2015, 2:17 AM
BXGLKYRXO2O4NRM3BLNWQ7AWVPQXAMFS57MFYHJNOZZEZZW5BH6ACDependencies
- [2]
BROSTG5KBeginning of modularization of server. - [3]
IZEVQF62Work in progress replacing sqlite with postgres. - [4]
5W5M56VJMove library code to 'lib' - [5]
JKMHA2QGSQLite support is now relatively sane. - [6]
EMVTF2IWWIP moving back to snap. - [7]
64C6AWH6Rename Ananke -> Quixotic, project reboot. - [8]
TZQJVHBAAdd auction functions to ADB. - [9]
TNR3TEHKSwitch to Postgres + snaplet arch compiles. - [10]
LAROLAYUWIP
Change contents
- edit in lib/Quixotic/Database/PostgreSQL.hs at line 1
{-# LANGUAGE ScopedTypeVariables, OverloadedStrings, NoImplicitPrelude #-} - replacement in lib/Quixotic/Database.hs at line 1
{-# LANGUAGE NoImplicitPrelude, TemplateHaskell #-}{-# LANGUAGE TemplateHaskell #-} - edit in lib/Quixotic/Users.hs at line 1
{-# LANGUAGE ScopedTypeVariables, OverloadedStrings, NoImplicitPrelude #-} - replacement in server/Quixotic/Api/Users.hs at line 1
{-# LANGUAGE ScopedTypeVariables #-}{-# LANGUAGE OverloadedStrings #-}{-# LANGUAGE NoImplicitPrelude #-}{-# LANGUAGE RecordWildCards #-}{-# LANGUAGE TemplateHaskell #-}{-# LANGUAGE TemplateHaskell, RecordWildCards #-} - edit in server/Quixotic/Api/Users.hs at line 10
import Control.Lensimport Control.Monad.Stateimport Data.Aeson as A - edit in server/Quixotic/Api/Users.hs at line 17
import Quixoticimport Quixotic.Databaseimport Quixotic.Users - edit in server/Quixotic/Api/Users.hs at line 25
import Snap.Snaplet.PostgresqlSimple - edit in server/Quixotic/Api/Users.hs at line 40
data CreateUser = CreateUser{ _cuser :: User, _password :: ByteString}makeLenses ''CreateUser - replacement in server/Quixotic/Api/Users.hs at line 47
-- data CreateUser = CreateUser-- { _user :: User-- , _password :: ByteString-- }-- makeLenses ''CreateUserinstance FromJSON CreateUser whereparseJSON (Object v) =let u = User <$> (UserName <$> v .: "username")<*> (BtcAddr <$> v .: "btcAddr")<*> v .: "email"in CreateUser <$> u <*> (fromString <$> v .: "password")parseJSON _ = mzero - replacement in server/Quixotic/Api/Users.hs at line 64
registerHandler = okregisterHandler = 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 - edit in server/Quixotic/Api/Users.hs at line 84[2.5353]