diff options
-rw-r--r-- | server/database/database.go (renamed from server/database/main.go) | 2 | ||||
-rw-r--r-- | server/main.go | 97 | ||||
-rw-r--r-- | server/router/router.go | 110 |
3 files changed, 113 insertions, 96 deletions
diff --git a/server/database/main.go b/server/database/database.go index 4eb1a91..c2c0dfe 100644 --- a/server/database/main.go +++ b/server/database/database.go @@ -14,7 +14,7 @@ import ( ) var myDatabase *sql.DB -func StartDB() { +func InitDB() { myDatabase, _ = sql.Open("sqlite3", "./openbills.db") init_items, _ := myDatabase.Prepare( diff --git a/server/main.go b/server/main.go index 8553713..2f0d87f 100644 --- a/server/main.go +++ b/server/main.go @@ -12,102 +12,9 @@ package main import ( - "github.com/gin-gonic/gin" - "github.com/gin-gonic/contrib/static" - "net/http" - - "strconv" - db "github.com/MikunoNaka/openbills/database" + router "github.com/MikunoNaka/openbills/router" ) func main() { - db.StartDB() - myRouter := gin.New() - myRouter.Use(gin.Logger()) - - // serve static front end on / - myRouter.Use(static.Serve("/", - static.LocalFile("./app", true))) - - // define routes - api := myRouter.Group("/api") - people := api.Group("/people") - items := api.Group("/items") - users := api.Group("/users") - - // items API routes - items.GET("/get-all", getAllItems) - items.POST("/register", registerItem) - - - // people API routes - people.GET("/get-all", getAllPeople) - people.POST("/register", registerPerson) - - // users API routes - users.GET("/get-all", getAllUsers) - // users.POST("/register", registerUser) - - myRouter.Run(":8080") -} - -// items API functions -func getAllItems(ctx *gin.Context) { - ctx.Header("Content-Type", "application/json") - ctx.JSON(http.StatusOK, db.GetAllItems()) + router.InitRouter() } - -func registerItem(ctx *gin.Context) { - // extract data not string - price, _ := strconv.ParseFloat(ctx.Query("price"), 64) - hsn, _ := strconv.Atoi(ctx.Query("hsn")) - gst, _ := strconv.ParseFloat(ctx.Query("gst"), 64) - cat := "cat coming soon" - brand := "brand coming soon" - - item := db.Item { - Model: ctx.Query("model"), - Desc: ctx.Query("desc"), - Price: price, - HSN: hsn, - GST: gst, - Cat: cat, - Brand: brand, - } - - db.RegisterItem(item) -} - -// people API functions -func getAllPeople(ctx *gin.Context) { - ctx.Header("Content-Type", "application/json") - ctx.JSON(http.StatusOK, db.GetAllPeople()) -} - -func registerPerson(ctx *gin.Context) { - person := db.Person { - Name: ctx.Query("name"), - Address: ctx.Query("address"), - Phone: ctx.Query("phone"), - Email: ctx.Query("email"), - } - - db.RegisterPerson(person) -} - -// users API functions -func getAllUsers(ctx *gin.Context) { - ctx.Header("Content-Type", "application/json") - ctx.JSON(http.StatusOK, db.GetAllUsers()) -} - -// func registerUser(ctx *gin.Context) { -// person := db.Person { -// Name: ctx.Query("name"), -// Address: ctx.Query("address"), -// Phone: ctx.Query("phone"), -// Email: ctx.Query("email"), -// } -// -// db.RegisterPerson(person) -// } diff --git a/server/router/router.go b/server/router/router.go new file mode 100644 index 0000000..169ec17 --- /dev/null +++ b/server/router/router.go @@ -0,0 +1,110 @@ +/* + * OpenBills - Self hosted browser app to generate and keep track of simple invoices + * Version - 0 + * Licensed under the MIT license - https://opensource.org/licenses/MIT + * + * Copyright (c) 2021 Vidhu Kant Sharma +*/ + +package router + +import ( + "github.com/gin-gonic/gin" + "github.com/gin-gonic/contrib/static" + "net/http" + + "strconv" + db "github.com/MikunoNaka/openbills/database" +) + +func InitRouter() { + db.InitDB() + myRouter := gin.New() + myRouter.Use(gin.Logger()) + + // serve static front end on / + myRouter.Use(static.Serve("/", + static.LocalFile("./app", true))) + + // define routes + api := myRouter.Group("/api") + people := api.Group("/people") + items := api.Group("/items") + users := api.Group("/users") + + // items API routes + items.GET("/get-all", getAllItems) + items.POST("/register", registerItem) + + + // people API routes + people.GET("/get-all", getAllPeople) + people.POST("/register", registerPerson) + + // users API routes + users.GET("/get-all", getAllUsers) + // users.POST("/register", registerUser) + + myRouter.Run(":8080") +} + +// items API functions +func getAllItems(ctx *gin.Context) { + ctx.Header("Content-Type", "application/json") + ctx.JSON(http.StatusOK, db.GetAllItems()) +} + +func registerItem(ctx *gin.Context) { + // extract data not string + price, _ := strconv.ParseFloat(ctx.Query("price"), 64) + hsn, _ := strconv.Atoi(ctx.Query("hsn")) + gst, _ := strconv.ParseFloat(ctx.Query("gst"), 64) + cat := "cat coming soon" + brand := "brand coming soon" + + item := db.Item { + Model: ctx.Query("model"), + Desc: ctx.Query("desc"), + Price: price, + HSN: hsn, + GST: gst, + Cat: cat, + Brand: brand, + } + + db.RegisterItem(item) +} + +// people API functions +func getAllPeople(ctx *gin.Context) { + ctx.Header("Content-Type", "application/json") + ctx.JSON(http.StatusOK, db.GetAllPeople()) +} + +func registerPerson(ctx *gin.Context) { + person := db.Person { + Name: ctx.Query("name"), + Address: ctx.Query("address"), + Phone: ctx.Query("phone"), + Email: ctx.Query("email"), + } + + db.RegisterPerson(person) +} + +// users API functions +func getAllUsers(ctx *gin.Context) { + ctx.Header("Content-Type", "application/json") + ctx.JSON(http.StatusOK, db.GetAllUsers()) +} + +// func registerUser(ctx *gin.Context) { +// person := db.Person { +// Name: ctx.Query("name"), +// Address: ctx.Query("address"), +// Phone: ctx.Query("phone"), +// Email: ctx.Query("email"), +// } +// +// db.RegisterPerson(person) +// } |