|
|
|
@ -53,6 +53,9 @@ func main() {
|
|
|
|
|
r.HandleFunc("/api/v1/itb", showItemBHandler).Methods("GET", "OPTIONS") |
|
|
|
|
r.HandleFunc("/api/v1/itb/{id:[0-9]+}", getItemBHandler).Methods("GET", "OPTIONS") |
|
|
|
|
r.HandleFunc("/api/v1/itb/{id:[0-9]+}", updateItemBHandler).Methods("PUT", "OPTIONS") |
|
|
|
|
|
|
|
|
|
r.HandleFunc("/api/v1/upload", uploadFileHandler).Methods("POST", "OPTIONS") |
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
r.HandleFunc("/api/v1/ite", createItemExtHandler).Methods("POST", "OPTIONS") |
|
|
|
|
r.HandleFunc("/api/v1/ite/{id:[0-9]+}", deleteItemExtHandler).Methods("DELETE", "OPTIONS") |
|
|
|
@ -701,3 +704,78 @@ func updateItemBHandler(writer http.ResponseWriter, req *http.Request) {
|
|
|
|
|
writer.WriteHeader(http.StatusOK) |
|
|
|
|
writer.Write(b) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Upload Funktionen
|
|
|
|
|
func uploadFileHandlerHandler(writer http.ResponseWriter, req *http.Request) { |
|
|
|
|
writer.Header().Set("Access-Control-Allow-Origin", "*") |
|
|
|
|
if req.Method == http.MethodOptions { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
err := req.ParseMultipartForm(64 << 20) |
|
|
|
|
if err != nil { |
|
|
|
|
writer.WriteHeader(http.StatusBadRequest) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
var pho []Photos |
|
|
|
|
if req.Form["files"] != nil { |
|
|
|
|
for i := 0; i < len(req.Form["files"]); i++ { |
|
|
|
|
log.Info("File-Name:", req.FormValue("files[i].name")) |
|
|
|
|
|
|
|
|
|
file, handler, err := req.FormFile("files[i]") |
|
|
|
|
if err != nil { |
|
|
|
|
panic(err) //dont do this
|
|
|
|
|
} |
|
|
|
|
defer file.Close() |
|
|
|
|
os.Chdir(UploadPfad) |
|
|
|
|
// copy example
|
|
|
|
|
f, err := os.OpenFile(handler.Filename, os.O_WRONLY|os.O_CREATE, 0666) |
|
|
|
|
if err != nil { |
|
|
|
|
panic(err) //please dont
|
|
|
|
|
} |
|
|
|
|
defer f.Close() |
|
|
|
|
io.Copy(f, file) |
|
|
|
|
|
|
|
|
|
pho[i].Pfad = handler.Filename |
|
|
|
|
pho[i].ItembId = 0 |
|
|
|
|
pho[i].ItemextId = 0 |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for formKey, formValue := range req.Form { |
|
|
|
|
log.WithFields(log.Fields{formKey: formValue}).Info("parsing from Form: ") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
body, err := io.ReadAll(req.Body) |
|
|
|
|
if err != nil { |
|
|
|
|
writer.WriteHeader(http.StatusBadRequest) |
|
|
|
|
} |
|
|
|
|
var pho []Photos |
|
|
|
|
json.Unmarshal(body, &pho) |
|
|
|
|
} |
|
|
|
|
if len(pho) == 0 { |
|
|
|
|
log.Fatal("Error: Size of Array = 0") |
|
|
|
|
writer.WriteHeader(http.StatusInternalServerError) |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
for i := 0; i < len(pho); i++ { |
|
|
|
|
log.Println(pho[i]) |
|
|
|
|
log.Println("Name= ", pho[i].Pfad) |
|
|
|
|
log.Info("creating new Photo", pho[i].Pfad) |
|
|
|
|
res, err := CreatePhoto(pho[i]) |
|
|
|
|
if err != nil { |
|
|
|
|
writer.WriteHeader(http.StatusInternalServerError) |
|
|
|
|
} |
|
|
|
|
b, err := json.Marshal(res) |
|
|
|
|
if err != nil { |
|
|
|
|
log.Fatal("Error: ", err) |
|
|
|
|
} |
|
|
|
|
location := fmt.Sprintf("%s/%d", req.URL.String(), res.Id) |
|
|
|
|
writer.Header().Set("Location:", location) |
|
|
|
|
writer.Header().Set("Content-Type", "application/json") |
|
|
|
|
writer.WriteHeader(http.StatusCreated) |
|
|
|
|
writer.Write(b) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|