aboutsummaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/database/database.go (renamed from server/database/main.go)2
-rw-r--r--server/main.go97
-rw-r--r--server/router/router.go110
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)
+// }