Skip to content

Commit bedab56

Browse files
committed
Move ResponseType into Response module
1 parent 173dddc commit bedab56

File tree

2 files changed

+34
-3
lines changed

2 files changed

+34
-3
lines changed

src/Network/HTTP/Affjax.purs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import Data.Nullable (Nullable(), toNullable)
2323
import DOM.XHR (XMLHttpRequest())
2424
import Network.HTTP.Affjax.Request
2525
import Network.HTTP.Affjax.Response
26-
import Network.HTTP.Affjax.ResponseType
2726
import Network.HTTP.Method (Method(..), methodToString)
2827
import Network.HTTP.RequestHeader (RequestHeader(), requestHeaderName, requestHeaderValue)
2928
import Network.HTTP.ResponseHeader (ResponseHeader(), responseHeader)

src/Network/HTTP/Affjax/Response.purs

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
module Network.HTTP.Affjax.Response
2-
( ResponseContent()
2+
( ResponseType(), responseTypeToString
3+
, ResponseContent()
34
, Respondable, responseType, fromResponse
45
) where
56

@@ -9,10 +10,41 @@ import Data.Foreign (Foreign(), F(), readString, parseJSON, unsafeReadTagged)
910
import DOM (Document())
1011
import DOM.File (Blob())
1112
import DOM.XHR (FormData())
12-
import Network.HTTP.Affjax.ResponseType
1313
import Type.Proxy (Proxy())
1414
import qualified Data.ArrayBuffer.Types as A
1515

16+
-- | Valid response types for an AJAX request. This is used to determine the
17+
-- | `ResponseContent` type for a request.
18+
data ResponseType
19+
= ArrayBufferResponse
20+
| BlobResponse
21+
| DocumentResponse
22+
| JSONResponse
23+
| StringResponse
24+
25+
instance eqResponseType :: Eq ResponseType where
26+
(==) ArrayBufferResponse ArrayBufferResponse = true
27+
(==) BlobResponse BlobResponse = true
28+
(==) DocumentResponse DocumentResponse = true
29+
(==) JSONResponse JSONResponse = true
30+
(==) StringResponse StringResponse = true
31+
(==) _ _ = false
32+
(/=) x y = not (x == y)
33+
34+
instance showResponseType :: Show ResponseType where
35+
show ArrayBufferResponse = "ArrayBufferResponse"
36+
show BlobResponse = "BlobResponse"
37+
show DocumentResponse = "DocumentResponse"
38+
show JSONResponse = "JSONResponse"
39+
show StringResponse = "StringResponse"
40+
41+
responseTypeToString :: ResponseType -> String
42+
responseTypeToString ArrayBufferResponse = "arraybuffer"
43+
responseTypeToString BlobResponse = "blob"
44+
responseTypeToString DocumentResponse = "document"
45+
responseTypeToString JSONResponse = "json"
46+
responseTypeToString StringResponse = "text"
47+
1648
-- | Type representing content types that be received from an XHR request
1749
-- | (Blob, Document, JSON, String).
1850
type ResponseContent = Foreign

0 commit comments

Comments
 (0)