🧑💻 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:
parent
48c17084df
commit
ccce73c939
6 changed files with 80 additions and 0 deletions
0
backend/cmd/db/backups/answer_backup.csv
Normal file
0
backend/cmd/db/backups/answer_backup.csv
Normal file
|
0
backend/cmd/db/backups/bugreport_backup.csv
Normal file
0
backend/cmd/db/backups/bugreport_backup.csv
Normal file
|
0
backend/cmd/db/backups/evaluation_backup.csv
Normal file
0
backend/cmd/db/backups/evaluation_backup.csv
Normal file
|
|
@ -2,8 +2,10 @@ package db
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"encoding/csv"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"os"
|
||||||
|
|
||||||
_ "github.com/lib/pq"
|
_ "github.com/lib/pq"
|
||||||
)
|
)
|
||||||
|
@ -27,6 +29,28 @@ func InsertBugReport(bugText string) (error) {
|
||||||
log.Fatalf("Error connecting to the database: %v\n", err)
|
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 := `
|
insertStatement := `
|
||||||
INSERT INTO FeilRapport (feiltekst)
|
INSERT INTO FeilRapport (feiltekst)
|
||||||
VALUES ($1)
|
VALUES ($1)
|
||||||
|
|
|
@ -2,8 +2,10 @@ package db
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"encoding/csv"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"os"
|
||||||
|
|
||||||
_ "github.com/lib/pq"
|
_ "github.com/lib/pq"
|
||||||
)
|
)
|
||||||
|
@ -27,6 +29,28 @@ func InsertEvaluation(evaluationText string) (error) {
|
||||||
log.Fatalf("Error connecting to the database: %v\n", err)
|
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 := `
|
insertStatement := `
|
||||||
INSERT INTO Evaluering (evalueringtekst)
|
INSERT INTO Evaluering (evalueringtekst)
|
||||||
VALUES ($1)
|
VALUES ($1)
|
||||||
|
|
|
@ -2,9 +2,12 @@ package db
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"encoding/csv"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
_ "github.com/lib/pq"
|
_ "github.com/lib/pq"
|
||||||
)
|
)
|
||||||
|
@ -16,6 +19,11 @@ type FormAnswer struct {
|
||||||
|
|
||||||
type AllFormAnswers []FormAnswer
|
type AllFormAnswers []FormAnswer
|
||||||
|
|
||||||
|
type CSVRow struct {
|
||||||
|
RespondentID string
|
||||||
|
AllAnswers string
|
||||||
|
}
|
||||||
|
|
||||||
func InsertUserAnswers(respondentId int, allAnswers string) (error) {
|
func InsertUserAnswers(respondentId int, allAnswers string) (error) {
|
||||||
|
|
||||||
// Connection string
|
// Connection string
|
||||||
|
@ -36,6 +44,30 @@ func InsertUserAnswers(respondentId int, allAnswers string) (error) {
|
||||||
log.Fatalf("Error connecting to the database: %v\n", err)
|
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)
|
var convertedFormAnswers = convertAnswerFormat(allAnswers)
|
||||||
|
|
||||||
for _,formanswer := range convertedFormAnswers {
|
for _,formanswer := range convertedFormAnswers {
|
||||||
|
|
Reference in a new issue