feat: management && notify
This commit is contained in:
@@ -9,11 +9,13 @@ import (
|
||||
// This file is define some business error
|
||||
|
||||
const (
|
||||
BAD_REQUEST = "Bad Request"
|
||||
DATA_NOT_FOUND = "Data not Found"
|
||||
STATUS_DATA_NOT_FOUND = 210
|
||||
FORBIDDENT = "FORBIDDENT"
|
||||
PAGE_NOT_FOUND = "404 page not found"
|
||||
BAD_REQUEST = "Bad Request"
|
||||
DATA_NOT_FOUND = "Data not Found"
|
||||
STATUS_DATA_NOT_FOUND = 210
|
||||
FORBIDDENT = "FORBIDDENT"
|
||||
PAGE_NOT_FOUND = "404 page not found"
|
||||
STATUS_OPERATION_FAILED = 410
|
||||
OPERATION_FAILED = "operation failed"
|
||||
)
|
||||
|
||||
func RequestError(c *gin.Context, code int, data interface{}) {
|
||||
@@ -40,3 +42,7 @@ func Forbidden(c *gin.Context) {
|
||||
func UrlNotFound(c *gin.Context) {
|
||||
c.String(http.StatusNotFound, PAGE_NOT_FOUND)
|
||||
}
|
||||
|
||||
func OperationFailed(c *gin.Context) {
|
||||
c.String(STATUS_OPERATION_FAILED, OPERATION_FAILED)
|
||||
}
|
||||
|
||||
68
handler/management.go
Normal file
68
handler/management.go
Normal file
@@ -0,0 +1,68 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"nCovTrack-Backend/service/management"
|
||||
"nCovTrack-Backend/utils"
|
||||
"strconv"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func PullContactHandler(c *gin.Context) {
|
||||
claims := utils.ClaimsFromHeader(c)
|
||||
patientId, _ := strconv.Atoi(c.Param("patientId"))
|
||||
rowsAffected := management.PullFromFaker(claims, patientId)
|
||||
if rowsAffected == -1 {
|
||||
DataNotFound(c, map[string]interface{}{"patientId": patientId})
|
||||
return
|
||||
}
|
||||
utils.Succ(c, map[string]interface{}{"pullAmount": rowsAffected})
|
||||
}
|
||||
|
||||
func ListObservationsHandler(c *gin.Context) {
|
||||
jsonMap := bindQuery(c)
|
||||
utils.Succ(c, management.ListObservation(jsonMap))
|
||||
}
|
||||
|
||||
func InsertObservationHandler(c *gin.Context) {
|
||||
claims := utils.ClaimsFromHeader(c)
|
||||
observaion := bindJson(c)
|
||||
delete(observaion, "id")
|
||||
ok := management.InsertObservation(claims, observaion)
|
||||
if ok {
|
||||
utils.Succ(c, nil)
|
||||
} else {
|
||||
OperationFailed(c)
|
||||
}
|
||||
}
|
||||
|
||||
func GetObservationHandler(c *gin.Context) {
|
||||
id, _ := strconv.Atoi(c.Param("id"))
|
||||
utils.Succ(c, management.GetObservation(id))
|
||||
}
|
||||
|
||||
func ListLocationHandler(c *gin.Context) {
|
||||
queryMap := bindQuery(c)
|
||||
utils.Succ(c, management.ListLocation(queryMap))
|
||||
}
|
||||
|
||||
func InsertLocationHandler(c *gin.Context) {
|
||||
claims := utils.ClaimsFromHeader(c)
|
||||
locationMap := bindJson(c)
|
||||
ok := management.InsertLocation(claims, locationMap)
|
||||
if ok {
|
||||
utils.Succ(c, nil)
|
||||
} else {
|
||||
OperationFailed(c)
|
||||
}
|
||||
}
|
||||
|
||||
func DeleteLocationHandler(c *gin.Context) {
|
||||
id, _ := strconv.Atoi(c.Param("id"))
|
||||
ok := management.DeleteLocation(id)
|
||||
if ok {
|
||||
utils.Succ(c, nil)
|
||||
} else {
|
||||
OperationFailed(c)
|
||||
}
|
||||
}
|
||||
@@ -57,3 +57,14 @@ func ChinaDataHandler(c *gin.Context) {
|
||||
data := service.GetChinaNCovStatistic()
|
||||
utils.Succ(c, data)
|
||||
}
|
||||
|
||||
// ChinaTrendHandler Get china data
|
||||
// @Tags Statistics
|
||||
// @Produce json
|
||||
// @Summary china trend
|
||||
// @Success 200 {object} utils.GinResponse{data=models.ChinaTrend}
|
||||
// @Router /statistics/china/trend [get]
|
||||
func ChinaTrendHandler(c *gin.Context) {
|
||||
data := service.GetChinaTrend()
|
||||
utils.Succ(c, data)
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package handler
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
@@ -46,3 +47,12 @@ func bindJsonStruct[T any](c *gin.Context) map[string]interface{} {
|
||||
}
|
||||
return jsonMap
|
||||
}
|
||||
|
||||
func bindQuery(c *gin.Context) map[string]interface{} {
|
||||
jsonMap := map[string]interface{}{}
|
||||
queries := c.Request.URL.Query()
|
||||
for k := range queries {
|
||||
jsonMap[k] = c.Query(k)
|
||||
}
|
||||
return jsonMap
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user