41 lines
		
	
	
		
			835 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			835 B
		
	
	
	
		
			Go
		
	
	
	
| package browse
 | |
| 
 | |
| import (
 | |
| 	"net/http"
 | |
| 	"os"
 | |
| 	"strings"
 | |
| 
 | |
| 	"github.com/hacdias/caddy-hugo/config"
 | |
| )
 | |
| 
 | |
| // DELETE handles the delete requests on browse pages
 | |
| func DELETE(w http.ResponseWriter, r *http.Request, c *config.Config) (int, error) {
 | |
| 	// Remove both beginning and trailing slashes
 | |
| 	path := r.URL.Path
 | |
| 	path = strings.TrimPrefix(path, "/")
 | |
| 	path = strings.TrimSuffix(path, "/")
 | |
| 	path = c.Path + path
 | |
| 
 | |
| 	// Check if the file or directory exists
 | |
| 	if stat, err := os.Stat(path); err == nil {
 | |
| 		var err error
 | |
| 		// If it's dir, remove all of the content inside
 | |
| 		if stat.IsDir() {
 | |
| 			err = os.RemoveAll(path)
 | |
| 		} else {
 | |
| 			err = os.Remove(path)
 | |
| 		}
 | |
| 
 | |
| 		// Check for errors
 | |
| 		if err != nil {
 | |
| 			return 500, err
 | |
| 		}
 | |
| 	} else {
 | |
| 		return 404, nil
 | |
| 	}
 | |
| 
 | |
| 	w.Header().Set("Content-Type", "application/json")
 | |
| 	w.Write([]byte("{}"))
 | |
| 	return 200, nil
 | |
| }
 |