aboutsummaryrefslogtreecommitdiff
path: root/dataimport/importer.go
diff options
context:
space:
mode:
Diffstat (limited to 'dataimport/importer.go')
-rw-r--r--dataimport/importer.go52
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 @@
1package dataimport
2
3import (
4 "log"
5
6 "fagott.pw/grilist/models"
7)
8
9func logErr(err error) {
10 if err != nil {
11 log.Printf("IMPORT ERROR: %v\n", err)
12 }
13}
14
15func 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
23func 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}