🧑💻 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 ( | ||||
| 	"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) | ||||
|  |  | |||
|  | @ -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) | ||||
|  |  | |||
|  | @ -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 { | ||||
|  |  | |||
		Reference in a new issue
	
	 Sindre Kjelsrud
						Sindre Kjelsrud