progress
This commit is contained in:
parent
c1d265f1bf
commit
490be49808
4 changed files with 82 additions and 32 deletions
|
@ -297,7 +297,7 @@ func UpdateObject(context *gin.Context) {
|
||||||
case "function":
|
case "function":
|
||||||
result = function.Update(GlobalDatabase, context)
|
result = function.Update(GlobalDatabase, context)
|
||||||
case "function-tag":
|
case "function-tag":
|
||||||
// result = functiontag.Create(GlobalDatabase, objectID)
|
result = functiontag.Update(GlobalDatabase, context)
|
||||||
case "inventory-slot":
|
case "inventory-slot":
|
||||||
//
|
//
|
||||||
case "item":
|
case "item":
|
||||||
|
@ -395,8 +395,9 @@ func GetObjects(context *gin.Context) {
|
||||||
"functions": function.Get(GlobalDatabase, uintObjectIDs),
|
"functions": function.Get(GlobalDatabase, uintObjectIDs),
|
||||||
})
|
})
|
||||||
case "function-tags":
|
case "function-tags":
|
||||||
|
objectIDInts := objectIDStringsToInts(context, objectIDs)
|
||||||
context.JSON(http.StatusOK, gin.H{
|
context.JSON(http.StatusOK, gin.H{
|
||||||
"function_tags": functiontag.Get(GlobalDatabase, objectIDs),
|
"function_tags": functiontag.Get(GlobalDatabase, *objectIDInts),
|
||||||
})
|
})
|
||||||
case "inventory-slot":
|
case "inventory-slot":
|
||||||
objectIDInts := objectIDStringsToInts(context, objectIDs)
|
objectIDInts := objectIDStringsToInts(context, objectIDs)
|
||||||
|
@ -492,35 +493,35 @@ func DeleteObject(context *gin.Context) {
|
||||||
uintObjectIDs := objectIDStringsToInts(context, objectIDs)
|
uintObjectIDs := objectIDStringsToInts(context, objectIDs)
|
||||||
var result error
|
var result error
|
||||||
switch objectType := context.Param("object"); objectType {
|
switch objectType := context.Param("object"); objectType {
|
||||||
case "user":
|
case "users":
|
||||||
//
|
//
|
||||||
case "person":
|
case "persons":
|
||||||
//
|
//
|
||||||
case "groups":
|
case "groups":
|
||||||
log.Println(*uintObjectIDs, objectIDs)
|
log.Println(*uintObjectIDs, objectIDs)
|
||||||
result = group.Delete(GlobalDatabase, *uintObjectIDs)
|
result = group.Delete(GlobalDatabase, *uintObjectIDs)
|
||||||
case "character":
|
case "characters":
|
||||||
//
|
//
|
||||||
case "role":
|
case "roles":
|
||||||
//
|
//
|
||||||
case "tier":
|
case "tiers":
|
||||||
//
|
//
|
||||||
case "function-set":
|
case "function-sets":
|
||||||
//
|
//
|
||||||
case "function":
|
case "functions":
|
||||||
log.Println(uintObjectIDs)
|
log.Println(uintObjectIDs)
|
||||||
result = function.Delete(GlobalDatabase, *uintObjectIDs)
|
result = function.Delete(GlobalDatabase, *uintObjectIDs)
|
||||||
case "function-tag":
|
case "function-tags":
|
||||||
// result = functiontag.Create(GlobalDatabase, objectID)
|
result = functiontag.Delete(GlobalDatabase, *uintObjectIDs)
|
||||||
case "inventory-slot":
|
case "inventory-slots":
|
||||||
//
|
//
|
||||||
case "item":
|
case "items":
|
||||||
//
|
//
|
||||||
case "item-tag":
|
case "item-tags":
|
||||||
//
|
//
|
||||||
case "customization":
|
case "customizations":
|
||||||
//
|
//
|
||||||
case "schematic":
|
case "schematics":
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
if result != nil {
|
if result != nil {
|
||||||
|
|
|
@ -20,10 +20,10 @@ type Function struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type functionParams struct {
|
type functionParams struct {
|
||||||
Id string `json:"id"`
|
Id string `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Tags []string `json:"tags"`
|
Tags []uint `json:"tags"`
|
||||||
Requirements []uint `json:"requirements"`
|
Requirements []uint `json:"requirements"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (function Function) Create(db *gorm.DB) error {
|
func (function Function) Create(db *gorm.DB) error {
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
package functiontag
|
package functiontag
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
|
"io"
|
||||||
"log"
|
"log"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
|
@ -9,18 +13,45 @@ import (
|
||||||
|
|
||||||
type FunctionTag struct {
|
type FunctionTag struct {
|
||||||
gorm.Model
|
gorm.Model
|
||||||
Name string `gorm:"primaryKey uniqueIndex" json:"name"`
|
Name string `gorm:"uniqueIndex" json:"name"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (functionTag *FunctionTag) get(db *gorm.DB, inputFunctionTag string) {
|
type functionTagParams struct {
|
||||||
db.Where("name = ?", inputFunctionTag).Take(&functionTag)
|
// ID of the object being modified
|
||||||
|
ID string
|
||||||
|
// New fields
|
||||||
|
Name string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (params *functionTagParams) validate(context *gin.Context) error {
|
||||||
|
ID, IDOk := context.GetQuery("id")
|
||||||
|
if !IDOk {
|
||||||
|
return errors.New("ID was not included in the request")
|
||||||
|
}
|
||||||
|
body, err := io.ReadAll(context.Request.Body)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
var name functionTagParams
|
||||||
|
_ = json.Unmarshal(body, &name)
|
||||||
|
params.ID = ID
|
||||||
|
params.Name = name.Name
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (functionTag *FunctionTag) get(db *gorm.DB, inputFunctionTag uint) {
|
||||||
|
db.Model(&FunctionTag{}).Where("ID = ?", inputFunctionTag).Take(&functionTag)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (functionTag FunctionTag) update(db *gorm.DB) error {
|
func (functionTag FunctionTag) update(db *gorm.DB) error {
|
||||||
result := db.Save(&functionTag)
|
var originalFunctionTag FunctionTag
|
||||||
|
result := db.Model(&FunctionTag{}).Where("id = ?", functionTag.ID).Take(&originalFunctionTag)
|
||||||
if result.Error != nil {
|
if result.Error != nil {
|
||||||
return result.Error
|
return result.Error
|
||||||
}
|
}
|
||||||
|
originalFunctionTag.Name = functionTag.Name
|
||||||
|
db.Save(&originalFunctionTag)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,12 +72,21 @@ func (functionTag FunctionTag) delete(db *gorm.DB) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func Create(db *gorm.DB, context *gin.Context) error {
|
func Create(db *gorm.DB, context *gin.Context) error {
|
||||||
|
body, err := io.ReadAll(context.Request.Body)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
var newFunctionTag FunctionTag
|
||||||
|
err = json.Unmarshal(body, &newFunctionTag)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
return FunctionTag{
|
return FunctionTag{
|
||||||
Name: context.Query("id"),
|
Name: newFunctionTag.Name,
|
||||||
}.create(db)
|
}.create(db)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Get(db *gorm.DB, inputFunctionTags []string) *[]FunctionTag {
|
func Get(db *gorm.DB, inputFunctionTags []uint) *[]FunctionTag {
|
||||||
var outputFunctionTags []FunctionTag
|
var outputFunctionTags []FunctionTag
|
||||||
for _, inputFunctionTag := range inputFunctionTags {
|
for _, inputFunctionTag := range inputFunctionTags {
|
||||||
var outputFunctionTag FunctionTag
|
var outputFunctionTag FunctionTag
|
||||||
|
@ -58,22 +98,32 @@ func Get(db *gorm.DB, inputFunctionTags []string) *[]FunctionTag {
|
||||||
|
|
||||||
func GetAll(db *gorm.DB) *[]FunctionTag {
|
func GetAll(db *gorm.DB) *[]FunctionTag {
|
||||||
var outputFunctionTags []FunctionTag
|
var outputFunctionTags []FunctionTag
|
||||||
var outputFunctionTagNames []string
|
var outputFunctionTagIDs []uint
|
||||||
result := db.Model(&FunctionTag{}).Select("name").Find(&outputFunctionTagNames)
|
result := db.Model(&FunctionTag{}).Select("id").Find(&outputFunctionTagIDs)
|
||||||
if result.Error != nil {
|
if result.Error != nil {
|
||||||
log.Println(result.Error)
|
log.Println(result.Error)
|
||||||
}
|
}
|
||||||
outputFunctionTags = *Get(db, outputFunctionTagNames)
|
outputFunctionTags = *Get(db, outputFunctionTagIDs)
|
||||||
return &outputFunctionTags
|
return &outputFunctionTags
|
||||||
}
|
}
|
||||||
|
|
||||||
func Update(db *gorm.DB, context *gin.Context) error {
|
func Update(db *gorm.DB, context *gin.Context) error {
|
||||||
|
var params functionTagParams
|
||||||
|
err := params.validate(context)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
uintID, err := strconv.Atoi(params.ID)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
return FunctionTag{
|
return FunctionTag{
|
||||||
Name: context.Query("id"),
|
Model: gorm.Model{ID: uint(uintID)},
|
||||||
|
Name: params.Name,
|
||||||
}.update(db)
|
}.update(db)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Delete(db *gorm.DB, inputFunctions []string) error {
|
func Delete(db *gorm.DB, inputFunctions []uint) error {
|
||||||
functions := Get(db, inputFunctions)
|
functions := Get(db, inputFunctions)
|
||||||
for _, function := range *functions {
|
for _, function := range *functions {
|
||||||
err := function.delete(db)
|
err := function.delete(db)
|
||||||
|
|
|
@ -78,7 +78,6 @@ func Create(db *gorm.DB, context *gin.Context) error {
|
||||||
}
|
}
|
||||||
var newGroup Group
|
var newGroup Group
|
||||||
err = json.Unmarshal(body, &newGroup)
|
err = json.Unmarshal(body, &newGroup)
|
||||||
log.Println(newGroup)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue