moved Ausruestung to domain equipment

This commit is contained in:
2024-12-30 16:23:05 +01:00
parent 6a20587f42
commit bf73210a4b
6 changed files with 101 additions and 76 deletions
-67
View File
@@ -2,7 +2,6 @@ package character
import (
"bamort/database"
"bamort/models"
"encoding/json"
"fmt"
@@ -44,72 +43,6 @@ func CreateCharacter(c *gin.Context) {
c.JSON(http.StatusCreated, character)
}
/*
Endpoints for Managing Ausruestung
1. Create Ausruestung
Allows users to add new equipment items for a specific character.
*/
func CreateAusruestung(c *gin.Context) {
var ausruestung models.Ausruestung
if err := c.ShouldBindJSON(&ausruestung); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
if err := database.DB.Create(&ausruestung).Error; err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create Ausruestung"})
return
}
c.JSON(http.StatusCreated, ausruestung)
}
func GetAusruestung(c *gin.Context) {
characterID := c.Param("character_id")
var ausruestung []models.Ausruestung
if err := database.DB.Where("character_id = ?", characterID).Find(&ausruestung).Error; err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to retrieve Ausruestung"})
return
}
c.JSON(http.StatusOK, ausruestung)
}
func UpdateAusruestung(c *gin.Context) {
ausruestungID := c.Param("ausruestung_id")
var ausruestung models.Ausruestung
if err := database.DB.First(&ausruestung, ausruestungID).Error; err != nil {
c.JSON(http.StatusNotFound, gin.H{"error": "Ausruestung not found"})
return
}
if err := c.ShouldBindJSON(&ausruestung); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
if err := database.DB.Save(&ausruestung).Error; err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update Ausruestung"})
return
}
c.JSON(http.StatusOK, ausruestung)
}
func DeleteAusruestung(c *gin.Context) {
ausruestungID := c.Param("ausruestung_id")
if err := database.DB.Delete(&models.Ausruestung{}, ausruestungID).Error; err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete Ausruestung"})
return
}
c.JSON(http.StatusOK, gin.H{"message": "Ausruestung deleted successfully"})
}
// Upload files
func UploadFiles(c *gin.Context) {
// Get files from the request
+2 -1
View File
@@ -2,6 +2,7 @@ package character
import (
"bamort/database"
"bamort/equipment"
"bamort/models"
"fmt"
@@ -69,7 +70,7 @@ type Char struct {
Waffen []models.Waffe `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"waffen"`
Behaeltnisse []models.Behaeltniss `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"behaeltnisse"`
Transportmittel []models.Transportation `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"transportmittel"`
Ausruestung []models.Ausruestung `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"ausruestung"`
Ausruestung []equipment.Ausruestung `gorm:"foreignKey:CharacterID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"ausruestung"`
Image string `json:"image,omitempty"`
}
+75
View File
@@ -0,0 +1,75 @@
package equipment
import (
"bamort/database"
"bamort/models"
"net/http"
"github.com/gin-gonic/gin"
)
/*
Endpoints for Managing Ausruestung
1. Create Ausruestung
Allows users to add new equipment items for a specific character.
*/
func CreateAusruestung(c *gin.Context) {
var ausruestung models.Ausruestung
if err := c.ShouldBindJSON(&ausruestung); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
if err := database.DB.Create(&ausruestung).Error; err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create Ausruestung"})
return
}
c.JSON(http.StatusCreated, ausruestung)
}
func GetAusruestung(c *gin.Context) {
characterID := c.Param("character_id")
var ausruestung []Ausruestung
if err := database.DB.Where("character_id = ?", characterID).Find(&ausruestung).Error; err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to retrieve Ausruestung"})
return
}
c.JSON(http.StatusOK, ausruestung)
}
func UpdateAusruestung(c *gin.Context) {
ausruestungID := c.Param("ausruestung_id")
var ausruestung Ausruestung
if err := database.DB.First(&ausruestung, ausruestungID).Error; err != nil {
c.JSON(http.StatusNotFound, gin.H{"error": "Ausruestung not found"})
return
}
if err := c.ShouldBindJSON(&ausruestung); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
if err := database.DB.Save(&ausruestung).Error; err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update Ausruestung"})
return
}
c.JSON(http.StatusOK, ausruestung)
}
func DeleteAusruestung(c *gin.Context) {
ausruestungID := c.Param("ausruestung_id")
if err := database.DB.Delete(&Ausruestung{}, ausruestungID).Error; err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete Ausruestung"})
return
}
c.JSON(http.StatusOK, gin.H{"message": "Ausruestung deleted successfully"})
}
+14
View File
@@ -0,0 +1,14 @@
package equipment
import "bamort/models"
type Ausruestung struct {
models.BamortCharTrait
models.Magisch
Beschreibung string `json:"beschreibung"`
Anzahl int `json:"anzahl"`
BeinhaltetIn string `json:"beinhaltet_in"`
Bonus int `json:"bonus,omitempty"`
Gewicht float64 `json:"gewicht"`
Wert float64 `json:"wert"`
}
+5 -4
View File
@@ -3,6 +3,7 @@ package main
import (
"bamort/character"
"bamort/database"
"bamort/equipment"
"bamort/user"
"github.com/gin-contrib/cors"
@@ -32,10 +33,10 @@ func main() {
protected.Use(user.AuthMiddleware())
protected.GET("/characters", character.GetCharacters)
protected.POST("/characters", character.CreateCharacter)
protected.POST("/ausruestung", character.CreateAusruestung)
protected.GET("/ausruestung/:character_id", character.GetAusruestung)
protected.PUT("/ausruestung/:ausruestung_id", character.UpdateAusruestung)
protected.DELETE("/ausruestung/:ausruestung_id", character.DeleteAusruestung)
protected.POST("/ausruestung", equipment.CreateAusruestung)
protected.GET("/ausruestung/:character_id", equipment.GetAusruestung)
protected.PUT("/ausruestung/:ausruestung_id", equipment.UpdateAusruestung)
protected.DELETE("/ausruestung/:ausruestung_id", equipment.DeleteAusruestung)
protected.POST("/upload", character.UploadFiles)
protected.GET("/setupcheck", database.SetupCheck)
+5 -4
View File
@@ -3,6 +3,7 @@ package tests
import (
"bamort/character"
"bamort/database"
"bamort/equipment"
"bamort/models"
"encoding/base64"
"fmt"
@@ -31,7 +32,7 @@ func initTestDB4Character() *gorm.DB {
&models.Waffe{},
&models.Behaeltniss{},
&models.Transportation{},
&models.Ausruestung{},
&equipment.Ausruestung{},
)
return db
}
@@ -284,7 +285,7 @@ func createChar() *character.Char {
},
}
char.Ausruestung = []models.Ausruestung{
char.Ausruestung = []equipment.Ausruestung{
{
BamortCharTrait: models.BamortCharTrait{
BamortBase: models.BamortBase{
@@ -513,8 +514,8 @@ func createTransportmittel(sel int) *models.Transportation {
}
return &liste[sel]
}
func createAusruestung(sel int) *models.Ausruestung {
liste := []models.Ausruestung{
func createAusruestung(sel int) *equipment.Ausruestung {
liste := []equipment.Ausruestung{
{
BamortCharTrait: models.BamortCharTrait{
BamortBase: models.BamortBase{