Skip to content
Snippets Groups Projects

Replace entire project structure

Files

+ 44
0
 
package api
 
 
import (
 
"encoding/json"
 
"git.kuschku.de/justjanne/imghost-frontend/auth"
 
"git.kuschku.de/justjanne/imghost-frontend/environment"
 
"git.kuschku.de/justjanne/imghost-frontend/model"
 
"git.kuschku.de/justjanne/imghost-frontend/util"
 
"net/http"
 
)
 
 
func CreateAlbum(env environment.FrontendEnvironment) http.Handler {
 
return http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
 
var err error
 
user, err := auth.ParseUser(request, env)
 
if err != nil {
 
http.Error(writer, err.Error(), http.StatusUnauthorized)
 
return
 
}
 
println("parsed user: " + user.Name)
 
 
var data model.Album
 
err = json.NewDecoder(request.Body).Decode(&data)
 
if err != nil {
 
http.Error(writer, err.Error(), http.StatusInternalServerError)
 
return
 
}
 
 
data.Id = generateId()
 
data.Owner = user.Id
 
err = env.Repositories.Albums.Create(data)
 
if err != nil {
 
http.Error(writer, err.Error(), http.StatusInternalServerError)
 
return
 
}
 
 
album, err := env.Repositories.Albums.Get(data.Id)
 
if err != nil {
 
http.Error(writer, err.Error(), http.StatusInternalServerError)
 
return
 
}
 
util.ReturnJson(writer, album)
 
})
 
}
Loading