mirror of
https://github.com/commercialhaskell/stackage-server.git
synced 2026-02-15 04:15:48 +01:00
Track downloads
This commit is contained in:
parent
493c612cbd
commit
25fa854a84
@ -2,9 +2,11 @@ module Handler.HackageViewSdist where
|
|||||||
|
|
||||||
import Import
|
import Import
|
||||||
import Data.Hackage
|
import Data.Hackage
|
||||||
|
import Handler.StackageSdist (addDownload)
|
||||||
|
|
||||||
getHackageViewSdistR :: HackageView -> PackageNameVersion -> Handler TypedContent
|
getHackageViewSdistR :: HackageView -> PackageNameVersion -> Handler TypedContent
|
||||||
getHackageViewSdistR viewName (PackageNameVersion name version) = do
|
getHackageViewSdistR viewName (PackageNameVersion name version) = do
|
||||||
|
addDownload Nothing (Just viewName) name version
|
||||||
msrc <- sourceHackageViewSdist viewName name version
|
msrc <- sourceHackageViewSdist viewName name version
|
||||||
case msrc of
|
case msrc of
|
||||||
Nothing -> notFound
|
Nothing -> notFound
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import Data.Hackage
|
|||||||
|
|
||||||
getStackageSdistR :: PackageSetIdent -> PackageNameVersion -> Handler TypedContent
|
getStackageSdistR :: PackageSetIdent -> PackageNameVersion -> Handler TypedContent
|
||||||
getStackageSdistR ident (PackageNameVersion name version) = do
|
getStackageSdistR ident (PackageNameVersion name version) = do
|
||||||
|
addDownload (Just ident) Nothing name version
|
||||||
msrc1 <- storeRead (CustomSdist ident name version)
|
msrc1 <- storeRead (CustomSdist ident name version)
|
||||||
msrc <-
|
msrc <-
|
||||||
case msrc1 of
|
case msrc1 of
|
||||||
@ -22,3 +23,13 @@ getStackageSdistR ident (PackageNameVersion name version) = do
|
|||||||
, ".tar.gz"
|
, ".tar.gz"
|
||||||
]
|
]
|
||||||
respondSource "application/x-gzip" $ mapOutput (Chunk . toBuilder) src
|
respondSource "application/x-gzip" $ mapOutput (Chunk . toBuilder) src
|
||||||
|
|
||||||
|
addDownload :: Maybe PackageSetIdent
|
||||||
|
-> Maybe HackageView
|
||||||
|
-> PackageName
|
||||||
|
-> Version
|
||||||
|
-> Handler ()
|
||||||
|
addDownload downloadIdent downloadView downloadPackage downloadVersion = do
|
||||||
|
downloadUserAgent <- fmap decodeUtf8 <$> lookupHeader "user-agent"
|
||||||
|
downloadTimestamp <- liftIO getCurrentTime
|
||||||
|
runDB $ insert_ Download {..}
|
||||||
|
|||||||
@ -39,3 +39,11 @@ Package
|
|||||||
name' PackageName sql=name
|
name' PackageName sql=name
|
||||||
version Version
|
version Version
|
||||||
overwrite Bool
|
overwrite Bool
|
||||||
|
|
||||||
|
Download
|
||||||
|
ident PackageSetIdent Maybe
|
||||||
|
view HackageView Maybe
|
||||||
|
timestamp UTCTime
|
||||||
|
package PackageName
|
||||||
|
version Version
|
||||||
|
userAgent Text Maybe
|
||||||
|
|||||||
@ -69,6 +69,7 @@ library
|
|||||||
PatternGuards
|
PatternGuards
|
||||||
StandaloneDeriving
|
StandaloneDeriving
|
||||||
UndecidableInstances
|
UndecidableInstances
|
||||||
|
RecordWildCards
|
||||||
|
|
||||||
build-depends:
|
build-depends:
|
||||||
base >= 4
|
base >= 4
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user