Add handler for CreatePaymentRequest

[?]
Jan 21, 2017, 7:33 PM
Y3LIJ5USPMYBG7HKCIQBE7MWVGLQJPJSQD3KPZCTKXP22GOB535QC

Dependencies

  • [2] 73NDXDEZ Begin implementation of billing event persistence.
  • [3] NEDDHXUK Reformat via stylish-haskell
  • [4] O5FVTOM6 Undo JSON silliness, enable a couple more routes.
  • [5] Z7KS5XHH Very WIP. Wow.
  • [6] GCVQD44V Create amends endpoint, switch to UUID primary keys
  • [7] ZP62WC47 Begin conversion to build with stack.
  • [8] DFOBMSAO Initial work on payments API
  • [9] RN7EI6IN Update database layer to use CreditTo
  • [10] KEP5WUFJ Convert project to stack-based build.
  • [11] TNR3TEHK Switch to Postgres + snaplet arch compiles.
  • [12] EKY7U7SK Finish conversion to stack.
  • [*] 64C6AWH6 Rename Ananke -> Quixotic, project reboot.
  • [*] PBD7LZYQ Postgres & auth are beginning to function.
  • [*] 2XQD6KKK Add invitation logic and clean up DBProg error handling.
  • [*] IZEVQF62 Work in progress replacing sqlite with postgres.

Change contents

  • edit in aftok.cabal at line 48
    [15.1161]
    [16.423]
    , cereal
  • edit in aftok.cabal at line 64
    [3.375]
    [16.862]
    , protobuf
  • edit in lib/Aftok/Billables.hs at line 69
    [2.1029]
    [2.1029]
    makePrisms ''SubscriptionId
  • edit in lib/Aftok/Database/PostgreSQL.hs at line 13
    [3.1256]
    [3.1256]
    import Data.ProtocolBuffers (encodeMessage)
    import Data.Serialize.Put (runPut)
  • edit in lib/Aftok/Database/PostgreSQL.hs at line 30
    [3.1678]
    [2.1208]
    import Aftok.Payments
  • replacement in lib/Aftok/Database/PostgreSQL.hs at line 98
    [3.272][3.893:944](),[3.944][2.2026:2050]()
    creditToParser :: FieldParser (RowParser CreditTo)
    creditToParser f v =
    [3.272]
    [2.2050]
    creditToParser :: RowParser CreditTo
    creditToParser = join $ fieldWith creditToParser'
    creditToParser' :: FieldParser (RowParser CreditTo)
    creditToParser' f v =
  • replacement in lib/Aftok/Database/PostgreSQL.hs at line 116
    [3.1928][3.1684:1731]()
    LogEntry <$> join (fieldWith creditToParser)
    [3.1928]
    [3.336]
    LogEntry <$> creditToParser
  • replacement in lib/Aftok/Database/PostgreSQL.hs at line 409
    [2.12002][2.12002:12120]()
    \(project_id, event_id, name, description, recurrence_type, recurrence_count, billing_amount, grace_period_days)\
    [2.12002]
    [2.12120]
    \(project_id, event_id, name, description, recurrence_type, recurrence_count, billing_amount, grace_period_days) \
  • replacement in lib/Aftok/Database/PostgreSQL.hs at line 429
    [3.3943][2.12805:12931]()
    updateCache (CreateSubscription _ _) = error "Not implemented"
    updateCache (CreatePaymentRequest _) = error "Not implemented"
    [3.3943]
    [2.12931]
    updateCache dbop @ (CreateSubscription uid bid) = do
    eventId <- requireEventId dbop
    pinsert BI.SubscriptionId
    "INSERT INTO subscriptions \
    \(user_id, billable_id, event_id) \
    \VALUES (?, ?, ?) RETURNING id"
    (uid ^. _UserId, bid ^. BI._BillableId, eventId ^. _EventId)
    updateCache dbop @ (CreatePaymentRequest req) = do
    eventId <- requireEventId dbop
    pinsert PaymentRequestId
    "INSERT INTO payment_requests \
    \(subscription_id, event_id, request_data) \
    \VALUES (?, ?, ?) RETURNING id"
    ( req ^. (subscription . BI._SubscriptionId)
    , eventId ^. _EventId
    , req ^. (paymentRequest . to (runPut . encodeMessage))
    )