diff options
Diffstat (limited to 'dataimport/importer.go')
-rw-r--r-- | dataimport/importer.go | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/dataimport/importer.go b/dataimport/importer.go new file mode 100644 index 0000000..0d121e5 --- /dev/null +++ b/dataimport/importer.go | |||
@@ -0,0 +1,52 @@ | |||
1 | package dataimport | ||
2 | |||
3 | import ( | ||
4 | "log" | ||
5 | |||
6 | "fagott.pw/grilist/models" | ||
7 | ) | ||
8 | |||
9 | func logErr(err error) { | ||
10 | if err != nil { | ||
11 | log.Printf("IMPORT ERROR: %v\n", err) | ||
12 | } | ||
13 | } | ||
14 | |||
15 | func AssignGril(foreign int, id int, dataSource models.DataSource) error { | ||
16 | _, err := database.Exec("INSERT INTO grilist.grils_id_mappings (gril_id, source, source_id) VALUES ($1, $2, $3);", id, models.DataSourceAnilist, foreign) | ||
17 | if err != nil { | ||
18 | return err | ||
19 | } | ||
20 | return nil | ||
21 | } | ||
22 | |||
23 | func InsertGril(g *ImporterGril, dataSource models.DataSource) (int, error) { | ||
24 | var dbID int | ||
25 | if err := database.QueryRow("INSERT INTO grilist.grils (age) VALUES (NULL) RETURNING id;").Scan(&dbID); err != nil { | ||
26 | return 0, err | ||
27 | } | ||
28 | if err := AssignGril(g.ID, dbID, dataSource); err != nil { | ||
29 | return 0, err | ||
30 | } | ||
31 | if g.Gril.KanjiName != "" { | ||
32 | _, err := database.Exec(`INSERT INTO | ||
33 | grilist.gril_names (gril_id, name, name_type) | ||
34 | VALUES ($1, $2, $3);`, dbID, g.KanjiName, | ||
35 | 0) | ||
36 | logErr(err) | ||
37 | } | ||
38 | if g.Gril.RomajiName != "" { | ||
39 | _, err := database.Exec(`INSERT INTO | ||
40 | grilist.gril_names (gril_id, name, name_type) | ||
41 | VALUES ($1, $2, $3);`, dbID, g.RomajiName, | ||
42 | 1) | ||
43 | logErr(err) | ||
44 | } | ||
45 | for _, v := range g.OtherNames { | ||
46 | _, err := database.Exec(`INSERT INTO | ||
47 | grilist.gril_names (gril_id, name, name_type) | ||
48 | VALUES ($1, $2, $3);`, dbID, v, 2) | ||
49 | logErr(err) | ||
50 | } | ||
51 | return dbID, nil | ||
52 | } | ||