diff --git a/backend/cmd/main.go b/backend/cmd/main.go index 631d3cf..1d7f216 100644 --- a/backend/cmd/main.go +++ b/backend/cmd/main.go @@ -23,6 +23,10 @@ type FormData struct { RespondentId int `json:"respondentID"` } +type BugReport struct { + BugText string `json:"bugText"` +} + func main() { router := gin.Default() router.Use(cors.Default()) @@ -89,6 +93,28 @@ func main() { c.JSON(http.StatusOK, "Successfully inserted formdata!") }) + router.POST("/submitbug", func(c *gin.Context) { + var requestBody BugReport + + // Bind JSON to the requestBody struct + if err := c.BindJSON(&requestBody); err != nil { + fmt.Print(err) + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request"}) + return + } + + // Here, you'd insert the bug text into your database + err := db.InsertBugReport(requestBody.BugText) + if err != nil { + fmt.Print(err) + c.JSON(http.StatusInternalServerError, gin.H{"error": "Unable to insert bug report"}) + return + } + + // Respond with a success message + c.JSON(http.StatusOK, "Successfully submitted bug report!") + }) + // Run the server on port 8080 router.Run(":8080") //db.SetupDb() diff --git a/backend/db/insert_bug_report.go b/backend/db/insert_bug_report.go new file mode 100644 index 0000000..76ae413 --- /dev/null +++ b/backend/db/insert_bug_report.go @@ -0,0 +1,48 @@ +package db + +import ( + "database/sql" + "fmt" + "log" + + _ "github.com/lib/pq" +) + +func InsertBugReport(bugText string) (error) { + // Connection string + psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+ + "password=%s dbname=%s sslmode=disable", + host, port, user, password, dbname) + + // Connect to the database + db, err := sql.Open("postgres", psqlInfo) + if err != nil { + log.Fatalf("Error opening database: %v\n", err) + } + defer db.Close() + + // Check the connection + err = db.Ping() + if err != nil { + log.Fatalf("Error connecting to the database: %v\n", err) + } + + insertStatement := ` + INSERT INTO FeilRapport (feilTekst) + VALUES ($1) + ` + stmt, err := db.Prepare(insertStatement) + if err != nil { + log.Fatalf("Error preparing statement: %v\n", err) + } + defer stmt.Close() + + _, err = stmt.Exec(bugText) + if err != nil { + log.Fatalf("Error executing statement: %v\n", err) + } + + fmt.Print("Inserted bug successfully") + + return nil +} \ No newline at end of file diff --git a/frontend/src/api/postBugData.ts b/frontend/src/api/postBugData.ts new file mode 100644 index 0000000..1d9943f --- /dev/null +++ b/frontend/src/api/postBugData.ts @@ -0,0 +1,20 @@ +export const postBugData = (bugText: string) => { + let url = "http://localhost:8080/submitbug"; + + const response = fetch(url, { + method: "POST", + body: JSON.stringify({ + bugText: bugText, + }), + }) + .then((response) => { + if (!response.ok) { + throw new Error(`HTTP error! Status: ${response.status}`); + } + return response.ok; + }) + .catch((error) => { + console.log(error); + }); + return response; +}; diff --git a/frontend/src/components/form/header/FormHeader.svelte b/frontend/src/components/form/header/FormHeader.svelte index 5598317..a32f7c9 100644 --- a/frontend/src/components/form/header/FormHeader.svelte +++ b/frontend/src/components/form/header/FormHeader.svelte @@ -13,7 +13,7 @@
{formQuestion}
Har du funnet feil eller mangler, eller er det noe du ønsker å melde i fra om angående spørreundersøkelsen? Skriv det i tekstfeltet under. (Dette er selvfølgelig helt anonymt også!)
+Har du funnet feil eller mangler, eller er det noe du ønsker å melde i fra om angående spørreundersøkelsen? Skriv det i tekstfeltet under.
-