Implement static responses for testing

This commit is contained in:
Felix Geisendörfer 2013-03-18 10:55:22 +01:00
parent db98c72b3e
commit 17a8d892bf
1 changed files with 23 additions and 5 deletions

View File

@ -2,10 +2,19 @@ package main
import (
"fmt"
"net/http"
"log"
"net/http"
"regexp"
)
// temporary, to provide a mock server for the HTML5 client while the actual
// storage is still under development here.
const (
exampleId = "0bc88096498be52d7909bcec815d37b3"
)
var fileRoute = regexp.MustCompile("^/files/([^/]+)$")
func serveHttp() error {
http.HandleFunc("/", route)
@ -22,6 +31,17 @@ func route(w http.ResponseWriter, r *http.Request) {
if r.Method == "POST" && r.URL.Path == "/files" {
createFile(w, r)
} else if match := fileRoute.FindStringSubmatch(r.URL.Path); match != nil {
switch r.Method {
case "HEAD":
w.Header().Set("X-Resume", "bytes=0-99")
case "GET":
reply(w, http.StatusNotImplemented, "File download")
case "PUT":
reply(w, http.StatusOK, "chunk created")
default:
reply(w, http.StatusMethodNotAllowed, "Invalid http method")
}
} else {
reply(w, http.StatusNotFound, "No matching route")
}
@ -54,8 +74,6 @@ func createFile(w http.ResponseWriter, r *http.Request) {
contentType = "application/octet-stream"
}
_ = contentType
id := uid()
w.Header().Set("Location", "/files/"+id)
w.Header().Set("Location", "/files/"+exampleId)
w.WriteHeader(http.StatusCreated)
}