Fix formatting with stylish-haskell.

[?]
Mar 5, 2016, 8:28 PM
NLZ3JXLOOIL37O3RRQWXHNPNSNEOOLPD6MCB754BEBECQB3KGR2AC

Dependencies

  • [2] 6L5BK5EH Use generic SMTP rather than Sendmail-specific mail client.
  • [3] 7HPY3QPF Fix linting errors. (yay hlint!)
  • [4] PBD7LZYQ Postgres & auth are beginning to function.
  • [5] EMVTF2IW WIP moving back to snap.
  • [6] 4IQVQL4T Added client for payouts endpoint.
  • [7] XTBSG4C7 Adding serveJSON combinator to eliminate some boilerplate from handlers.
  • [8] 5W5M56VJ Move library code to 'lib'
  • [9] IZEVQF62 Work in progress replacing sqlite with postgres.
  • [10] BXGLKYRX Added primitive user registration handler.
  • [11] A6HKMINB Attempting to improve JSON handling.
  • [12] TZQJVHBA Add auction functions to ADB.
  • [13] O5FVTOM6 Undo JSON silliness, enable a couple more routes.
  • [14] QMRKFEPG Refactor QDB to use a free monad algebra instead.
  • [15] MMRVIM3F Removes copy/paste error from email invitation subject.
  • [16] 64C6AWH6 Rename Ananke -> Quixotic, project reboot.
  • [17] Z7KS5XHH Very WIP. Wow.
  • [18] 5XFJNUAZ Start of addition of project infrastructure.
  • [19] RPAJLHMT Change to use UUIDs instead of ints for primary keys.
  • [20] GCVQD44V Create amends endpoint, switch to UUID primary keys
  • [21] W35DDBFY Factor common JSON conversions up into client lib module.
  • [22] 2G3GNDDU Event logging is now functioning in postgres.
  • [23] LAROLAYU WIP
  • [24] 4U7F3CPI THE GREAT RENAMING OF THINGS!
  • [25] 2XQD6KKK Add invitation logic and clean up DBProg error handling.
  • [26] MB5SHULB Add route for accepting an invitation with an existing account

Change contents

  • replacement in lib/Aftok/Database.hs at line 1
    [4.4936][4.4456:4499]()
    {-# LANGUAGE GADTs, DeriveDataTypeable #-}
    [4.4936]
    [4.426]
    {-# LANGUAGE DeriveDataTypeable #-}
    {-# LANGUAGE ExplicitForAll #-}
    {-# LANGUAGE GADTs #-}
  • replacement in lib/Aftok/Database.hs at line 7
    [4.4986][4.817:838](),[4.838][4.5880:5900](),[4.5900][4.4500:4553]()
    import ClassyPrelude
    import Control.Lens
    import Data.AffineSpace
    import Data.Thyme.Clock as C
    [4.4986]
    [4.6576]
    import ClassyPrelude
    import Control.Lens
    import Data.AffineSpace
    import Data.Thyme.Clock as C
  • replacement in lib/Aftok/Database.hs at line 12
    [4.6577][4.1471:1548](),[4.1548][4.5901:5919]()
    import Aftok
    import Aftok.Auction
    import Aftok.Interval
    import Aftok.TimeLog
    import Aftok.Util
    [4.6577]
    [4.5919]
    import Aftok
    import Aftok.Auction
    import Aftok.Interval
    import Aftok.TimeLog
    import Aftok.Util
  • replacement in lib/Aftok/Database.hs at line 62
    [4.5118][4.5118:5146]()
    instance Exception DBError
    [4.5118]
    [4.5146]
    instance Exception DBError
  • replacement in lib/Aftok/Database.hs at line 65
    [4.5215][4.5215:5274]()
    raiseOpForbidden uid r = RaiseDBError (OpForbidden uid r)
    [4.5215]
    [4.5274]
    raiseOpForbidden uid r = RaiseDBError (OpForbidden uid r)
  • replacement in lib/Aftok/Database.hs at line 68
    [4.5316][4.5316:5369]()
    raiseSubjectNotFound = RaiseDBError SubjectNotFound
    [4.5316]
    [4.7338]
    raiseSubjectNotFound = RaiseDBError SubjectNotFound
  • replacement in lib/Aftok/Database.hs at line 94
    [4.7896][4.7896:7927]()
    kps <- findUserProjects uid
    [4.7896]
    [4.7927]
    kps <- findUserProjects uid
  • replacement in lib/Aftok/Database.hs at line 96
    [4.7984][4.7984:7987]()
    [4.7984]
    [4.7987]
  • replacement in lib/Aftok/Database.hs at line 103
    [4.8378][4.8378:8438]()
    fc $ if any (\(pid', _) -> pid' == pid) px
    then act
    [4.8378]
    [4.5370]
    fc $ if any (\(pid', _) -> pid' == pid) px
    then act
  • replacement in lib/Aftok/Database.hs at line 108
    [4.5498][4.5498:5534]()
    addUserToProject pid current new =
    [4.5498]
    [4.5534]
    addUserToProject pid current new =
  • replacement in lib/Aftok/Database.hs at line 123
    [4.6088][4.6088:6104]()
    Nothing ->
    [4.6088]
    [4.6104]
    Nothing ->
  • replacement in lib/Aftok/Database.hs at line 125
    [4.6140][4.6140:6221]()
    Just i | t .-. (i ^. invitationTime) > fromSeconds (60 * 60 * 72 :: Int) ->
    [4.6140]
    [4.6221]
    Just i | t .-. (i ^. invitationTime) > fromSeconds (60 * 60 * 72 :: Int) ->
  • replacement in lib/Aftok/Database.hs at line 127
    [4.6275][4.6275:6321]()
    Just i | isJust (i ^. acceptanceTime) ->
    [4.6275]
    [4.6321]
    Just i | isJust (i ^. acceptanceTime) ->
  • replacement in lib/Aftok/Database.hs at line 129
    [4.6383][4.6383:6398]()
    Just i ->
    [4.6383]
    [4.6398]
    Just i ->
  • replacement in lib/Aftok/Database.hs at line 136
    [4.8631][4.6462:6523]()
    createEvent p u l = withProjectAuth p u $ CreateEvent p u l
    [4.8631]
    [4.8691]
    createEvent p u l = withProjectAuth p u $ CreateEvent p u l
  • edit in lib/Aftok/Json.hs at line 2
    [4.3609]
    [4.127]
    {-# LANGUAGE RecordWildCards #-}
  • replacement in lib/Aftok/Json.hs at line 6
    [4.156][4.156:177]()
    import ClassyPrelude
    [4.156]
    [4.1965]
    import ClassyPrelude
  • replacement in lib/Aftok/Json.hs at line 8
    [4.1966][4.1966:2000](),[4.2000][4.3610:3653]()
    import Control.Lens hiding ((.=))
    import Data.Aeson
    import Data.Aeson.Types
    [4.1966]
    [4.3670]
    import Control.Lens hiding ((.=))
    import Data.Aeson
    import Data.Aeson.Types
  • replacement in lib/Aftok/Json.hs at line 12
    [4.3725][4.3725:3769](),[4.3769][4.1361:1438]()
    import qualified Data.ByteString.Char8 as C
    import Data.Data
    import Data.List.NonEmpty as L
    import Data.Map.Strict as MS
    [4.3725]
    [4.231]
    import qualified Data.ByteString.Char8 as C
    import Data.Data
    import Data.List.NonEmpty as L
    import Data.Map.Strict as MS
  • replacement in lib/Aftok/Json.hs at line 17
    [4.232][4.1668:1746]()
    import Aftok
    import Aftok.Database
    import Aftok.Interval
    import Aftok.TimeLog
    [4.232]
    [4.272]
    import Aftok
    import Aftok.Database
    import Aftok.Interval
    import Aftok.TimeLog
  • replacement in lib/Aftok/Json.hs at line 22
    [4.273][4.3770:3846]()
    import qualified Language.Haskell.TH as TH
    import Language.Haskell.TH.Quote
    [4.273]
    [4.323]
    import qualified Language.Haskell.TH as TH
    import Language.Haskell.TH.Quote
  • replacement in lib/Aftok/Json.hs at line 33
    [4.4211][4.4183:4252]()
    versionParser = Version <$> P.decimal <*> (P.char '.' >> P.decimal)
    [4.4211]
    [4.4309]
    versionParser = Version <$> P.decimal <*> (P.char '.' >> P.decimal)
  • replacement in lib/Aftok/Json.hs at line 35
    [4.2289][4.4455:4479]()
    version :: QuasiQuoter
    [4.4310]
    [4.4479]
    version :: QuasiQuoter
  • replacement in lib/Aftok/Json.hs at line 52
    [4.187][4.4469:4474]()
    {-|
    [4.187]
    [4.4474]
    {-|
  • replacement in lib/Aftok/Json.hs at line 62
    [4.4717][4.4717:4734]()
    unversion _ x =
    [4.4717]
    [4.4734]
    unversion _ x =
  • replacement in lib/Aftok/Json.hs at line 74
    [4.4979][4.4979:5006]()
    let p (Version 1 0) = f
    [4.4979]
    [4.5006]
    let p (Version 1 0) = f
  • replacement in lib/Aftok/Json.hs at line 92
    [4.5417][3.1103:1168]()
    , "initiator" .= tshow (p ^. (initiator._UserId))
    [4.5417]
    [3.1168]
    , "initiator" .= tshow (p ^. (initiator._UserId))
  • replacement in lib/Aftok/Json.hs at line 125
    [4.5811][4.5811:5859]()
    Payouts . MS.mapKeys BtcAddr <$> parseJSON v
    [4.5811]
    [4.5859]
    Payouts . MS.mapKeys BtcAddr <$> parseJSON v
  • replacement in lib/Aftok/Json.hs at line 128
    [4.5925][4.5925:5950]()
    parseEventAmendment t =
    [4.5925]
    [4.5950]
    parseEventAmendment t =
  • replacement in lib/Aftok/Json.hs at line 131
    [4.6047][4.6047:6098](),[4.6098][3.1265:1331](),[3.1331][4.6166:6202](),[4.6166][4.6166:6202]()
    addrText <- x .: "btcAddr"
    maybe
    (fail $ show addrText <> "is not a valid BTC address")
    (pure . AddressChange t)
    [4.6047]
    [4.6202]
    addrText <- x .: "btcAddr"
    maybe
    (fail $ show addrText <> "is not a valid BTC address")
    (pure . AddressChange t)
  • replacement in lib/Aftok/Json.hs at line 136
    [4.6236][4.6236:6271]()
    parseA x "metadataChange" =
    [4.6236]
    [4.6271]
    parseA x "metadataChange" =
  • replacement in lib/Aftok/Json.hs at line 138
    [4.6317][4.6317:6341]()
    parseA _ other =
    [4.6317]
    [4.6341]
    parseA _ other =
  • replacement in lib/Aftok/Json.hs at line 143
    [4.6529][4.6529:6554]()
    in unv1 "amendment" p
    [4.6529]
    [4.6554]
    in unv1 "amendment" p
  • edit in server/Aftok/Snaplet/Projects.hs at line 1
    [4.2363]
    [4.2364]
    {-# LANGUAGE RecordWildCards #-}
  • replacement in server/Aftok/Snaplet/Projects.hs at line 6
    [4.2463][4.2463:2485]()
    import ClassyPrelude
    [4.2463]
    [4.2485]
    import ClassyPrelude
  • replacement in server/Aftok/Snaplet/Projects.hs at line 8
    [4.2486][4.8610:8630](),[4.8630][4.2533:2556](),[4.2533][4.2533:2556](),[4.2556][4.8631:8711](),[4.8711][2.839:897](),[2.897][4.8761:8816](),[4.8761][4.8761:8816]()
    import Control.Lens
    import Data.Aeson as A
    import Data.Attoparsec.ByteString (takeByteString)
    import Data.Thyme.Clock as C
    import Network.Mail.SMTP as SMTP
    import Network.Mail.Mime
    import System.IO (FilePath)
    import Text.StringTemplate
    [4.2486]
    [4.8816]
    import Control.Lens
    import Data.Aeson as A
    import Data.Attoparsec.ByteString (takeByteString)
    import Data.Thyme.Clock as C
    import Network.Mail.Mime
    import Network.Mail.SMTP as SMTP
    import System.IO (FilePath)
    import Text.StringTemplate
  • replacement in server/Aftok/Snaplet/Projects.hs at line 17
    [4.8817][4.2415:2450](),[4.2556][4.2415:2450](),[4.2450][4.8818:8839](),[4.8839][4.2450:2497](),[4.2450][4.2450:2497]()
    import Aftok
    import Aftok.Database
    import Aftok.QConfig
    import Aftok.Snaplet
    import Aftok.Snaplet.Auth
    [4.8817]
    [4.2650]
    import Aftok
    import Aftok.Database
    import Aftok.QConfig
    import Aftok.Snaplet
    import Aftok.Snaplet.Auth
  • replacement in server/Aftok/Snaplet/Projects.hs at line 23
    [4.2651][4.2651:2688]()
    import Snap.Core
    import Snap.Snaplet
    [4.2651]
    [4.2725]
    import Snap.Core
    import Snap.Snaplet
  • replacement in server/Aftok/Snaplet/Projects.hs at line 58
    [4.9176][4.9176:9219]()
    (Just u, Just p, invCode) <- snapEval $
    [4.9176]
    [4.9219]
    (Just u, Just p, invCode) <- snapEval $
  • replacement in server/Aftok/Snaplet/Projects.hs at line 66
    [2.1024][2.1024:1063]()
    -> ProjectName
    [2.1024]
    [2.1063]
    -> ProjectName
  • replacement in server/Aftok/Snaplet/Projects.hs at line 69
    [2.1199][2.1199:1241]()
    -> InvitationCode
    [2.1199]
    [2.1241]
    -> InvitationCode
  • replacement in server/Aftok/Snaplet/Projects.hs at line 71
    [2.1273][2.1273:1332]()
    sendProjectInviteEmail cfg pn fromEmail toEmail invCode =
    [2.1273]
    [2.1332]
    sendProjectInviteEmail cfg pn fromEmail toEmail invCode =
  • replacement in server/Aftok/Snaplet/Projects.hs at line 74
    [2.1459][2.1459:1542]()
    in buildProjectInviteEmail (templatePath cfg) pn fromEmail toEmail invCode >>=
    [2.1459]
    [2.1542]
    in buildProjectInviteEmail (templatePath cfg) pn fromEmail toEmail invCode >>=
  • replacement in server/Aftok/Snaplet/Projects.hs at line 76
    [2.1575][2.1575:1578]()
    [2.1575]
    [4.9687]
  • replacement in server/Aftok/Snaplet/Projects.hs at line 78
    [4.9688][2.1579:1666]()
    buildProjectInviteEmail :: System.IO.FilePath
    -> ProjectName
    [4.9688]
    [2.1666]
    buildProjectInviteEmail :: System.IO.FilePath
    -> ProjectName
  • replacement in server/Aftok/Snaplet/Projects.hs at line 82
    [2.1804][2.1804:1847]()
    -> InvitationCode
    [2.1804]
    [2.1847]
    -> InvitationCode
  • replacement in server/Aftok/Snaplet/Projects.hs at line 85
    [2.1953][4.9947:9991](),[4.9947][4.9947:9991]()
    templates <- directoryGroup templatePath
    [2.1953]
    [2.1954]
    templates <- directoryGroup templatePath
  • replacement in server/Aftok/Snaplet/Projects.hs at line 92
    [2.2291][2.2291:2361]()
    setAttribute "inv_code" (renderInvCode invCode)
    [2.2291]
    [2.2361]
    setAttribute "inv_code" (renderInvCode invCode)