@@ -5,37 +5,37 @@ parseRequest = (requestString) ->
55 parsedRequestLine = parseRequestLine lines .shift ()
66 request[' method' ] = parsedRequestLine[' method' ]
77 request[' uri' ] = parsedRequestLine[' uri' ]
8-
8+
99 # TODO refactor this part to be tested
1010 headerLines = []
1111 while lines .length > 0
1212 line = lines .shift ()
1313 break if line == " "
1414 headerLines .push line
15-
15+
1616 request[' headers' ] = parseHeaders headerLines
1717 request[' body' ] = lines .join ' \r\n '
18-
18+
1919 request
2020
2121parseResponse = (responseString ) ->
2222 response = {}
2323 lines = responseString .split (' \r\n ' )
24-
24+
2525 parsedStatusLine = parseStatusLine lines .shift ()
2626 response[' statusCode' ] = parsedStatusLine[' statusCode' ]
2727 response[' statusMessage' ] = parsedStatusLine[' statusMessage' ]
28-
28+
2929 # TODO refactor this part to be tested
3030 headerLines = []
3131 while lines .length > 0
3232 line = lines .shift ()
3333 break if line == " "
3434 headerLines .push line
35-
35+
3636 response[' headers' ] = parseHeaders headerLines
3737 response[' body' ] = lines .join ' \r\n '
38-
38+
3939 response
4040
4141parseHeaders = (headerLines ) ->
@@ -48,15 +48,16 @@ parseHeaders = (headerLines) ->
4848 headers
4949
5050parseStatusLine = (statusLine ) ->
51- parts = statusLine .split ' '
51+ parts = statusLine .match / ^ ( . + ) ( [ 0-9 ] {3} ) ( . * ) $ /
5252 parsed = {}
5353
54- parsed[' protocol' ] = parts[0 ]
55- parsed[' statusCode' ] = parts[1 ]
56- parsed[' statusMessage' ] = parts[2 ]
54+ if parts isnt null
55+ parsed[' protocol' ] = parts[1 ]
56+ parsed[' statusCode' ] = parts[2 ]
57+ parsed[' statusMessage' ] = parts[3 ]
5758
5859 parsed
59-
60+
6061parseRequestLine = (requestLineString ) ->
6162 parts = requestLineString .split (' ' )
6263 parsed = {}
@@ -71,4 +72,4 @@ module.exports.parseRequest = parseRequest
7172module .exports .parseResponse = parseResponse
7273module .exports .parseRequestLine = parseRequestLine
7374module .exports .parseStatusLine = parseStatusLine
74- module .exports .parseHeaders = parseHeaders
75+ module .exports .parseHeaders = parseHeaders
0 commit comments