ein bisschen import
This commit is contained in:
@@ -246,3 +246,31 @@ func isValidFileType(filename string) bool {
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func SetupCheck(c *gin.Context) {
|
||||
ConnectDatabase()
|
||||
err := DB.AutoMigrate(&Character{},
|
||||
&Fertigkeit{}, &Zauber{}, &Lp{},
|
||||
&Eigenschaft{}, &Merkmale{},
|
||||
&Bennies{},
|
||||
&Gestalt{},
|
||||
&Ap{}, &B{},
|
||||
&Erfahrungsschatz{},
|
||||
&MagischTransport{},
|
||||
&Transportation{},
|
||||
&MagischAusruestung{},
|
||||
&Ausruestung{},
|
||||
&MagischBehaelter{},
|
||||
&Behaeltniss{},
|
||||
&MagischWaffe{},
|
||||
&Waffe{},
|
||||
&Waffenfertigkeit{},
|
||||
&StammFertigkeit{},
|
||||
)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to automigrate DataBase"})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, gin.H{"message": "Setup Check OK"})
|
||||
}
|
||||
|
||||
@@ -4,11 +4,9 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func TestImportVTT(t *testing.T) {
|
||||
@@ -57,39 +55,46 @@ func TestImportFertigkeitenStammdaten(t *testing.T) {
|
||||
err = json.Unmarshal(fileContent, &character)
|
||||
assert.NoError(t, err, "Expected no error when Unmarshal filecontent")
|
||||
|
||||
//fertigkeit := character.Fertigkeiten[1]
|
||||
for _, fertigkeit := range character.Fertigkeiten {
|
||||
//fmt.Printf("Name: %s, Beschreibung: %s, Wert: %d\n",
|
||||
// fertigkeit.Name, fertigkeit.Beschreibung, fertigkeit.Fertigkeitswert)
|
||||
//fmt.Println(fertigkeit)
|
||||
stammF := StammFertigkeit{}
|
||||
if strings.HasPrefix(fertigkeit.ImportID, "moam") {
|
||||
err = DB.First(&stammF, "system=? AND name = ?", "midgard", fertigkeit.Name).Error
|
||||
assert.Error(t, err, "Expected not to find the Fertigkeit Stammdaten in the database")
|
||||
stammF.System = "midgard"
|
||||
stammF.Name = fertigkeit.Name
|
||||
stammF.Beschreibung = fertigkeit.Beschreibung
|
||||
if fertigkeit.Fertigkeitswert < 12 {
|
||||
stammF.Initialkeitswert = 5
|
||||
} else {
|
||||
stammF.Initialkeitswert = 12
|
||||
}
|
||||
stammF.Bonuseigenschaft = "keine"
|
||||
stammF.Quelle = fertigkeit.Quelle
|
||||
//fmt.Println(stammF)
|
||||
err = DB.Transaction(func(tx *gorm.DB) error {
|
||||
// Save the main character record
|
||||
if err := tx.Create(&stammF).Error; err != nil {
|
||||
return fmt.Errorf("failed to save Fertigkeit Stammdaten: %w", err)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
assert.NoError(t, err, "Expected no error saving Fertigkeit Stammdaten in the database")
|
||||
}
|
||||
fertigkeit := character.Fertigkeiten[1]
|
||||
//for _, fertigkeit := range character.Fertigkeiten {
|
||||
//fmt.Printf("Name: %s, Beschreibung: %s, Wert: %d\n",
|
||||
// fertigkeit.Name, fertigkeit.Beschreibung, fertigkeit.Fertigkeitswert)
|
||||
//fmt.Println(fertigkeit)
|
||||
/* stammF := StammFertigkeit{}
|
||||
if strings.HasPrefix(fertigkeit.ImportID, "moam") {
|
||||
err = DB.First(&stammF, "system=? AND name = ?", "midgard", fertigkeit.Name).Error
|
||||
fmt.Println(stammF)
|
||||
assert.NoError(t, err, "Expected to find the Fertigkeit Stammdaten in the database")
|
||||
|
||||
assert.Error(t, err, "Expected not to find the Fertigkeit Stammdaten in the database")
|
||||
stammF.System = "midgard"
|
||||
stammF.Name = fertigkeit.Name
|
||||
stammF.Beschreibung = fertigkeit.Beschreibung
|
||||
if fertigkeit.Fertigkeitswert < 12 {
|
||||
stammF.Initialkeitswert = 5
|
||||
} else {
|
||||
stammF.Initialkeitswert = 12
|
||||
}
|
||||
stammF.Bonuseigenschaft = "keine"
|
||||
stammF.Quelle = fertigkeit.Quelle
|
||||
//fmt.Println(stammF)
|
||||
err = DB.Transaction(func(tx *gorm.DB) error {
|
||||
// Save the main character record
|
||||
if err := tx.Create(&stammF).Error; err != nil {
|
||||
return fmt.Errorf("failed to save Fertigkeit Stammdaten: %w", err)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
assert.NoError(t, err, "Expected no error saving Fertigkeit Stammdaten in the database")
|
||||
}
|
||||
err = DB.First(&stammF, "system=? AND name = ?", "midgard", fertigkeit.Name).Error
|
||||
fmt.Println(stammF) */
|
||||
stammF, err := CheckFertigkeit(&fertigkeit, false)
|
||||
assert.Error(t, err, "expexted Error does not exist in Fertigkeit Stammdaten")
|
||||
if stammF == nil && err != nil {
|
||||
stammF, err = CheckFertigkeit(&fertigkeit, true)
|
||||
}
|
||||
assert.NoError(t, err, "Expected to finds the Fertigkeit Stammdaten in the database")
|
||||
assert.Equal(t, fertigkeit.Name, stammF.Name)
|
||||
assert.Equal(t, fertigkeit.Beschreibung, stammF.Beschreibung)
|
||||
|
||||
//}
|
||||
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ func main() {
|
||||
r.PUT("/ausruestung/:ausruestung_id", AuthMiddleware(), UpdateAusruestung)
|
||||
r.DELETE("/ausruestung/:ausruestung_id", AuthMiddleware(), DeleteAusruestung)
|
||||
r.POST("/upload", AuthMiddleware(), UploadFiles)
|
||||
r.GET("/setupcheck", AuthMiddleware(), SetupCheck)
|
||||
|
||||
r.Run(":8180") // Start server on port 8080
|
||||
}
|
||||
|
||||
+5
-5
@@ -49,7 +49,7 @@ type Eigenschaft struct {
|
||||
}
|
||||
|
||||
type Ausruestung struct {
|
||||
ID uint `gorm:"primaryKey"json:"dbid"`
|
||||
ID uint `gorm:"primaryKey" json:"dbid"`
|
||||
ImportID string `json:"id"`
|
||||
CharacterID uint `gorm:"index" json:"character_id"`
|
||||
Name string `json:"name"`
|
||||
@@ -63,7 +63,7 @@ type Ausruestung struct {
|
||||
}
|
||||
|
||||
type Fertigkeit struct {
|
||||
ID uint `gorm:"primaryKey"json:"dbid"`
|
||||
ID uint `gorm:"primaryKey" json:"dbid"`
|
||||
ImportID string `json:"id"`
|
||||
CharacterID uint `gorm:"index" json:"character_id"`
|
||||
Name string `json:"name"`
|
||||
@@ -84,7 +84,7 @@ type Zauber struct {
|
||||
}
|
||||
|
||||
type Waffenfertigkeit struct {
|
||||
ID uint `gorm:"primaryKey"json:"dbid"`
|
||||
ID uint `gorm:"primaryKey" json:"dbid"`
|
||||
ImportID string `json:"id"`
|
||||
CharacterID uint `gorm:"index" json:"character_id"`
|
||||
Name string `json:"name"`
|
||||
@@ -96,7 +96,7 @@ type Waffenfertigkeit struct {
|
||||
}
|
||||
|
||||
type Waffe struct {
|
||||
ID uint `gorm:"primaryKey"json:"dbid"`
|
||||
ID uint `gorm:"primaryKey" json:"dbid"`
|
||||
ImportID string `json:"id"`
|
||||
CharacterID uint `gorm:"index" json:"character_id"`
|
||||
Name string `json:"name"`
|
||||
@@ -163,7 +163,7 @@ type Bennies struct {
|
||||
}
|
||||
|
||||
type Behaeltniss struct {
|
||||
ID uint `gorm:"primaryKey"json:"dbid"`
|
||||
ID uint `gorm:"primaryKey" json:"dbid"`
|
||||
ImportID string `json:"id"`
|
||||
CharacterID uint `gorm:"index" json:"character_id"`
|
||||
Name string `json:"name"`
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func CheckFertigkeit(fertigkeit *Fertigkeit, autocreate bool) (*StammFertigkeit, error) {
|
||||
stammF := StammFertigkeit{}
|
||||
|
||||
if strings.HasPrefix(fertigkeit.ImportID, "moam") {
|
||||
err := DB.First(&stammF, "system=? AND name = ?", "midgard", fertigkeit.Name).Error
|
||||
if err == nil {
|
||||
// Fertigkeit found
|
||||
return &stammF, nil
|
||||
}
|
||||
if !autocreate {
|
||||
return nil, fmt.Errorf("does not exist in Fertigkeit Stammdaten")
|
||||
}
|
||||
stammF.System = "midgard"
|
||||
stammF.Name = fertigkeit.Name
|
||||
stammF.Beschreibung = fertigkeit.Beschreibung
|
||||
if fertigkeit.Fertigkeitswert < 12 {
|
||||
stammF.Initialkeitswert = 5
|
||||
} else {
|
||||
stammF.Initialkeitswert = 12
|
||||
}
|
||||
stammF.Bonuseigenschaft = "keine"
|
||||
stammF.Quelle = fertigkeit.Quelle
|
||||
//fmt.Println(stammF)
|
||||
err = DB.Transaction(func(tx *gorm.DB) error {
|
||||
// Save the main character record
|
||||
if err := tx.Create(&stammF).Error; err != nil {
|
||||
return fmt.Errorf("failed to save Fertigkeit Stammdaten: %w", err)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
// Fertigkeit found
|
||||
return nil, err
|
||||
}
|
||||
|
||||
}
|
||||
err := DB.First(&stammF, "system=? AND name = ?", "midgard", fertigkeit.Name).Error
|
||||
if err != nil {
|
||||
// Fertigkeit found
|
||||
return nil, err
|
||||
}
|
||||
return &stammF, nil
|
||||
}
|
||||
@@ -1,3 +1,46 @@
|
||||
module bamort
|
||||
|
||||
go 1.23.2
|
||||
|
||||
require (
|
||||
filippo.io/edwards25519 v1.1.0 // indirect
|
||||
github.com/bytedance/sonic v1.12.6 // indirect
|
||||
github.com/bytedance/sonic/loader v0.2.1 // indirect
|
||||
github.com/cloudwego/base64x v0.1.4 // indirect
|
||||
github.com/cloudwego/iasm v0.2.0 // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/gabriel-vasile/mimetype v1.4.7 // indirect
|
||||
github.com/gin-contrib/cors v1.7.2 // indirect
|
||||
github.com/gin-contrib/sse v0.1.0 // indirect
|
||||
github.com/gin-gonic/gin v1.10.0 // indirect
|
||||
github.com/go-bindata/go-bindata v3.1.2+incompatible // indirect
|
||||
github.com/go-playground/locales v0.14.1 // indirect
|
||||
github.com/go-playground/universal-translator v0.18.1 // indirect
|
||||
github.com/go-playground/validator/v10 v10.23.0 // indirect
|
||||
github.com/go-sql-driver/mysql v1.8.1 // indirect
|
||||
github.com/goccy/go-json v0.10.4 // indirect
|
||||
github.com/jinzhu/inflection v1.0.0 // indirect
|
||||
github.com/jinzhu/now v1.1.5 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/klauspost/cpuid/v2 v2.2.9 // indirect
|
||||
github.com/leodido/go-urn v1.4.0 // indirect
|
||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||
github.com/mattn/go-sqlite3 v1.14.24 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/stretchr/testify v1.10.0 // indirect
|
||||
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
||||
github.com/ugorji/go/codec v1.2.12 // indirect
|
||||
golang.org/x/arch v0.12.0 // indirect
|
||||
golang.org/x/crypto v0.31.0 // indirect
|
||||
golang.org/x/net v0.33.0 // indirect
|
||||
golang.org/x/sys v0.28.0 // indirect
|
||||
golang.org/x/text v0.21.0 // indirect
|
||||
google.golang.org/protobuf v1.36.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
gorm.io/driver/mysql v1.5.7 // indirect
|
||||
gorm.io/driver/sqlite v1.5.7 // indirect
|
||||
gorm.io/gorm v1.25.12 // indirect
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user