phoenix/views/pages/import.go

39 lines
833 B
Go
Raw Permalink Normal View History

package pages
import (
"encoding/json"
"net/http"
"github.com/ordinary-dev/phoenix/database"
)
func ImportPage(w http.ResponseWriter, _ *http.Request) {
Render("import.html.tmpl", w, map[string]any{})
}
func Import(w http.ResponseWriter, r *http.Request) {
var exportFile ExportFile
data := []byte(r.FormValue("exportFile"))
if err := json.Unmarshal(data, &exportFile); err != nil {
ShowError(w, http.StatusBadRequest, err)
return
}
for _, g := range exportFile.Groups {
if err := database.CreateGroup(&g); err != nil {
ShowError(w, http.StatusInternalServerError, err)
return
}
for _, l := range g.Links {
l.GroupID = g.ID
if err := database.CreateLink(&l); err != nil {
ShowError(w, http.StatusInternalServerError, err)
return
}
}
}
http.Redirect(w, r, "/", http.StatusFound)
}