func handleCamli(conn http.ResponseWriter, req *http.Request) { handler := func(conn http.ResponseWriter, req *http.Request) { httputil.BadRequestError(conn, fmt.Sprintf("Unsupported path (%s) or method (%s).", req.URL.Path, req.Method)) } if *flagRequestLog { log.Printf("%s %s", req.Method, req.RawURL) } switch req.Method { case "GET": switch req.URL.Path { case "/camli/enumerate-blobs": handler = auth.RequireAuth(handleEnumerateBlobs) default: handler = createGetHandler(blobFetcher) } case "POST": switch req.URL.Path { case "/camli/preupload": handler = auth.RequireAuth(handlePreUpload) case "/camli/upload": handler = auth.RequireAuth(handleMultiPartUpload) case "/camli/testform": // debug only handler = handleTestForm case "/camli/form": // debug only handler = handleCamliForm } case "PUT": // no longer part of spec handler = auth.RequireAuth(handlePut) } handler(conn, req) }
func handleCamliUsingStorage(conn http.ResponseWriter, req *http.Request, action string, storage blobserver.StorageConfiger) { handler := unsupportedHandler switch req.Method { case "GET": switch action { case "enumerate-blobs": handler = auth.RequireAuth(handlers.CreateEnumerateHandler(storage)) case "stat": handler = auth.RequireAuth(handlers.CreateStatHandler(storage)) default: handler = handlers.CreateGetHandler(storage) } case "POST": switch action { case "stat": handler = auth.RequireAuth(handlers.CreateStatHandler(storage)) case "upload": handler = auth.RequireAuth(handlers.CreateUploadHandler(storage)) case "remove": handler = auth.RequireAuth(handlers.CreateRemoveHandler(storage)) } case "PUT": // no longer part of spec handler = auth.RequireAuth(handlers.CreateNonStandardPutHandler(storage)) } handler(conn, req) }
func handleCamliSig(conn http.ResponseWriter, req *http.Request) { handler := func(conn http.ResponseWriter, req *http.Request) { httputil.BadRequestError(conn, "Unsupported path or method.") } switch req.Method { case "POST": switch req.URL.Path { case "/camli/sig/sign": handler = auth.RequireAuth(handleSign) case "/camli/sig/verify": handler = handleVerify } } handler(conn, req) }