refactor sqlite queue

This commit is contained in:
2025-01-02 17:32:33 -06:00
parent c2c49f6bf5
commit f112171145
17 changed files with 204 additions and 153 deletions

View File

@@ -1,14 +1,17 @@
package main
import (
"context"
"database/sql"
"fmt"
"github.com/google/uuid"
httpSwagger "github.com/swaggo/http-swagger"
_ "go-nkode/docs"
"go-nkode/internal/api"
"go-nkode/internal/db"
"go-nkode/internal/email"
"go-nkode/internal/models"
"go-nkode/internal/repository"
sqliteQueue "go-nkode/internal/sqlc"
"log"
"net/http"
"os"
@@ -37,24 +40,42 @@ const (
// @securityDefinitions.apiKey ApiKeyAuth
// @in header
// @name Authorization
func main() {
dbPath := os.Getenv("SQLITE_DB")
if dbPath == "" {
log.Fatalf("SQLITE_DB=/path/to/nkode.db not set")
log.Fatal("SQLITE_DB=/path/to/nkode.db not set")
}
sqlitedb, err := db.NewSqliteDB(dbPath)
sqliteDb, err := sql.Open("sqlite3", dbPath)
if err != nil {
log.Fatalf("%v", err)
log.Fatalf("failed to open database: %v", err)
}
defer sqlitedb.Close()
if err := sqliteDb.Ping(); err != nil {
log.Fatalf("failed to connect to database: %v", err)
}
ctx := context.Background()
queue, err := sqliteQueue.NewQueue(sqliteDb, ctx)
if err != nil {
log.Fatal(err)
}
queue.Start()
defer func(queue *sqliteQueue.Queue) {
if err := queue.Stop(); err != nil {
log.Fatal(err)
}
}(queue)
sesClient := email.NewSESClient()
emailQueue := email.NewEmailQueue(emailQueueBufferSize, maxEmailsPerSecond, &sesClient)
emailQueue.Start()
defer emailQueue.Stop()
nkodeApi := api.NewNKodeAPI(sqlitedb, emailQueue)
sqlitedb := repository.NewSqliteRepository(queue, ctx)
nkodeApi := api.NewNKodeAPI(&sqlitedb, emailQueue)
AddDefaultCustomer(nkodeApi)
handler := api.NKodeHandler{Api: nkodeApi}