Ensure that auction is not ended at the time of bid

[?]
May 18, 2016, 10:16 PM
FXJQACESPGTLPG5ELXBU3M3OQXUZQQIR7HPIEHQ3FNUTMWVH4WBAC

Dependencies

  • [2] ASF3UPJL Add auction creation and bid handlers
  • [3] NLZ3JXLO Fix formatting with stylish-haskell.
  • [4] 2XQD6KKK Add invitation logic and clean up DBProg error handling.
  • [5] QMRKFEPG Refactor QDB to use a free monad algebra instead.
  • [6] O5FVTOM6 Undo JSON silliness, enable a couple more routes.
  • [7] 5OI44E4E Add authentication to auction search.
  • [*] 64C6AWH6 Rename Ananke -> Quixotic, project reboot.
  • [*] HALRDT2F Added initial auction create route.

Change contents

  • replacement in lib/Aftok/Database.hs at line 51
    [3.7075][3.4782:4842]()
    RaiseDBError :: forall x. DBError -> DBOp x -> DBOp x
    [3.7075]
    [3.7204]
    RaiseDBError :: forall x y. DBError -> DBOp x -> DBOp y
  • edit in lib/Aftok/Database.hs at line 57
    [3.4937]
    [3.4937]
    | AuctionEnded
  • replacement in lib/Aftok/Database.hs at line 69
    [3.5275][3.5275:5316]()
    raiseSubjectNotFound :: DBOp x -> DBOp x
    [3.5275]
    [3.480]
    raiseSubjectNotFound :: DBOp y -> DBOp x
  • replacement in lib/Aftok/Database.hs at line 172
    [3.851][3.851:883]()
    let findAuc = FindAuction aid
    [3.851]
    [3.883]
    let findOp = FindAuction aid
  • replacement in lib/Aftok/Database.hs at line 174
    [3.892][3.892:1006]()
    maybeAuc <- fc findAuc
    _ <- traverse (\auc -> checkProjectAuth (auc ^. A.projectId) uid findAuc) maybeAuc
    [3.892]
    [3.1006]
    maybeAuc <- fc findOp
    _ <- traverse (\auc -> checkProjectAuth (auc ^. A.projectId) uid findOp) maybeAuc
  • edit in lib/Aftok/Database.hs at line 177
    [3.1024]
    [2.21]
    findAuction' :: AuctionId -> UserId -> DBProg Auction
    findAuction' aid uid =
    let findOp = FindAuction aid
    in do
    maybeAuc <- fc findOp
    _ <- traverse (\auc -> checkProjectAuth (auc ^. A.projectId) uid findOp) maybeAuc
    maybe (fc $ raiseSubjectNotFound findOp) pure maybeAuc
  • replacement in lib/Aftok/Database.hs at line 187
    [2.80][2.80:141]()
    createBid aid uid bid = do
    maybeAuc <- findAuction aid uid
    [2.80]
    [2.141]
    createBid aid uid bid =
  • replacement in lib/Aftok/Database.hs at line 189
    [2.176][2.176:247]()
    fc $ maybe (raiseSubjectNotFound createOp) (const createOp) maybeAuc
    [2.176]
    in do
    auc <- findAuction' aid uid
    fc $ if view bidTime bid > view auctionEnd auc
    then raiseOpForbidden uid AuctionEnded createOp
    else createOp
  • edit in server/Aftok/Snaplet/Auctions.hs at line 68
    [2.1576]