Better caldav support (#73)
This commit is contained in:
37
vendor/github.com/samedi/caldav-go/handlers/get.go
generated
vendored
Normal file
37
vendor/github.com/samedi/caldav-go/handlers/get.go
generated
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"github.com/samedi/caldav-go/global"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type getHandler struct {
|
||||
request *http.Request
|
||||
response *Response
|
||||
onlyHeaders bool
|
||||
}
|
||||
|
||||
func (gh getHandler) Handle() *Response {
|
||||
resource, _, err := global.Storage.GetResource(gh.request.URL.Path)
|
||||
if err != nil {
|
||||
return gh.response.SetError(err)
|
||||
}
|
||||
|
||||
var response string
|
||||
if gh.onlyHeaders {
|
||||
response = ""
|
||||
} else {
|
||||
response, _ = resource.GetContentData()
|
||||
}
|
||||
|
||||
etag, _ := resource.GetEtag()
|
||||
lastm, _ := resource.GetLastModified(http.TimeFormat)
|
||||
ctype, _ := resource.GetContentType()
|
||||
|
||||
gh.response.SetHeader("ETag", etag).
|
||||
SetHeader("Last-Modified", lastm).
|
||||
SetHeader("Content-Type", ctype).
|
||||
Set(http.StatusOK, response)
|
||||
|
||||
return gh.response
|
||||
}
|
Reference in New Issue
Block a user