diff --git a/cmd/dwelling-home/main.go b/cmd/dwelling-home/main.go index 71994cc..f30350a 100644 --- a/cmd/dwelling-home/main.go +++ b/cmd/dwelling-home/main.go @@ -95,10 +95,11 @@ func main() { srv.PATCH("/api/guestbook/:id/reply", guestbookApi.EditReply) srv.DELETE("/api/guestbook/:id/reply", guestbookApi.DeleteReply) - mindflowDB, err := mfsqlite.NewSQLiteMindflow(path.Join(*databasesPath, "mindflow.sqlite")) + mindflowDB, err := mfsqlite.New(path.Join(*databasesPath, "mindflow.sqlite")) if err != nil { log.Fatalln(err) } + defer mindflowDB.Close() mindflowApi := http.NewMindflowApiHandlers(mindflowDB) diff --git a/pkg/mindflow/database/sqlite/db.go b/pkg/mindflow/database/sqlite/db.go index 8e6a485..4623d76 100644 --- a/pkg/mindflow/database/sqlite/db.go +++ b/pkg/mindflow/database/sqlite/db.go @@ -82,7 +82,7 @@ type SQLiteMindflow struct { db *sql.DB } -func NewSQLiteMindflow(path string) (mindflow.Mindflow, error) { +func New(path string) (mindflow.Mindflow, error) { db, err := sql.Open("sqlite3", dsn(path)) if err != nil { return nil, err @@ -225,3 +225,14 @@ func (s *SQLiteMindflow) GetCategoryByID(id int64) (name string, err error) { return } + +func (s *SQLiteMindflow) Close() error { + stmtCategoryById.Close() + stmtCategoryNew.Close() + stmtPostDelete.Close() + stmtPostEdit.Close() + stmtPostGetAll.Close() + stmtPostNew.Close() + + return s.db.Close() +} diff --git a/pkg/mindflow/mindflow.go b/pkg/mindflow/mindflow.go index 0334b04..085a67c 100644 --- a/pkg/mindflow/mindflow.go +++ b/pkg/mindflow/mindflow.go @@ -7,4 +7,5 @@ type Mindflow interface { GetAll() ([]Post, error) NewCategory(name string) (int64, error) GetCategoryByID(id int64) (string, error) + Close() error }