Add event serialization for PaymentRequest & Payment

[?]
Jan 21, 2017, 10:00 PM
WAIX6AGNDVJOKTWZ7OP7QOYSJHAJSX5EOWXZHOAO2IG6ALWUCJ6QC

Dependencies

  • [2] O227CEAV Adds storage of original event JSON for some DBOp constructors.
  • [3] NAS4BFL4 Trivial stylish-haskell reformat.
  • [4] DFOBMSAO Initial work on payments API
  • [5] Y3LIJ5US Add handler for CreatePaymentRequest
  • [6] 7VGYLTMU Clean up schema version handling.
  • [7] NEDDHXUK Reformat via stylish-haskell
  • [8] QADKFHAR Adds CreatePayment handler implementation.
  • [9] 73NDXDEZ Begin implementation of billing event persistence.
  • [10] HALRDT2F Added initial auction create route.
  • [11] GCVQD44V Create amends endpoint, switch to UUID primary keys
  • [*] IZEVQF62 Work in progress replacing sqlite with postgres.
  • [*] W35DDBFY Factor common JSON conversions up into client lib module.
  • [*] NLZ3JXLO Fix formatting with stylish-haskell.
  • [*] Z3MK2PJ5 Add GET handler for retrieving auction data.

Change contents

  • replacement in lib/Aftok/Database/PostgreSQL.hs at line 30
    [3.1678][2.75:162]()
    import Aftok.Json (billableJSON, subscriptionJSON)
    [3.1678]
    [3.173]
    import Aftok.Json (billableJSON, subscriptionJSON, paymentRequestJSON, paymentJSON)
  • replacement in lib/Aftok/Database/PostgreSQL.hs at line 212
    [2.385][2.385:506]()
    storeEvent (CreatePaymentRequest _ _) = error "Not implemented"
    storeEvent (CreatePayment _ _) = error "Not implemented"
    [2.385]
    [3.4029]
    storeEvent (CreatePaymentRequest uid req) =
    Just $ storeEventJSON uid "create_payment_request" (paymentRequestJSON req)
    storeEvent (CreatePayment uid req) =
    Just $ storeEventJSON uid "create_payment" (paymentJSON req)
  • edit in lib/Aftok/Json.hs at line 14
    [15.1132]
    [15.1132]
    import qualified Data.ByteString.Base64 as B64
    import Data.ProtocolBuffers (encodeMessage)
  • edit in lib/Aftok/Json.hs at line 20
    [15.1270]
    [3.4970]
    import Data.Serialize.Put (runPut)
  • edit in lib/Aftok/Json.hs at line 30
    [15.1358]
    [16.116]
    import Aftok.Payments
  • replacement in lib/Aftok/Json.hs at line 175
    [2.1627][2.1627:1690]()
    obj [ "projectId" .= tshow (b ^. (B.project . _ProjectId))
    [2.1627]
    [2.1690]
    obj [ "projectId" .= (b ^. (B.project . _ProjectId . to tshow))
  • edit in lib/Aftok/Json.hs at line 192
    [2.2422]
    [2.2422]
    ]
    paymentRequestJSON :: PaymentRequest -> Value
    paymentRequestJSON r = v1 $
    obj [ "subscription_id" .= (r ^. (subscription . B._SubscriptionId . to tshow))
    , "payment_request_protobuf_64" .= (r ^. (paymentRequest . to (decodeUtf8 . B64.encode . runPut . encodeMessage)))
    , "payment_request_date" .= (r ^. paymentRequestDate)
    ]
    paymentJSON :: Payment -> Value
    paymentJSON r = v1 $
    obj [ "payment_request_id" .= (r ^. (request . _PaymentRequestId . to tshow))
    , "payment_protobuf_64" .= (r ^. (payment . to (decodeUtf8 . B64.encode . runPut . encodeMessage)))
    , "payment_date" .= (r ^. paymentDate)
  • replacement in lib/Aftok/Payments.hs at line 22
    [3.6086][3.667:714]()
    data PaymentRequest' (s :: *) = PaymentRequest
    [3.6086]
    [3.13944]
    data PaymentRequest' s = PaymentRequest
  • replacement in lib/Aftok/Payments.hs at line 31
    [3.799][3.799:832]()
    data Payment' (r :: *) = Payment
    [3.799]
    [3.6315]
    data Payment' r = Payment