29 lines
1.1 KiB
Go
29 lines
1.1 KiB
Go
package caldav
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/samedi/caldav-go/data"
|
|
"github.com/samedi/caldav-go/handlers"
|
|
)
|
|
|
|
// RequestHandler handles the given CALDAV request and writes the reponse righ away. This function is to be
|
|
// used by passing it directly as the handle func to the `http` lib. Example: http.HandleFunc("/", caldav.RequestHandler).
|
|
func RequestHandler(writer http.ResponseWriter, request *http.Request) {
|
|
response := HandleRequest(request)
|
|
response.Write(writer)
|
|
}
|
|
|
|
// HandleRequest handles the given CALDAV request and returns the response. Useful when the caller
|
|
// wants to do something else with the response before writing it to the response stream.
|
|
func HandleRequest(request *http.Request) *handlers.Response {
|
|
handler := handlers.NewHandler(request)
|
|
return handler.Handle()
|
|
}
|
|
|
|
// HandleRequestWithStorage handles the request the same way as `HandleRequest` does, but before,
|
|
// it sets the given storage that will be used throughout the request handling flow.
|
|
func HandleRequestWithStorage(request *http.Request, stg data.Storage) *handlers.Response {
|
|
SetupStorage(stg)
|
|
return HandleRequest(request)
|
|
}
|