fix: delete image cache when moving
This commit is contained in:
		
							parent
							
								
									18889ad725
								
							
						
					
					
						commit
						8973c4598f
					
				| 
						 | 
				
			
			@ -57,7 +57,7 @@ func NewHandler(
 | 
			
		|||
	api.PathPrefix("/resources").Handler(monkey(resourceDeleteHandler(fileCache), "/api/resources")).Methods("DELETE")
 | 
			
		||||
	api.PathPrefix("/resources").Handler(monkey(resourcePostHandler(fileCache), "/api/resources")).Methods("POST")
 | 
			
		||||
	api.PathPrefix("/resources").Handler(monkey(resourcePutHandler, "/api/resources")).Methods("PUT")
 | 
			
		||||
	api.PathPrefix("/resources").Handler(monkey(resourcePatchHandler, "/api/resources")).Methods("PATCH")
 | 
			
		||||
	api.PathPrefix("/resources").Handler(monkey(resourcePatchHandler(fileCache), "/api/resources")).Methods("PATCH")
 | 
			
		||||
 | 
			
		||||
	api.Path("/shares").Handler(monkey(shareListHandler, "/api/shares")).Methods("GET")
 | 
			
		||||
	api.PathPrefix("/share").Handler(monkey(shareGetsHandler, "/api/share")).Methods("GET")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -180,7 +180,8 @@ var resourcePutHandler = withUser(func(w http.ResponseWriter, r *http.Request, d
 | 
			
		|||
	return errToStatus(err), err
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
var resourcePatchHandler = withUser(func(w http.ResponseWriter, r *http.Request, d *data) (int, error) {
 | 
			
		||||
func resourcePatchHandler(fileCache FileCache) handleFunc {
 | 
			
		||||
	return withUser(func(w http.ResponseWriter, r *http.Request, d *data) (int, error) {
 | 
			
		||||
		src := r.URL.Path
 | 
			
		||||
		dst := r.URL.Query().Get("destination")
 | 
			
		||||
		action := r.URL.Query().Get("action")
 | 
			
		||||
| 
						 | 
				
			
			@ -214,6 +215,18 @@ var resourcePatchHandler = withUser(func(w http.ResponseWriter, r *http.Request,
 | 
			
		|||
			return http.StatusForbidden, nil
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		file, err := files.NewFileInfo(files.FileOptions{
 | 
			
		||||
			Fs:         d.user.Fs,
 | 
			
		||||
			Path:       r.URL.Path,
 | 
			
		||||
			Modify:     d.user.Perm.Modify,
 | 
			
		||||
			Expand:     false,
 | 
			
		||||
			ReadHeader: d.server.TypeDetectionByHeader,
 | 
			
		||||
			Checker:    d,
 | 
			
		||||
		})
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return errToStatus(err), err
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		err = d.RunHook(func() error {
 | 
			
		||||
			switch action {
 | 
			
		||||
			// TODO: use enum
 | 
			
		||||
| 
						 | 
				
			
			@ -230,6 +243,12 @@ var resourcePatchHandler = withUser(func(w http.ResponseWriter, r *http.Request,
 | 
			
		|||
				src = path.Clean("/" + src)
 | 
			
		||||
				dst = path.Clean("/" + dst)
 | 
			
		||||
 | 
			
		||||
				// delete thumbnails
 | 
			
		||||
				err = delThumbs(r.Context(), fileCache, file)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					return err
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				return fileutils.MoveFile(d.user.Fs, src, dst)
 | 
			
		||||
			default:
 | 
			
		||||
				return fmt.Errorf("unsupported action %s: %w", action, errors.ErrInvalidRequestParams)
 | 
			
		||||
| 
						 | 
				
			
			@ -238,6 +257,7 @@ var resourcePatchHandler = withUser(func(w http.ResponseWriter, r *http.Request,
 | 
			
		|||
 | 
			
		||||
		return errToStatus(err), err
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func checkParent(src, dst string) error {
 | 
			
		||||
	rel, err := filepath.Rel(src, dst)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue