aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/reader/db.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/reader/db.go')
-rw-r--r--pkg/reader/db.go105
1 files changed, 0 insertions, 105 deletions
diff --git a/pkg/reader/db.go b/pkg/reader/db.go
deleted file mode 100644
index 91b6b85..0000000
--- a/pkg/reader/db.go
+++ /dev/null
@@ -1,105 +0,0 @@
-package reader
-
-import (
- "database/sql"
- "errors"
- "fmt"
- "log"
- "os"
- "time"
-
- _ "github.com/mattn/go-sqlite3"
-)
-
-type Opts struct {
- DBPath, ImportPath, Name string
- Overwrite, Initial bool
- DMData []DatamapLine
-}
-
-func SetupDB(path string) (*sql.DB, error) {
- stmt_base := `DROP TABLE IF EXISTS datamap;
- CREATE TABLE datamap(id INTEGER PRIMARY KEY, name TEXT, date_created TEXT);
- DROP TABLE IF EXISTS datamap_line;
-
- CREATE TABLE datamap_line(
- id INTEGER PRIMARY KEY,
- dm_id INTEGER,
- key TEXT NOT NULL,
- sheet TEXT NOT NULL,
- cellref TEXT,
- FOREIGN KEY (dm_id)
- REFERENCES datamap(id)
- ON DELETE CASCADE
- );
- `
- os.Create(path)
- db, err := sql.Open("sqlite3", path)
- if err != nil {
- return db, errors.New("Cannot open that damn database file")
- }
-
- // We probably don't need pragma here but we have it for later.
- pragma := "PRAGMA foreign_keys = ON;"
- _, err = db.Exec(pragma)
- if err != nil {
- // log.Printf("%q: %s\n", err, pragma)
- return nil, err
- }
-
- _, err = db.Exec(stmt_base)
- if err != nil {
- // log.Printf("%q: %s\n", err, stmt_base)
- return nil, err
- }
-
- return db, nil
-}
-
-// TODO - how do we avoid passing in all these params!??!
-//DatamapToDB takes a slice of DatamapLine and writes it to a sqlite3 db file.
-//func DatamapToDB(d_path string, data []DatamapLine, dm_name string, dm_path string) error {
-func DatamapToDB(opts Opts) error {
- fmt.Printf("Importing datamap file %s and naming it %s.\n", opts.ImportPath, opts.Name)
- // db, err := SetupDB("/home/lemon/.config/datamaps-go/datamaps.db")
- // if err != nil {
- // return err
- // }
- d, err := sql.Open("sqlite3", opts.DBPath)
- if err != nil {
- return errors.New("Cannot open that damn database file")
- }
- tx, err := d.Begin()
- if err != nil {
- return err
- }
- pragma := "PRAGMA foreign_keys = ON;"
- _, err = d.Exec(pragma)
- if err != nil {
- log.Printf("%q: %s\n", err, pragma)
- return err
- }
- stmt_dm, err := tx.Prepare("INSERT INTO datamap (name, date_created) VALUES(?,?)")
- if err != nil {
- return err
- }
- _, err = stmt_dm.Exec(opts.Name, time.Now())
-
- stmt_dml, err := tx.Prepare("INSERT INTO datamap_line (dm_id, key, sheet, cellref) VALUES(?,?,?,?);")
- if err != nil {
- return err
- }
- defer stmt_dm.Close()
- defer stmt_dml.Close()
- for _, dml := range opts.DMData {
- _, err = stmt_dml.Exec(1, dml.Key, dml.Sheet, dml.Cellref)
- if err != nil {
- return err
- }
- }
- err = tx.Commit()
- if err != nil {
- return err
- }
- return nil
-}