66 lines
2.1 KiB
Go
66 lines
2.1 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"inou/lib"
|
|
_ "github.com/mattn/go-sqlite3"
|
|
)
|
|
|
|
var keepIDs = []string{
|
|
"4f1dc24ae9f81a69", // Johan
|
|
"4cc04ada1c1a77cf", // Tanya
|
|
"3b35815d8baf50e6", // Sophia
|
|
"3585f4eb0a9e96e7", // Tatiana
|
|
"63d6dbe29b8bea45", // Anastasiia
|
|
}
|
|
|
|
func esc(s string) string {
|
|
// Escape single quotes for SQL
|
|
result := ""
|
|
for _, c := range s {
|
|
if c == '\'' {
|
|
result += "''"
|
|
} else {
|
|
result += string(c)
|
|
}
|
|
}
|
|
return result
|
|
}
|
|
|
|
func main() {
|
|
if err := lib.CryptoInit("/tank/inou/master.key"); err != nil {
|
|
fmt.Printf("Error: %v\n", err)
|
|
return
|
|
}
|
|
if err := lib.DBInit("/tank/inou/data/inou.db"); err != nil {
|
|
fmt.Printf("Error: %v\n", err)
|
|
return
|
|
}
|
|
defer lib.DBClose()
|
|
|
|
fmt.Println("-- DOSSIERS")
|
|
var dossiers []*lib.Dossier
|
|
lib.Query(`SELECT * FROM dossiers WHERE dossier_id IN (?, ?, ?, ?, ?)`,
|
|
[]any{keepIDs[0], keepIDs[1], keepIDs[2], keepIDs[3], keepIDs[4]}, &dossiers)
|
|
for _, d := range dossiers {
|
|
fmt.Printf("INSERT INTO dossiers (dossier_id, email_hash, email, name, date_of_birth, sex, phone, language, timezone, created_at, weight_unit, height_unit) VALUES ('%s', '%s', '%s', '%s', '%s', %d, '%s', '%s', '%s', %d, '%s', '%s');\n",
|
|
d.DossierID, esc(d.EmailHash), esc(d.Email), esc(d.Name), esc(d.DateOfBirth), d.Sex, esc(d.Phone), esc(d.Language), esc(d.Timezone), d.CreatedAt, esc(d.WeightUnit), esc(d.HeightUnit))
|
|
}
|
|
|
|
fmt.Println("\n-- DOSSIER_ACCESS")
|
|
var accesses []*lib.DossierAccess
|
|
lib.Query(`SELECT * FROM dossier_access
|
|
WHERE accessor_dossier_id IN (?, ?, ?, ?, ?)
|
|
AND target_dossier_id IN (?, ?, ?, ?, ?)`,
|
|
[]any{keepIDs[0], keepIDs[1], keepIDs[2], keepIDs[3], keepIDs[4],
|
|
keepIDs[0], keepIDs[1], keepIDs[2], keepIDs[3], keepIDs[4]}, &accesses)
|
|
for _, a := range accesses {
|
|
isCare := 0
|
|
if a.IsCareReceiver { isCare = 1 }
|
|
canEdit := 0
|
|
if a.CanEdit { canEdit = 1 }
|
|
fmt.Printf("INSERT INTO dossier_access (accessor_dossier_id, target_dossier_id, relation, is_care_receiver, can_edit, status, created_at, accessed_at) VALUES ('%s', '%s', %d, %d, %d, %d, %d, %d);\n",
|
|
a.AccessorDossierID, a.TargetDossierID, a.Relation, isCare, canEdit, a.Status, a.CreatedAt, a.AccessedAt)
|
|
}
|
|
}
|