diff --git a/go.mod b/go.mod index a8a96e7..7b4ad70 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.25.0 require ( github.com/gin-gonic/gin v1.12.0 github.com/joho/godotenv v1.5.1 + github.com/mattn/go-sqlite3 v1.14.44 ) require ( diff --git a/go.sum b/go.sum index 9e60278..157d619 100644 --- a/go.sum +++ b/go.sum @@ -40,6 +40,8 @@ github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-sqlite3 v1.14.44 h1:3VSe+xafpbzsLbdr2AWlAZk9yRHiBhTBakioXaCKTF8= +github.com/mattn/go-sqlite3 v1.14.44/go.mod h1:pjEuOr8IwzLJP2MfGeTb0A35jauH+C2kbHKBr7yXKVQ= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= diff --git a/main.go b/main.go index 5da2c5b..cc2147e 100644 --- a/main.go +++ b/main.go @@ -11,6 +11,7 @@ import ( ) func main() { + env := godotenv.Load() if env != nil { panic(env) @@ -24,6 +25,9 @@ func main() { log := system.NewLogModel() log.Startup() + + dbms := system.NewDatabase() + route := gin.Default() route.Use( gin.Recovery(), @@ -33,16 +37,20 @@ func main() { apiRoute := route.Group("/api/v1") { - phlebotomyHandler := phlebotomy.NewHandler() + phlebotomyRepository := phlebotomy.NewRepository(dbms) + phlebotomyService := phlebotomy.NewService(phlebotomyRepository) + phlebotomyHandler := phlebotomy.NewHandler(phlebotomyService) + phlebotomy.NewPhlebotomyRoute(apiRoute, phlebotomyHandler) } - route.Group("/api/v1").POST("/speech", func(c *gin.Context) { - log.Print(1, "speech") - }) + //route.Group("/api/v1").POST("/speech", func(c *gin.Context) { + // log.Print(1, "speech") + //}) - err := route.Run(":" + "1231") + port := os.Getenv("PORT") + err := route.Run(":" + port) if err != nil { return } diff --git a/utils/phlebotomy/handler.go b/utils/phlebotomy/handler.go index 4d80232..ab774a4 100644 --- a/utils/phlebotomy/handler.go +++ b/utils/phlebotomy/handler.go @@ -2,10 +2,18 @@ package phlebotomy import "github.com/gin-gonic/gin" -func NewHandler() *Handler { - return &Handler{} +func NewHandler(srv *Service) *Handler { + return &Handler{srv: srv} } func (h *Handler) Speech(c *gin.Context) { + // Expect will receive a audio file + // Keep the file with hash name and mapping in db + // Wait for worker fetch file and process + + //manual sent response to edge device + + h.srv.Speech(c) + } diff --git a/utils/phlebotomy/model.go b/utils/phlebotomy/model.go index 1979304..6d37341 100644 --- a/utils/phlebotomy/model.go +++ b/utils/phlebotomy/model.go @@ -2,8 +2,10 @@ package phlebotomy type Handler struct { Handler *Handler + srv *Service } type Service struct { - Service *Service + Service *Service + phlebotomyRepository *Repository } diff --git a/utils/phlebotomy/repository.go b/utils/phlebotomy/repository.go index 1711975..248b8f4 100644 --- a/utils/phlebotomy/repository.go +++ b/utils/phlebotomy/repository.go @@ -1 +1,12 @@ package phlebotomy + +import "NTU-H/utils/system" + +type Repository struct { + Repository *Repository +} + +func NewRepository(db *system.Database) *Repository { + + return &Repository{} +} diff --git a/utils/phlebotomy/services.go b/utils/phlebotomy/services.go index 1cc98af..819b3cb 100644 --- a/utils/phlebotomy/services.go +++ b/utils/phlebotomy/services.go @@ -2,6 +2,12 @@ package phlebotomy import "github.com/gin-gonic/gin" +func NewService(phlebotomyRepository *Repository) *Service { + return &Service{ + phlebotomyRepository: phlebotomyRepository, + } +} + func (srv *Service) Speech(c *gin.Context) { } diff --git a/utils/system/database.go b/utils/system/database.go new file mode 100644 index 0000000..9835300 --- /dev/null +++ b/utils/system/database.go @@ -0,0 +1,26 @@ +package system + +import "database/sql" +import ( + _ "github.com/mattn/go-sqlite3" +) + +type Database struct { + Database *sql.DB +} + +func NewDatabase() *Database { + db := &Database{} + + //dbs, err := sql.Open("sqlite3", "./data.db") + + dbs, err := sql.Open("postgres", "postgres://backend:password@192.168.50.94:5432/backend?sslmode=disable") + + db.Database = dbs + + if err != nil { + panic(err) + } + + return db +}