From 113b0fb4b786ea545a2eb6bbf0f20de47ee61334 Mon Sep 17 00:00:00 2001 From: Sindre Kjelsrud Date: Wed, 10 Jan 2024 13:05:58 +0100 Subject: [PATCH] :sparkles: reportbug is "finished" just need to update database! Co-authored-by: haraldnilsen Signed-off-by: Sindre Kjelsrud --- backend/cmd/main.go | 26 ++++++++++ backend/db/insert_bug_report.go | 48 +++++++++++++++++++ frontend/src/api/postBugData.ts | 20 ++++++++ .../components/form/header/FormHeader.svelte | 2 +- frontend/src/routes/reportbug/+page.svelte | 40 ++++++++++++++++ frontend/src/routes/reporterror/+page.svelte | 16 ------- 6 files changed, 135 insertions(+), 17 deletions(-) create mode 100644 backend/db/insert_bug_report.go create mode 100644 frontend/src/api/postBugData.ts create mode 100644 frontend/src/routes/reportbug/+page.svelte delete mode 100644 frontend/src/routes/reporterror/+page.svelte 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}

diff --git a/frontend/src/routes/reportbug/+page.svelte b/frontend/src/routes/reportbug/+page.svelte new file mode 100644 index 0000000..20ebad1 --- /dev/null +++ b/frontend/src/routes/reportbug/+page.svelte @@ -0,0 +1,40 @@ + + +
+
+
+

Å nei!

+

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å!)

+
+ +
+ + +
+ + +
+
+ + +
+
\ No newline at end of file diff --git a/frontend/src/routes/reporterror/+page.svelte b/frontend/src/routes/reporterror/+page.svelte deleted file mode 100644 index 8ee4390..0000000 --- a/frontend/src/routes/reporterror/+page.svelte +++ /dev/null @@ -1,16 +0,0 @@ -
-
-
-

Å nei!

-

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.

-
-
-
-
- -
-
-
- -
-
\ No newline at end of file