From e6ae628ac5a72bb106df9278e72d38a8617dea7d Mon Sep 17 00:00:00 2001 From: Joshua Herring Date: Fri, 1 May 2026 02:04:47 -0400 Subject: [PATCH] initial commit --- convert_data.go | 199 ++++++++++++++++++++++++++++++++++++++++++++++++ go.mod | 21 +++++ 2 files changed, 220 insertions(+) create mode 100644 convert_data.go create mode 100644 go.mod diff --git a/convert_data.go b/convert_data.go new file mode 100644 index 0000000..757efb4 --- /dev/null +++ b/convert_data.go @@ -0,0 +1,199 @@ +package main + +import ( + "encoding/json" + _ "fmt" + "log" + "os" + + "maurer/grading_report/dbi" +) + +func read_enrollments() { + + var entity_map map[string][]dbi.SectionEnrollment + var all_enrollments []dbi.SectionEnrollment + + import_data, e := os.ReadFile("data/enrollments.json") + if e != nil { + log.Fatalf("Unable to open enrollments.json: %s\n", e) + } + + e = json.Unmarshal(import_data, &entity_map) + if e != nil { + log.Fatalf("Unable to read data from enrollments.json: %s\n", e) + } + + for _, entities := range entity_map { + for _, entity := range entities { + all_enrollments = append(all_enrollments, entity) + } + } + + e = dbi.BulkAddEnrollments(all_enrollments) + if e != nil { + log.Fatalf("Error saving enrollment: %s\n", e) + } + +} + +func read_users() { + var entity_map map[string]dbi.User + var entities []dbi.User + + entity_data, e := os.ReadFile("data/users.json") + if e != nil { + log.Fatalf("Unable to open sections.json: %s\n", e) + } + + e = json.Unmarshal(entity_data, &entity_map) + if e != nil { + log.Fatalf("Unable to read data from sections.json: %s\n", e) + } + + for _, entity := range entity_map { + entities = append(entities, entity) + } + + e = dbi.BulkAddUser(entities) + if e != nil { + log.Fatalf("Error saving user: %s\n", e) + } + +} + +func read_starratings() { + + var entity_map map[string][]dbi.StarRating + + import_data, e := os.ReadFile("data/star_ratings.json") + if e != nil { + log.Fatalf("Unable to open star_ratings.json: %s\n", e) + } + + e = json.Unmarshal(import_data, &entity_map) + if e != nil { + log.Fatalf("Unable to read data from starratings.json: %s\n", e) + } + + for _, entities := range entity_map { + for _, entity := range entities { + e = dbi.AddStarRating(entity.SectionID, entity.UID) + if e != nil { + log.Fatalf("Error saving star rating: %s\n", e) + } + } + } + +} + +func read_sectiontypes() { + + var entity_map map[string]dbi.SectionType + var entities []dbi.SectionType + + import_data, e := os.ReadFile("data/sectiontypes.json") + if e != nil { + log.Fatalf("Unable to open sectiontypes.json: %s\n", e) + } + + e = json.Unmarshal(import_data, &entity_map) + if e != nil { + log.Fatalf("Unable to read data from sectiontypes.json: %s\n", e) + } + + for _, entity := range entity_map { + entities = append(entities, entity) + } + + e = dbi.BulkAddSectionTypes(entities) + if e != nil { + log.Fatalf("Error saving sectiontype: %s\n", e) + } + +} + +func read_sections() { + + var sections_map map[string]dbi.Section + var sections []dbi.Section + + sections_data, e := os.ReadFile("data/sections.json") + if e != nil { + log.Fatalf("Unable to open sections.json: %s\n", e) + } + + e = json.Unmarshal(sections_data, §ions_map) + if e != nil { + log.Fatalf("Unable to read data from sections.json: %s\n", e) + } + + for _, section := range sections_map { + sections = append(sections, section) + } + + e = dbi.BulkAddSections(sections) + if e != nil { + log.Fatalf("Error saving section: %s\n", e) + } + +} + +func read_grades() { + var grades_map map[string][]dbi.SectionGrade + var section_grades []dbi.SectionGrade + + grades_data, e := os.ReadFile("data/grades.json") + if e != nil { + log.Fatalf("Unable to open grades.json: %s\n", e) + } + + e = json.Unmarshal(grades_data, &grades_map) + if e != nil { + log.Fatalf("Unable to read data from grades.json: %s\n", e) + } + + for _, section_list := range grades_map { + section_grades = append(section_grades, section_list...) + } + + e = dbi.BulkAddSectionGrades(section_grades) + if e != nil { + log.Fatalf("Error saving section grades: %s\n", e) + } + +} + +func read_instructors() { + var instructors_map map[string][]dbi.SectionInstructor + var section_instructors []dbi.SectionInstructor + + instructors_data, e := os.ReadFile("data/instructors.json") + if e != nil { + log.Fatalf("Unable to open instructors.json: %s\n", e) + } + + e = json.Unmarshal(instructors_data, &instructors_map) + if e != nil { + log.Fatalf("Unable to read data from instructors.json: %s\n", e) + } + + for _, section_list := range instructors_map { + section_instructors = append(section_instructors, section_list...) + } + + e = dbi.BulkAddSectionInstructors(section_instructors) + if e != nil { + log.Fatalf("Error saving section instructors: %s\n", e) + } +} + +func main() { + read_sections() + read_sectiontypes() + read_users() + read_instructors() + read_enrollments() + read_starratings() + read_grades() +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..1cc405d --- /dev/null +++ b/go.mod @@ -0,0 +1,21 @@ +module Maurer/convert_data + +go 1.26.1 + +replace maurer/grading_report => ../grading_report + +require maurer/grading_report v0.0.0-00010101000000-000000000000 + +require ( + github.com/dustin/go-humanize v1.0.1 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/ncruces/go-strftime v1.0.0 // indirect + github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect + golang.org/x/crypto v0.49.0 // indirect + golang.org/x/sys v0.42.0 // indirect + modernc.org/libc v1.72.0 // indirect + modernc.org/mathutil v1.7.1 // indirect + modernc.org/memory v1.11.0 // indirect + modernc.org/sqlite v1.50.0 // indirect +)