/**
Author: Mark George <mark.george@otago.ac.nz>
License: Zero-Clause BSD License
*/
package main
import (
"errors"
"strconv"
"strings"
)
var (
headers map[string]string = make(map[string]string)
bodies map[string]string = make(map[string]string)
contentTypes map[string]string = make(map[string]string)
statuses map[string]int = make(map[string]int)
)
func parseHeader(header string) (string, string, error) {
parts := strings.Split(header, ":")
if len(parts) < 2 {
return "", "", errors.New("header is not in the correct format")
} else {
name := strings.TrimSpace(parts[0])
value := strings.TrimSpace(parts[1])
// value had a ':' in it (probably a URL) so append the remaining part
if len(parts) == 3 {
value = value + ":" + strings.TrimSpace(parts[2])
}
headers[name] = value
return name, value, nil
}
}
func parseRoute(route string) (string, error) {
parts := strings.Split(route, "|")
if len(parts) != 4 {
return "", errors.New("route is not in the correct format")
} else {
path := parts[0]
body := parts[1]
contentType := parts[2]
status := parts[3]
code, err := strconv.Atoi(status)
if err != nil {
return "", errors.New("route is not in the correct format")
}
bodies[path] = body
statuses[path] = code
contentTypes[path] = contentType
return path, nil
}
}