implement dbhandler package and new test file
This commit is contained in:
16
api/api.go
16
api/api.go
@@ -4,6 +4,7 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"gitea.tecamino.com/paadi/tecamino-logger/logging"
|
||||
"github.com/gin-contrib/cors"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
@@ -14,7 +15,7 @@ type API struct {
|
||||
router *gin.Engine
|
||||
}
|
||||
|
||||
func NewAPI(host string, port int) *API {
|
||||
func NewAPI(host string, port int, logger *logging.Logger) (*API, error) {
|
||||
r := gin.Default()
|
||||
r.Use(cors.New(cors.Config{
|
||||
//AllowOrigins: []string{"http://localhost:9000"}, // frontend origin
|
||||
@@ -26,14 +27,17 @@ func NewAPI(host string, port int) *API {
|
||||
MaxAge: 12 * time.Hour,
|
||||
}))
|
||||
|
||||
apiHandler := NewAPIHandler()
|
||||
apiHandler, err := NewAPIHandler(logger)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
v1 := r.Group("v1")
|
||||
v1.GET("/events", apiHandler.GetEventById)
|
||||
v1.GET("/events", apiHandler.GetEvent)
|
||||
v1.GET("/events/new", apiHandler.StartNewEvent)
|
||||
v1.GET("/events/delete", apiHandler.DeleteEvent)
|
||||
v1.GET("/members", apiHandler.GetMemberById)
|
||||
v1.GET("/responsible", apiHandler.GetResponsibleById)
|
||||
v1.GET("/members", apiHandler.GetMember)
|
||||
v1.GET("/responsible", apiHandler.GetResponsible)
|
||||
|
||||
v1.POST("/database/open", apiHandler.OpenDatabase)
|
||||
v1.POST("/members/add", apiHandler.AddNewMember)
|
||||
@@ -50,7 +54,7 @@ func NewAPI(host string, port int) *API {
|
||||
return &API{host: host,
|
||||
port: port,
|
||||
router: r,
|
||||
}
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (api *API) Run() error {
|
||||
|
||||
@@ -1,20 +1,38 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"gitea.tecamino.com/paadi/memberDB/handlers"
|
||||
"gitea.tecamino.com/paadi/memberDB/models"
|
||||
"gitea.tecamino.com/paadi/tecamino-logger/logging"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type APIHandler struct {
|
||||
DbHandler *handlers.DatabaseHandler
|
||||
//dataHandler *dbHandler.DBHandler
|
||||
logger *logging.Logger
|
||||
}
|
||||
|
||||
func NewAPIHandler() *APIHandler {
|
||||
return &APIHandler{}
|
||||
func NewAPIHandler(logger *logging.Logger) (aH *APIHandler, err error) {
|
||||
if logger == nil {
|
||||
logger, err = logging.NewLogger("memberDb.log", logging.DefaultConfig())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
logger.Debug("NewAPIHandler", "initialize new api handler")
|
||||
aH = &APIHandler{logger: logger}
|
||||
return
|
||||
}
|
||||
|
||||
func (a *APIHandler) DBHandlerIsInitialized() bool {
|
||||
return a.DbHandler != nil
|
||||
}
|
||||
|
||||
func (a *APIHandler) OpenDatabase(c *gin.Context) {
|
||||
@@ -28,63 +46,54 @@ func (a *APIHandler) OpenDatabase(c *gin.Context) {
|
||||
}
|
||||
|
||||
if database.Path == "" {
|
||||
a.logger.Debug("OpenDatabase", "set default database path")
|
||||
database.SetDefaultPath()
|
||||
}
|
||||
|
||||
if database.Token == "" {
|
||||
a.logger.Debug("OpenDatabase", "set default token")
|
||||
database.SetDefaultToken()
|
||||
}
|
||||
|
||||
a.DbHandler, err = handlers.NewDatabaseHandler(database.Path, database.Create)
|
||||
if _, err := os.Stat(database.Path); err != nil && !database.Create {
|
||||
a.logger.Error("OpenDatabase", fmt.Sprintf("%s not found", database.Path))
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": fmt.Sprintf("%s not found", database.Path),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
dbName := filepath.Base(database.Path)
|
||||
folderpath := filepath.Dir(database.Path)
|
||||
|
||||
a.DbHandler, err = handlers.NewDatabaseHandler(dbName, folderpath, a.logger)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
a.logger.Error("OpenDatabase", err)
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
if err := a.DbHandler.CreateNewMemberTable(); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
if err := a.DbHandler.AddNewTable(&models.Member{}); err != nil {
|
||||
a.logger.Error("OpenDatabase", err)
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
if err := a.DbHandler.CreateNewEventTable(); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
if err := a.DbHandler.AddNewTable(&models.Event{}); err != nil {
|
||||
a.logger.Error("OpenDatabase", err)
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
if err := a.DbHandler.CreateNewResponsibleTable(); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
if err := a.DbHandler.AddNewTable(&models.Person{}); err != nil {
|
||||
a.logger.Error("OpenDatabase", err)
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
a.DbHandler.SetToken(database.Token)
|
||||
|
||||
_, err = a.DbHandler.GetMember(0)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"message": "database opened",
|
||||
})
|
||||
}
|
||||
|
||||
// databaseOpened is a helper function to first check wheter database is open for requests
|
||||
func (a *APIHandler) databaseOpened(c *gin.Context) bool {
|
||||
if a.DbHandler == nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": "no database opened",
|
||||
})
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -9,22 +9,24 @@ import (
|
||||
)
|
||||
|
||||
func (a *APIHandler) StartNewEvent(c *gin.Context) {
|
||||
if !a.databaseOpened(c) {
|
||||
if !a.DBHandlerIsInitialized() {
|
||||
a.logger.Error("StartNewEvent", "database handler is not initialized")
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
name := c.Query("name")
|
||||
if name == "" {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": "missing query 'name'",
|
||||
})
|
||||
a.logger.Error("StartNewEvent", "missing query 'name'")
|
||||
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
if err := a.DbHandler.StartNewEvent(name); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
a.logger.Error("StartNewEvent", err)
|
||||
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -33,8 +35,10 @@ func (a *APIHandler) StartNewEvent(c *gin.Context) {
|
||||
})
|
||||
}
|
||||
|
||||
func (a *APIHandler) GetEventById(c *gin.Context) {
|
||||
if !a.databaseOpened(c) {
|
||||
func (a *APIHandler) GetEvent(c *gin.Context) {
|
||||
if !a.DBHandlerIsInitialized() {
|
||||
a.logger.Error("GetEvent", "database handler is not initialized")
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -45,18 +49,17 @@ func (a *APIHandler) GetEventById(c *gin.Context) {
|
||||
if id != "" {
|
||||
i, err = strconv.Atoi(id)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
a.logger.Error("GetEvent", err)
|
||||
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
events, err := a.DbHandler.GetEvent(i)
|
||||
events, err := a.DbHandler.GetEvent(uint(i))
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
a.logger.Error("GetEvent", err)
|
||||
c.JSON(http.StatusBadRequest, nil)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -64,24 +67,27 @@ func (a *APIHandler) GetEventById(c *gin.Context) {
|
||||
}
|
||||
|
||||
func (a *APIHandler) DeleteEvent(c *gin.Context) {
|
||||
if !a.databaseOpened(c) {
|
||||
if !a.DBHandlerIsInitialized() {
|
||||
a.logger.Error("DeleteEvent", "database handler is not initialized")
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
var err error
|
||||
|
||||
var request struct {
|
||||
Ids []int `json:"ids"`
|
||||
Ids []uint `json:"ids"`
|
||||
}
|
||||
err = c.BindJSON(&request)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
a.logger.Error("DeleteEvent", err)
|
||||
c.JSON(http.StatusBadRequest, nil)
|
||||
return
|
||||
}
|
||||
|
||||
err = a.DbHandler.DeleteEvent(request.Ids...)
|
||||
if err != nil {
|
||||
a.logger.Error("DeleteEvent", err)
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
@@ -93,22 +99,25 @@ func (a *APIHandler) DeleteEvent(c *gin.Context) {
|
||||
}
|
||||
|
||||
func (a *APIHandler) AddNewAttendees(c *gin.Context) {
|
||||
if !a.databaseOpened(c) {
|
||||
if !a.DBHandlerIsInitialized() {
|
||||
a.logger.Error("AddNewAttendees", "database handler is not initialized")
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
var event models.Event
|
||||
err := c.BindJSON(&event)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
a.logger.Error("AddNewAttendees", err)
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
err = a.DbHandler.AddAttendeesToEvent(event)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
a.logger.Error("DeleteEvent", err)
|
||||
|
||||
c.JSON(http.StatusInternalServerError, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
return
|
||||
@@ -120,23 +129,26 @@ func (a *APIHandler) AddNewAttendees(c *gin.Context) {
|
||||
}
|
||||
|
||||
func (a *APIHandler) DeleteAttendee(c *gin.Context) {
|
||||
if !a.databaseOpened(c) {
|
||||
if !a.DBHandlerIsInitialized() {
|
||||
a.logger.Error("DeleteAttendee", "database handler is not initialized")
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
var err error
|
||||
|
||||
var event models.Event
|
||||
err = c.BindJSON(&event)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
a.logger.Error("DeleteAttendee", err)
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
err = a.DbHandler.DeleteAttendeesFromEvent(event)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
a.logger.Error("DeleteAttendeesFromEvent", err)
|
||||
c.JSON(http.StatusInternalServerError, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
return
|
||||
|
||||
@@ -16,16 +16,17 @@ import (
|
||||
)
|
||||
|
||||
func (a *APIHandler) AddNewMember(c *gin.Context) {
|
||||
if !a.databaseOpened(c) {
|
||||
if !a.DBHandlerIsInitialized() {
|
||||
a.logger.Error("AddNewMember", "database handler is not initialized")
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
var member models.Member
|
||||
err := c.BindJSON(&member)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
a.logger.Error("AddNewMember", err)
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -40,6 +41,7 @@ func (a *APIHandler) AddNewMember(c *gin.Context) {
|
||||
text += "birthday "
|
||||
}
|
||||
if text != "" {
|
||||
a.logger.Error("AddNewMember", text+"can not be empty")
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": text + "can not be empty",
|
||||
})
|
||||
@@ -48,6 +50,7 @@ func (a *APIHandler) AddNewMember(c *gin.Context) {
|
||||
|
||||
err = a.DbHandler.AddNewMember(member)
|
||||
if err != nil {
|
||||
a.logger.Error("AddNewMember", err)
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
@@ -59,8 +62,10 @@ func (a *APIHandler) AddNewMember(c *gin.Context) {
|
||||
})
|
||||
}
|
||||
|
||||
func (a *APIHandler) GetMemberById(c *gin.Context) {
|
||||
if !a.databaseOpened(c) {
|
||||
func (a *APIHandler) GetMember(c *gin.Context) {
|
||||
if !a.DBHandlerIsInitialized() {
|
||||
a.logger.Error("GetMember", "database handler is not initialized")
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -71,15 +76,15 @@ func (a *APIHandler) GetMemberById(c *gin.Context) {
|
||||
if id != "" {
|
||||
i, err = strconv.Atoi(id)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
a.logger.Error("GetMember", err)
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
members, err := a.DbHandler.GetMember(i)
|
||||
members, err := a.DbHandler.GetMember(uint(i))
|
||||
if err != nil {
|
||||
a.logger.Error("GetMember", err)
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
@@ -89,7 +94,9 @@ func (a *APIHandler) GetMemberById(c *gin.Context) {
|
||||
}
|
||||
|
||||
func (a *APIHandler) EditMember(c *gin.Context) {
|
||||
if !a.databaseOpened(c) {
|
||||
if !a.DBHandlerIsInitialized() {
|
||||
a.logger.Error("EditMember", "database handler is not initialized")
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -100,12 +107,12 @@ func (a *APIHandler) EditMember(c *gin.Context) {
|
||||
if id != "" {
|
||||
i, err = strconv.Atoi(id)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
a.logger.Error("EditMember", err)
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
} else {
|
||||
a.logger.Error("EditMember", err)
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": "query parameter 'id' missing",
|
||||
})
|
||||
@@ -115,14 +122,14 @@ func (a *APIHandler) EditMember(c *gin.Context) {
|
||||
var member models.Member
|
||||
err = c.BindJSON(&member)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
a.logger.Error("EditMember", err)
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
err = a.DbHandler.UpdateMember(i, member)
|
||||
if err != nil {
|
||||
a.logger.Error("EditMember", err)
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
@@ -134,42 +141,49 @@ func (a *APIHandler) EditMember(c *gin.Context) {
|
||||
}
|
||||
|
||||
func (a *APIHandler) DeleteMember(c *gin.Context) {
|
||||
if !a.databaseOpened(c) {
|
||||
if !a.DBHandlerIsInitialized() {
|
||||
a.logger.Error("DeleteMember", "database handler is not initialized")
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
var err error
|
||||
|
||||
var request struct {
|
||||
Ids []int `json:"ids"`
|
||||
Ids []uint `json:"ids"`
|
||||
}
|
||||
err = c.BindJSON(&request)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
a.logger.Error("DeleteMember", err)
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
err = a.DbHandler.DeleteMember(request.Ids...)
|
||||
if err != nil {
|
||||
a.logger.Error("DeleteMember", err)
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"message": "member deleted",
|
||||
"message": "member(s) deleted",
|
||||
})
|
||||
}
|
||||
|
||||
func (a *APIHandler) ImportCSV(c *gin.Context) {
|
||||
if !a.databaseOpened(c) {
|
||||
if !a.DBHandlerIsInitialized() {
|
||||
a.logger.Error("ImportCSV", "database handler is not initialized")
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
var err error
|
||||
|
||||
fileHeader, err := c.FormFile("file")
|
||||
if err != nil {
|
||||
a.logger.Error("ImportCSV", err)
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
@@ -188,7 +202,8 @@ func (a *APIHandler) ImportCSV(c *gin.Context) {
|
||||
|
||||
rowIndexI, err := strconv.Atoi(rowIndex)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
a.logger.Error("ImportCSV", err)
|
||||
c.JSON(http.StatusInternalServerError, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
return
|
||||
@@ -196,6 +211,7 @@ func (a *APIHandler) ImportCSV(c *gin.Context) {
|
||||
|
||||
file, err := fileHeader.Open()
|
||||
if err != nil {
|
||||
a.logger.Error("ImportCSV", err)
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to open uploaded file"})
|
||||
return
|
||||
}
|
||||
@@ -206,6 +222,7 @@ func (a *APIHandler) ImportCSV(c *gin.Context) {
|
||||
buf := make([]byte, sniffSize)
|
||||
n, err := file.Read(buf)
|
||||
if err != nil && err != io.EOF {
|
||||
a.logger.Error("ImportCSV", err)
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"message": err.Error()})
|
||||
return
|
||||
}
|
||||
@@ -214,12 +231,14 @@ func (a *APIHandler) ImportCSV(c *gin.Context) {
|
||||
detector := chardet.NewTextDetector()
|
||||
result, err := detector.DetectBest(buf[:n])
|
||||
if err != nil {
|
||||
a.logger.Error("ImportCSV", err)
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to detect encoding"})
|
||||
return
|
||||
}
|
||||
|
||||
_, err = file.Seek(0, io.SeekStart)
|
||||
if err != nil {
|
||||
a.logger.Error("ImportCSV", err)
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"message": "Failed to rewind file"})
|
||||
return
|
||||
}
|
||||
@@ -234,6 +253,7 @@ func (a *APIHandler) ImportCSV(c *gin.Context) {
|
||||
case "ISO-8859-1":
|
||||
reader = transform.NewReader(file, charmap.ISO8859_1.NewDecoder())
|
||||
default:
|
||||
a.logger.Error("ImportCSV", "Unsupported encoding: "+result.Charset)
|
||||
c.JSON(http.StatusBadRequest, gin.H{"message": "Unsupported encoding: " + result.Charset})
|
||||
return
|
||||
}
|
||||
@@ -243,6 +263,7 @@ func (a *APIHandler) ImportCSV(c *gin.Context) {
|
||||
|
||||
records, err := csvReader.ReadAll()
|
||||
if err != nil {
|
||||
a.logger.Error("ImportCSV", err)
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": "Failed to parse CSV"})
|
||||
return
|
||||
}
|
||||
@@ -298,6 +319,7 @@ func (a *APIHandler) ImportCSV(c *gin.Context) {
|
||||
}
|
||||
|
||||
if message != "" {
|
||||
a.logger.Error("ImportCSV", message)
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": message,
|
||||
})
|
||||
|
||||
@@ -10,16 +10,17 @@ import (
|
||||
)
|
||||
|
||||
func (a *APIHandler) AddNewResponsible(c *gin.Context) {
|
||||
if !a.databaseOpened(c) {
|
||||
if !a.DBHandlerIsInitialized() {
|
||||
a.logger.Error("AddNewResponsible", "database handler is not initialized")
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
var responsible models.Person
|
||||
err := c.BindJSON(&responsible)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
a.logger.Error("AddNewResponsible", err)
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -36,11 +37,12 @@ func (a *APIHandler) AddNewResponsible(c *gin.Context) {
|
||||
})
|
||||
}
|
||||
|
||||
func (a *APIHandler) GetResponsibleById(c *gin.Context) {
|
||||
if !a.databaseOpened(c) {
|
||||
func (a *APIHandler) GetResponsible(c *gin.Context) {
|
||||
if !a.DBHandlerIsInitialized() {
|
||||
a.logger.Error("GetResponsible", "database handler is not initialized")
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
var i int
|
||||
var err error
|
||||
|
||||
@@ -48,15 +50,15 @@ func (a *APIHandler) GetResponsibleById(c *gin.Context) {
|
||||
if id != "" {
|
||||
i, err = strconv.Atoi(id)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
a.logger.Error("GetResponsible", err)
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
members, err := a.DbHandler.GetResponsible(i)
|
||||
members, err := a.DbHandler.GetResponsible(uint(i))
|
||||
if err != nil {
|
||||
a.logger.Error("GetResponsible", err)
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
@@ -66,24 +68,26 @@ func (a *APIHandler) GetResponsibleById(c *gin.Context) {
|
||||
}
|
||||
|
||||
func (a *APIHandler) DeleteResponsible(c *gin.Context) {
|
||||
if !a.databaseOpened(c) {
|
||||
if !a.DBHandlerIsInitialized() {
|
||||
a.logger.Error("DeleteResponsible", "database handler is not initialized")
|
||||
c.JSON(http.StatusInternalServerError, nil)
|
||||
return
|
||||
}
|
||||
var err error
|
||||
|
||||
var request struct {
|
||||
Ids []int `json:"ids"`
|
||||
Ids []uint `json:"ids"`
|
||||
}
|
||||
err = c.BindJSON(&request)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
a.logger.Error("DeleteResponsible", err)
|
||||
c.JSON(http.StatusBadRequest, nil)
|
||||
return
|
||||
}
|
||||
|
||||
err = a.DbHandler.DeleteResponsible(request.Ids...)
|
||||
if err != nil {
|
||||
a.logger.Error("DeleteResponsible", err)
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"message": err.Error(),
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user