aboutsummaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorMikunoNaka <bokuwakanojogahoshii@yahoo.com>2021-04-28 16:19:00 +0530
committerMikunoNaka <bokuwakanojogahoshii@yahoo.com>2021-04-28 16:19:00 +0530
commit5ca14fcf3e949308eb0b2d636169e6601df1908d (patch)
tree9edcbc4163f81d8b52861a2c9e991423764e3e43 /server
parent60f5d0cf22adc77b236f6c5a6e6aa2c7ff39ed77 (diff)
New Feature: Ability to register new items in the database
Diffstat (limited to 'server')
-rw-r--r--server/database/database.go58
-rw-r--r--server/main.go23
-rw-r--r--server/openbills.dbbin8192 -> 12288 bytes
3 files changed, 63 insertions, 18 deletions
diff --git a/server/database/database.go b/server/database/database.go
index 16b6f65..8b7c7f6 100644
--- a/server/database/database.go
+++ b/server/database/database.go
@@ -12,43 +12,67 @@
package database
import (
- _ "github.com/mattn/go-sqlite3"
"database/sql"
+ _ "github.com/mattn/go-sqlite3"
)
type Item struct {
Model string
Desc string `json:"Description"`
- Price int // *float32
+ Price float64
HSN int
}
-
var myDatabase *sql.DB
+var registered_items *sql.Stmt
+var register_item *sql.Stmt
func init() {
myDatabase, _ = sql.Open("sqlite3", "./openbills.db")
-}
-var myItems *sql.Stmt
-var addToMyItems *sql.Stmt
-func init() {
- myItems, _ = myDatabase.Prepare("CREATE TABLE IF NOT EXISTS RegisteredItems (id INTEGER PRIMARY KEY, model TEXT, desc TEXT, price INTEGER, HSN INTEGER)")
- myItems.Exec()
+ registered_items, _ = myDatabase.Prepare(
+ `CREATE TABLE IF NOT EXISTS registered_items
+ (id INTEGER PRIMARY KEY AUTOINCREMENT,
+ model TEXT NOT NULL,
+ desc TEXT,
+ price REAL,
+ hsn BLOB)`,
+ )
+ registered_items.Exec()
- addToMyItems, _ = myDatabase.Prepare("INSERT INTO RegisteredItems (id, model, desc, price, hsn) VALUES (?, ?, ?, ?, ?)")
+ register_item, _ = myDatabase.Prepare(
+ `INSERT INTO registered_items
+ (model, desc, price, hsn)
+ VALUES (?, ?, ?, ?)`,
+ )
}
func GetAllItems() []Item {
var allItems []Item
- rows, _ := myDatabase.Query("SELECT model, desc, price, hsn FROM RegisteredItems")
+ rows, _ := myDatabase.Query(
+ `SELECT model, desc, price, hsn FROM registered_items`,
+ )
+
+ var (
+ model, desc string
+ price float64
+ HSN int
+ )
- var model string
- var desc string
- var price int
- var hsn int
for rows.Next() {
- rows.Scan(&model, &desc, &price, &hsn)
- allItems = append(allItems, Item{model, desc, price, hsn})
+ rows.Scan(&model, &desc, &price, &HSN)
+ allItems = append(allItems, Item{model, desc, price, HSN})
}
+
return allItems
}
+
+func RegisterItem(model string, desc string, price float64, HSN int) {
+ /*
+ var item Item = Item{
+ model, desc, price, HSN,
+ }
+
+ register_item.Exec(item.Model, item.Desc, item.Price, item.HSN)
+ */
+ register_item.Exec(model, desc, price, HSN)
+}
diff --git a/server/main.go b/server/main.go
index b514a31..1aa34c3 100644
--- a/server/main.go
+++ b/server/main.go
@@ -16,7 +16,7 @@ import (
"github.com/gin-gonic/contrib/static"
"net/http"
- // this handles all the database functions
+ "strconv"
db "github.com/MikunoNaka/openbills/database"
)
@@ -33,6 +33,9 @@ func main() {
items := api.Group("/items")
items.GET("/", getAllItems)
+ items.POST("/", registerItem)
+
+ // items.POST("/", registerItem)
myRouter.Run(":8080")
}
@@ -41,3 +44,21 @@ func getAllItems(ctx *gin.Context) {
ctx.Header("Content-Type", "application/json")
ctx.JSON(http.StatusOK, db.GetAllItems())
}
+
+func registerItem(ctx *gin.Context) {
+ // extract data
+ model := ctx.Query("model")
+ desc := ctx.Query("desc")
+ price, _ := strconv.ParseFloat(ctx.Query("price"), 64)
+ hsn, _ := strconv.Atoi(ctx.Query("hsn"))
+
+ // why does it show warnings
+ item := db.Item {
+ model,
+ desc,
+ price,
+ hsn,
+ }
+
+ db.RegisterItem(item.Model, item.Desc, item.Price, item.HSN)
+}
diff --git a/server/openbills.db b/server/openbills.db
index 1f2afd2..4f15f57 100644
--- a/server/openbills.db
+++ b/server/openbills.db
Binary files differ