aboutsummaryrefslogtreecommitdiff
path: root/server/router/router.go
diff options
context:
space:
mode:
authorMikunoNaka <bokuwakanojogahoshii@yahoo.com>2021-06-13 23:57:18 +0530
committerMikunoNaka <bokuwakanojogahoshii@yahoo.com>2021-06-13 23:57:18 +0530
commit37ead7ea9ca1e0c435c57866c289917e0f488459 (patch)
tree8213307afb592c574ad80587e0cef55b6d92b9df /server/router/router.go
parentd154e1e37b026679fc76c6708f6b16951ed07dd9 (diff)
seperated the router into another module
Diffstat (limited to 'server/router/router.go')
-rw-r--r--server/router/router.go110
1 files changed, 110 insertions, 0 deletions
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)
+// }