Skip to content

Commit 76b9b7c

Browse files
committed
Rename GitHub module to Http
1 parent 89f4ee2 commit 76b9b7c

File tree

4 files changed

+33
-16
lines changed

4 files changed

+33
-16
lines changed

src/backend/GitHub.hs renamed to src/backend/Http.hs

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{-# OPTIONS_GHC -Wall #-}
22
{-# LANGUAGE OverloadedStrings #-}
3-
module GitHub (Token, init, fetch) where
3+
module Http (Token, init, fetch, fetchGithub) where
44

55

66
import Prelude hiding (init)
@@ -31,7 +31,7 @@ init :: String -> IO Token
3131
init githubToken =
3232
do manager <- Http.newManager Http.tlsManagerSettings
3333
let token = Token manager githubToken
34-
response <- fetch token "/"
34+
response <- fetchGithub token "/"
3535
case response of
3636
Left err ->
3737
error $ "Bad OAuth access token for GitHub.\n" ++ err
@@ -41,15 +41,32 @@ init githubToken =
4141

4242

4343

44-
-- GITHUB REQUESTS
44+
-- ARBITRARY REQUESTS
4545

4646

4747
fetch :: Token -> String -> IO (Either String LBS.ByteString)
48-
fetch (Token manager token) path =
48+
fetch (Token manager _) url =
4949
let
50-
recover e =
51-
return $ Left $ show (e :: SomeException)
50+
attempt =
51+
do request <- Http.parseUrlThrow url
52+
response <- Http.httpLbs request manager
53+
return $ Right $ Http.responseBody response
54+
in
55+
attempt `catch` recover
56+
57+
58+
recover :: SomeException -> IO (Either String a)
59+
recover e =
60+
return $ Left $ show e
5261

62+
63+
64+
-- GITHUB REQUESTS
65+
66+
67+
fetchGithub :: Token -> String -> IO (Either String LBS.ByteString)
68+
fetchGithub (Token manager token) path =
69+
let
5370
attempt =
5471
do request <- Http.parseUrlThrow $ "https://api.github.com" ++ path
5572
response <- flip Http.httpLbs manager $ request

src/backend/Main.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import System.Console.CmdArgs
88
import System.Directory (doesFileExist, createDirectoryIfMissing)
99

1010
import qualified Artifacts
11-
import qualified GitHub
11+
import qualified Http
1212
import qualified Memory
1313
import qualified Server
1414

@@ -54,7 +54,7 @@ main =
5454
else Artifacts.compile
5555

5656
memory <- Memory.init
57-
token <- GitHub.init (github cargs)
57+
token <- Http.init (github cargs)
5858

5959
let config = setPort (port cargs) defaultConfig
6060
httpServe config (Server.serve token memory)

src/backend/Package/Register.hs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import qualified System.IO as IO
2121
import qualified System.IO.Streams as Stream
2222

2323
import qualified Elm.Package as Pkg
24-
import qualified GitHub
24+
import qualified Http
2525
import qualified Json.Decode as Decode
2626
import qualified Json.Encode as Encode
2727
import qualified Memory
@@ -40,7 +40,7 @@ import qualified Server.Error as Error
4040
4141
-}
4242

43-
register :: GitHub.Token -> Memory.Memory -> Snap.Snap ()
43+
register :: Http.Token -> Memory.Memory -> Snap.Snap ()
4444
register token memory =
4545
do name <- verifyName =<< getQueryParam "name"
4646
commitHash <- getQueryParam "commit-hash"
@@ -103,7 +103,7 @@ badNameMessage name problem =
103103
-- VERIFY VERSION
104104

105105

106-
verifyVersion :: GitHub.Token -> Memory.Memory -> Pkg.Name -> Text -> Text -> Snap.Snap Pkg.Version
106+
verifyVersion :: Http.Token -> Memory.Memory -> Pkg.Name -> Text -> Text -> Snap.Snap Pkg.Version
107107
verifyVersion token memory name commitHash rawVersion =
108108
case Pkg.versionFromText rawVersion of
109109
Left problem ->
@@ -128,16 +128,16 @@ verifyIsNew memory name vsn =
128128
"Version " ++ Pkg.versionToString vsn ++ " has already been published."
129129

130130

131-
verifyTag :: GitHub.Token -> Pkg.Name -> Pkg.Version -> Text -> Snap.Snap ()
131+
verifyTag :: Http.Token -> Pkg.Name -> Pkg.Version -> Text -> Snap.Snap ()
132132
verifyTag token name version commitHash =
133133
do githubHash <- getCommitHash token name version
134134
when (commitHash /= githubHash) $ Error.string 400 $
135135
"The commit tagged on github as " ++ Pkg.versionToString version ++ " is not the one I was expecting."
136136

137137

138-
getCommitHash :: GitHub.Token -> Pkg.Name -> Pkg.Version -> Snap.Snap Text
138+
getCommitHash :: Http.Token -> Pkg.Name -> Pkg.Version -> Snap.Snap Text
139139
getCommitHash token name version =
140-
do response <- liftIO $ GitHub.fetch token $
140+
do response <- liftIO $ Http.fetchGithub token $
141141
"/repos/" ++ Pkg.toUrl name ++ "/git/refs/tags/" ++ Pkg.versionToString version
142142

143143
case response of

src/backend/Server.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import qualified Elm.Compiler.Module as Module
1313
import qualified Elm.Package as Pkg
1414
import qualified Json.Encode as Encode
1515

16-
import qualified GitHub
16+
import qualified Http
1717
import Memory (Memory)
1818
import qualified Memory
1919
import qualified Memory.History as History
@@ -28,7 +28,7 @@ import qualified ServeFile
2828
-- SERVE
2929

3030

31-
serve :: GitHub.Token -> Memory -> S.Snap ()
31+
serve :: Http.Token -> Memory -> S.Snap ()
3232
serve token memory =
3333
asum
3434
[

0 commit comments

Comments
 (0)