🧑‍💻 add backup solution for data

Co-authored-by: haraldnilsen <harald_998@hotmail.com>
Signed-off-by: Sindre Kjelsrud <kjelsrudsindre@gmail.com>
This commit is contained in:
Sindre Kjelsrud 2024-01-14 15:52:07 +01:00
parent 48c17084df
commit ccce73c939
Signed by untrusted user who does not match committer: sidski
GPG key ID: D2BBDF3EDE6BA9A6
6 changed files with 80 additions and 0 deletions

View file

View file

@ -2,8 +2,10 @@ package db
import (
"database/sql"
"encoding/csv"
"fmt"
"log"
"os"
_ "github.com/lib/pq"
)
@ -27,6 +29,28 @@ func InsertBugReport(bugText string) (error) {
log.Fatalf("Error connecting to the database: %v\n", err)
}
// Write bugText to backup-file
file, err := os.OpenFile("cmd/db/backups/bugreport_backup.csv", os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600)
if err != nil {
log.Fatalln("error opening file", err)
}
defer file.Close()
// Prepare the row to be written
rowSlice := []string{bugText}
// Create a CSV writer and write the row
csvwriter := csv.NewWriter(file)
if err := csvwriter.Write(rowSlice); err != nil {
log.Fatalln("error writing record to file", err)
}
// Flush the writer and check for errors
csvwriter.Flush()
if err := csvwriter.Error(); err != nil {
log.Fatal(err)
}
insertStatement := `
INSERT INTO FeilRapport (feiltekst)
VALUES ($1)

View file

@ -2,8 +2,10 @@ package db
import (
"database/sql"
"encoding/csv"
"fmt"
"log"
"os"
_ "github.com/lib/pq"
)
@ -27,6 +29,28 @@ func InsertEvaluation(evaluationText string) (error) {
log.Fatalf("Error connecting to the database: %v\n", err)
}
// Write evaluationText to backup-file
file, err := os.OpenFile("cmd/db/backups/evaluation_backup.csv", os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600)
if err != nil {
log.Fatalln("error opening file", err)
}
defer file.Close()
// Prepare the row to be written
rowSlice := []string{evaluationText}
// Create a CSV writer and write the row
csvwriter := csv.NewWriter(file)
if err := csvwriter.Write(rowSlice); err != nil {
log.Fatalln("error writing record to file", err)
}
// Flush the writer and check for errors
csvwriter.Flush()
if err := csvwriter.Error(); err != nil {
log.Fatal(err)
}
insertStatement := `
INSERT INTO Evaluering (evalueringtekst)
VALUES ($1)

View file

@ -2,9 +2,12 @@ package db
import (
"database/sql"
"encoding/csv"
"encoding/json"
"fmt"
"log"
"os"
"strconv"
_ "github.com/lib/pq"
)
@ -16,6 +19,11 @@ type FormAnswer struct {
type AllFormAnswers []FormAnswer
type CSVRow struct {
RespondentID string
AllAnswers string
}
func InsertUserAnswers(respondentId int, allAnswers string) (error) {
// Connection string
@ -36,6 +44,30 @@ func InsertUserAnswers(respondentId int, allAnswers string) (error) {
log.Fatalf("Error connecting to the database: %v\n", err)
}
// Write answers to backup-file
file, err := os.OpenFile("cmd/db/backups/answer_backup.csv", os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600)
if err != nil {
fmt.Println(err)
}
var row = CSVRow{strconv.Itoa(respondentId), allAnswers}
rowSlice := []string{row.RespondentID, row.AllAnswers}
csvwriter := csv.NewWriter(file)
if err := csvwriter.Write(rowSlice); err != nil {
log.Fatalln("error writing record to file", err)
}
csvwriter.Flush()
// Check for errors from flushing
if err := csvwriter.Error(); err != nil {
log.Fatal(err)
}
// Convert answer format
var convertedFormAnswers = convertAnswerFormat(allAnswers)
for _,formanswer := range convertedFormAnswers {