diff options
Diffstat (limited to 'cmd/app/importer/importer.go')
-rw-r--r-- | cmd/app/importer/importer.go | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/cmd/app/importer/importer.go b/cmd/app/importer/importer.go new file mode 100644 index 0000000..0cc9bb7 --- /dev/null +++ b/cmd/app/importer/importer.go @@ -0,0 +1,47 @@ +package importer + +import ( + "encoding/json" + "os" + + "github.com/urfave/cli/v2" + "sh.org.ru/pkg/config" + "sh.org.ru/pkg/db" + "sh.org.ru/pkg/model" +) + +func Run(c *cli.Context) error { + configFile := c.String("config") + cfg, err := config.New(configFile) + if err != nil { + return err + } + db := db.New(cfg.DB) + + file := c.Args().First() + + quotes := []string{} + + fp, err := os.Open(file) + if err != nil { + return err + } + defer fp.Close() + + if err := json.NewDecoder(fp).Decode("es); err != nil { + return err + } + + for _, text := range quotes { + q := &model.Quote{ + Quote: text, + Approved: true, + Archive: true, + } + if _, err := db.NewInsert().Model(q).Exec(c.Context); err != nil { + return err + } + } + + return nil +} |