Add DELETE method support.

This commit is contained in:
Catherine
2025-09-19 03:54:22 +00:00
parent 9810a346f0
commit 5f3edfedf9
3 changed files with 37 additions and 4 deletions

View File

@@ -218,7 +218,12 @@ func (fs *FSBackend) CommitManifest(name string, manifest *Manifest) error {
}
func (fs *FSBackend) DeleteManifest(name string) error {
return fs.siteRoot.Remove(name)
err := fs.siteRoot.Remove(name)
if errors.Is(err, os.ErrNotExist) {
return nil
} else {
return err
}
}
func (fs *FSBackend) CheckDomain(domain string) (bool, error) {

View File

@@ -218,6 +218,31 @@ func putPage(w http.ResponseWriter, r *http.Request) error {
return nil
}
func deletePage(w http.ResponseWriter, r *http.Request) error {
_, err := AuthorizeRequest(r)
if err != nil {
return err
}
host := GetHost(r)
projectName, err := GetProjectName(r)
if err != nil {
return err
}
err = backend.DeleteManifest(makeWebRoot(host, projectName))
if err != nil {
w.WriteHeader(http.StatusInternalServerError)
} else {
w.WriteHeader(http.StatusOK)
}
if err != nil {
fmt.Fprintln(w, err)
}
return err
}
func postPage(w http.ResponseWriter, r *http.Request) error {
auth, err := AuthorizeRequest(r)
if err != nil {
@@ -320,6 +345,8 @@ func ServePages(w http.ResponseWriter, r *http.Request) {
err = getPage(w, r)
case http.MethodPut:
err = putPage(w, r)
case http.MethodDelete:
err = deletePage(w, r)
// webhook API
case http.MethodPost:
err = postPage(w, r)