This repository was archived by the owner on Sep 29, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
140 lines (102 loc) · 3.1 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
package main
import (
"fmt"
"net/http"
"github.com/gin-gonic/gin"
mysql "github.com/DeexithParand2k2/CrudifyGO/dbwrappers/mysql"
)
// database methods
func testPingYourDb(c *gin.Context) {
databaseNameQuery := c.Query("databasename")
status, err := mysql.PingYourDb(databaseNameQuery)
if err != nil {
c.IndentedJSON(http.StatusInternalServerError, gin.H{"Error": err.Error()})
return
}
c.IndentedJSON(http.StatusAccepted, gin.H{"Message": status})
}
func testListDatabases(c *gin.Context) {
databases, err := mysql.ListDatabases()
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"Error": err.Error()})
return
}
c.IndentedJSON(http.StatusAccepted, gin.H{
"Message": "Received databases",
"databases": databases,
})
}
func testDeleteDb(c *gin.Context) {
database_name := c.Query("databasename")
err := mysql.DeleteDb(database_name)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"Error": err.Error()})
return
}
c.JSON(http.StatusCreated, gin.H{"Message": fmt.Sprintf("Deleted database %s successfully", database_name)})
}
func testCreateDb(c *gin.Context) {
database_name := c.Query("databasename")
err := mysql.CreateDb(database_name)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"Error": err.Error()})
return
}
c.JSON(http.StatusCreated, gin.H{"Message": fmt.Sprintf("Created database %s successfully", database_name)})
}
// tabular Methods
func testListTablesDb(c *gin.Context) {
database_name := c.Query("databasename")
tables, err := mysql.ListTablesDb(database_name)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"Error": err.Error()})
return
}
if len(tables) == 0 {
c.JSON(http.StatusCreated, gin.H{
"Message": "Listed Tables Successfully",
"Tables": "Empty",
})
} else {
c.JSON(http.StatusCreated, gin.H{
"Message": "Listed Tables Successfully",
"Tables": tables,
})
}
}
type customer struct {
Cid int `json:"cid"`
Fname string `json:"fname"`
Lname string `json:"lname"`
Total int `json:"total"`
}
/*
* 2 queries available
* pass the object of table content you need
*/
func testGetTableContent(c *gin.Context) {
database_name := c.Query("databasename")
table_name := c.Query("tablename")
var custTable []customer
err := mysql.GetTableContent(database_name, table_name, &custTable)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"Error": err.Error()})
return
}
c.IndentedJSON(http.StatusInternalServerError, gin.H{
"Message": "Returned table content",
"Table Content": custTable,
})
}
func main() {
router := gin.Default()
// db operations
router.GET("/pingdb", testPingYourDb) // ping db with query as db name
router.GET("/listdbs", testListDatabases) // list available dbs
router.GET("/createdb", testCreateDb) // create a db and ping it
router.GET("/deletedb", testDeleteDb) // delete existing db and resend present dbs
// table operations
router.GET("/listtablesdb", testListTablesDb) // get tables in a db
router.GET("/gettablecontent", testGetTableContent) // get table content
router.Run("localhost:8000")
}