File tree 2 files changed +45
-4
lines changed
2 files changed +45
-4
lines changed Original file line number Diff line number Diff line change 8
8
2. Gorm
9
9
3. Viper
10
10
4. Fiber
11
+
12
+ setelah running pastikan table logs telah terbentuk dalam database yang telah didaftarkan
13
+ dan sesuaikan dengan struktur berikut :
14
+
15
+ CREATE TABLE LOGS (
16
+ id INT AUTO_INCREMENT,
17
+ LEVEL VARCHAR(10),
18
+ message TEXT,
19
+ created_at DATETIME,
20
+ PRIMARY KEY (id, created_at)
21
+ ) ENGINE=INNODB PARTITION BY RANGE (TO_DAYS(created_at)) (
22
+ PARTITION p0 VALUES LESS THAN (TO_DAYS('2023-01-01')),
23
+ PARTITION p1 VALUES LESS THAN (TO_DAYS('2023-02-01')),
24
+ PARTITION p2 VALUES LESS THAN (TO_DAYS('2023-03-01')),
25
+ PARTITION p3 VALUES LESS THAN (TO_DAYS('2023-04-01')),
26
+ PARTITION p4 VALUES LESS THAN (TO_DAYS('2023-05-01')),
27
+ PARTITION p5 VALUES LESS THAN (TO_DAYS('2023-06-01')),
28
+ PARTITION p6 VALUES LESS THAN (TO_DAYS('2023-07-01')),
29
+ PARTITION p7 VALUES LESS THAN (TO_DAYS('2023-08-01')),
30
+ PARTITION p8 VALUES LESS THAN (TO_DAYS('2023-09-01')),
31
+ PARTITION p9 VALUES LESS THAN (TO_DAYS('2023-10-01')),
32
+ PARTITION p10 VALUES LESS THAN (TO_DAYS('2023-11-01')),
33
+ PARTITION p11 VALUES LESS THAN (TO_DAYS('2023-12-01'))
34
+ );
35
+ CREATE INDEX idx_created_at ON LOGS (created_at);
Original file line number Diff line number Diff line change @@ -66,22 +66,33 @@ func registerRoutes(api fiber.Router) {
66
66
var request models.QueryRequest
67
67
err := c .BodyParser (& request )
68
68
if err != nil {
69
- log .Fatal (err )
69
+ log .Println (err )
70
70
}
71
71
72
72
query := request .Query
73
73
74
74
// Execute Query
75
75
rows , err := models .DB .Raw (query ).Rows ()
76
76
if err != nil {
77
- log .Fatal (err )
77
+ log .Println (err )
78
+ return c .Status (fiber .StatusInternalServerError ).JSON (fiber.Map {
79
+ "code" : fiber .StatusInternalServerError ,
80
+ "message" : "Error, Pastikan kembali SQL query Anda!" ,
81
+ "data" : nil ,
82
+ })
78
83
}
84
+
79
85
defer rows .Close ()
80
86
81
87
// ambil nama column names dari query result
82
88
columns , err := rows .Columns ()
83
89
if err != nil {
84
- log .Fatal (err )
90
+ log .Println (err )
91
+ return c .Status (fiber .StatusInternalServerError ).JSON (fiber.Map {
92
+ "code" : fiber .StatusInternalServerError ,
93
+ "message" : "Error pembacaan nama column" ,
94
+ "data" : nil ,
95
+ })
85
96
}
86
97
87
98
// buat slice dan simpan sebagai query result
@@ -99,7 +110,12 @@ func registerRoutes(api fiber.Router) {
99
110
100
111
err := rows .Scan (valuePointers ... )
101
112
if err != nil {
102
- log .Fatal (err )
113
+ log .Println (err )
114
+ return c .Status (fiber .StatusInternalServerError ).JSON (fiber.Map {
115
+ "code" : fiber .StatusInternalServerError ,
116
+ "message" : "Error pembacaan row values" ,
117
+ "data" : nil ,
118
+ })
103
119
}
104
120
105
121
rowData := make (map [string ]interface {})
You can’t perform that action at this time.
0 commit comments