parseResponse runs the response parsers on the navigation response
(resp *navigation.Response)
| 76 | |
| 77 | // parseResponse runs the response parsers on the navigation response |
| 78 | func (p *Parser) ParseResponse(resp *navigation.Response) (navigationRequests []*navigation.Request) { |
| 79 | for _, parser := range *p { |
| 80 | switch { |
| 81 | case parser.parserType == headerParser && resp.Resp != nil: |
| 82 | navigationRequests = appendFiltered(navigationRequests, parser.parserFunc(resp)) |
| 83 | case parser.parserType == bodyParser && resp.Reader != nil: |
| 84 | navigationRequests = appendFiltered(navigationRequests, parser.parserFunc(resp)) |
| 85 | case parser.parserType == contentParser && len(resp.Body) > 0: |
| 86 | navigationRequests = appendFiltered(navigationRequests, parser.parserFunc(resp)) |
| 87 | } |
| 88 | } |
| 89 | return |
| 90 | } |
| 91 | |
| 92 | // appendFiltered filters navigation requests and appends valid ones to the slice |
| 93 | func appendFiltered(existing []*navigation.Request, new []*navigation.Request) []*navigation.Request { |