package handler import ( "encoding/json" "fmt" "io" "net/http" "vctp/db" queries "vctp/db/queries" models "vctp/server/models" ) // VmImport is used for bulk import of existing VMs func (h *Handler) VmImport(w http.ResponseWriter, r *http.Request) { reqBody, err := io.ReadAll(r.Body) if err != nil { h.Logger.Error("Invalid data received", "error", err) fmt.Fprintf(w, "Invalid data received") w.WriteHeader(http.StatusInternalServerError) return } else { h.Logger.Debug("received input data", "length", len(reqBody)) } // Decode the JSON body into CloudEventReceived struct var inData models.ImportReceived if err := json.Unmarshal(reqBody, &inData); err != nil { h.Logger.Error("unable to decode json", "error", err) http.Error(w, "Invalid JSON body", http.StatusBadRequest) return } else { h.Logger.Debug("successfully decoded JSON") prettyPrint(inData) } // Create an instance of CreateInventoryParams var params queries.CreateInventoryParams // Convert vmModel to CreateInventoryParams using the utility function db.ConvertToSQLParams(&inData, ¶ms) prettyPrint(params) //h.Logger.Debug("received import request", "body", string(reqBody)) w.WriteHeader(http.StatusOK) fmt.Fprintf(w, "Import Request (%d): %v\n", len(reqBody), string(reqBody)) }