Skip to content
Snippets Groups Projects
Select Git revision
  • c140876a3f05d106413300a1fa2346ac90bce7e6
  • main default protected
  • ui-rewrite
3 results

albumimage_update.go

Blame
  • albumimage_update.go 1.11 KiB
    package api
    
    import (
    	"database/sql"
    	"encoding/json"
    	"git.kuschku.de/justjanne/imghost-frontend/environment"
    	"git.kuschku.de/justjanne/imghost-frontend/model"
    	"github.com/gorilla/mux"
    	"net/http"
    )
    
    func UpdateAlbumImage(env environment.FrontendEnvironment) http.Handler {
    	return http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
    		var err error
    
    		vars := mux.Vars(request)
    		image, err := env.Repositories.AlbumImages.Get(
    			vars["albumId"],
    			vars["imageId"])
    		if err == sql.ErrNoRows {
    			http.NotFound(writer, request)
    			return
    		} else if err != nil {
    			http.Error(writer, err.Error(), http.StatusInternalServerError)
    			return
    		}
    
    		var changes model.AlbumImage
    		err = json.NewDecoder(request.Body).Decode(&changes)
    		if err != nil {
    			http.Error(writer, err.Error(), http.StatusInternalServerError)
    			return
    		}
    		image.Title = changes.Title
    		image.Description = changes.Description
    
    		err = env.Repositories.AlbumImages.Update(image)
    		if err != nil {
    			http.Error(writer, err.Error(), http.StatusInternalServerError)
    			return
    		}
    
    		writer.WriteHeader(http.StatusNoContent)
    	})
    }