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":
 | 
			
		||||
				result = function.Update(GlobalDatabase, context)
 | 
			
		||||
			case "function-tag":
 | 
			
		||||
				// result = functiontag.Create(GlobalDatabase, objectID)
 | 
			
		||||
				result = functiontag.Update(GlobalDatabase, context)
 | 
			
		||||
			case "inventory-slot":
 | 
			
		||||
				//
 | 
			
		||||
			case "item":
 | 
			
		||||
| 
						 | 
				
			
			@ -395,8 +395,9 @@ func GetObjects(context *gin.Context) {
 | 
			
		|||
				"functions": function.Get(GlobalDatabase, uintObjectIDs),
 | 
			
		||||
			})
 | 
			
		||||
		case "function-tags":
 | 
			
		||||
			objectIDInts := objectIDStringsToInts(context, objectIDs)
 | 
			
		||||
			context.JSON(http.StatusOK, gin.H{
 | 
			
		||||
				"function_tags": functiontag.Get(GlobalDatabase, objectIDs),
 | 
			
		||||
				"function_tags": functiontag.Get(GlobalDatabase, *objectIDInts),
 | 
			
		||||
			})
 | 
			
		||||
		case "inventory-slot":
 | 
			
		||||
			objectIDInts := objectIDStringsToInts(context, objectIDs)
 | 
			
		||||
| 
						 | 
				
			
			@ -492,35 +493,35 @@ func DeleteObject(context *gin.Context) {
 | 
			
		|||
			uintObjectIDs := objectIDStringsToInts(context, objectIDs)
 | 
			
		||||
			var result error
 | 
			
		||||
			switch objectType := context.Param("object"); objectType {
 | 
			
		||||
			case "user":
 | 
			
		||||
			case "users":
 | 
			
		||||
				//
 | 
			
		||||
			case "person":
 | 
			
		||||
			case "persons":
 | 
			
		||||
				//
 | 
			
		||||
			case "groups":
 | 
			
		||||
				log.Println(*uintObjectIDs, objectIDs)
 | 
			
		||||
				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)
 | 
			
		||||
				result = function.Delete(GlobalDatabase, *uintObjectIDs)
 | 
			
		||||
			case "function-tag":
 | 
			
		||||
				// result = functiontag.Create(GlobalDatabase, objectID)
 | 
			
		||||
			case "inventory-slot":
 | 
			
		||||
			case "function-tags":
 | 
			
		||||
				result = functiontag.Delete(GlobalDatabase, *uintObjectIDs)
 | 
			
		||||
			case "inventory-slots":
 | 
			
		||||
				//
 | 
			
		||||
			case "item":
 | 
			
		||||
			case "items":
 | 
			
		||||
				//
 | 
			
		||||
			case "item-tag":
 | 
			
		||||
			case "item-tags":
 | 
			
		||||
				//
 | 
			
		||||
			case "customization":
 | 
			
		||||
			case "customizations":
 | 
			
		||||
				//
 | 
			
		||||
			case "schematic":
 | 
			
		||||
			case "schematics":
 | 
			
		||||
				//
 | 
			
		||||
			}
 | 
			
		||||
			if result != nil {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,10 +20,10 @@ type Function struct {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
type functionParams struct {
 | 
			
		||||
	Id           string   `json:"id"`
 | 
			
		||||
	Name         string   `json:"name"`
 | 
			
		||||
	Tags         []string `json:"tags"`
 | 
			
		||||
	Requirements []uint   `json:"requirements"`
 | 
			
		||||
	Id           string `json:"id"`
 | 
			
		||||
	Name         string `json:"name"`
 | 
			
		||||
	Tags         []uint `json:"tags"`
 | 
			
		||||
	Requirements []uint `json:"requirements"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (function Function) Create(db *gorm.DB) error {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,11 @@
 | 
			
		|||
package functiontag
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"io"
 | 
			
		||||
	"log"
 | 
			
		||||
	"strconv"
 | 
			
		||||
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"gorm.io/gorm"
 | 
			
		||||
| 
						 | 
				
			
			@ -9,18 +13,45 @@ import (
 | 
			
		|||
 | 
			
		||||
type FunctionTag struct {
 | 
			
		||||
	gorm.Model
 | 
			
		||||
	Name string `gorm:"primaryKey uniqueIndex" json:"name"`
 | 
			
		||||
	Name string `gorm:"uniqueIndex" json:"name"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (functionTag *FunctionTag) get(db *gorm.DB, inputFunctionTag string) {
 | 
			
		||||
	db.Where("name = ?", inputFunctionTag).Take(&functionTag)
 | 
			
		||||
type functionTagParams struct {
 | 
			
		||||
	// 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 {
 | 
			
		||||
	result := db.Save(&functionTag)
 | 
			
		||||
	var originalFunctionTag FunctionTag
 | 
			
		||||
	result := db.Model(&FunctionTag{}).Where("id = ?", functionTag.ID).Take(&originalFunctionTag)
 | 
			
		||||
	if result.Error != nil {
 | 
			
		||||
		return result.Error
 | 
			
		||||
	}
 | 
			
		||||
	originalFunctionTag.Name = functionTag.Name
 | 
			
		||||
	db.Save(&originalFunctionTag)
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -41,12 +72,21 @@ func (functionTag FunctionTag) delete(db *gorm.DB) 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{
 | 
			
		||||
		Name: context.Query("id"),
 | 
			
		||||
		Name: newFunctionTag.Name,
 | 
			
		||||
	}.create(db)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func Get(db *gorm.DB, inputFunctionTags []string) *[]FunctionTag {
 | 
			
		||||
func Get(db *gorm.DB, inputFunctionTags []uint) *[]FunctionTag {
 | 
			
		||||
	var outputFunctionTags []FunctionTag
 | 
			
		||||
	for _, inputFunctionTag := range inputFunctionTags {
 | 
			
		||||
		var outputFunctionTag FunctionTag
 | 
			
		||||
| 
						 | 
				
			
			@ -58,22 +98,32 @@ func Get(db *gorm.DB, inputFunctionTags []string) *[]FunctionTag {
 | 
			
		|||
 | 
			
		||||
func GetAll(db *gorm.DB) *[]FunctionTag {
 | 
			
		||||
	var outputFunctionTags []FunctionTag
 | 
			
		||||
	var outputFunctionTagNames []string
 | 
			
		||||
	result := db.Model(&FunctionTag{}).Select("name").Find(&outputFunctionTagNames)
 | 
			
		||||
	var outputFunctionTagIDs []uint
 | 
			
		||||
	result := db.Model(&FunctionTag{}).Select("id").Find(&outputFunctionTagIDs)
 | 
			
		||||
	if result.Error != nil {
 | 
			
		||||
		log.Println(result.Error)
 | 
			
		||||
	}
 | 
			
		||||
	outputFunctionTags = *Get(db, outputFunctionTagNames)
 | 
			
		||||
	outputFunctionTags = *Get(db, outputFunctionTagIDs)
 | 
			
		||||
	return &outputFunctionTags
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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{
 | 
			
		||||
		Name: context.Query("id"),
 | 
			
		||||
		Model: gorm.Model{ID: uint(uintID)},
 | 
			
		||||
		Name:  params.Name,
 | 
			
		||||
	}.update(db)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func Delete(db *gorm.DB, inputFunctions []string) error {
 | 
			
		||||
func Delete(db *gorm.DB, inputFunctions []uint) error {
 | 
			
		||||
	functions := Get(db, inputFunctions)
 | 
			
		||||
	for _, function := range *functions {
 | 
			
		||||
		err := function.delete(db)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -78,7 +78,6 @@ func Create(db *gorm.DB, context *gin.Context) error {
 | 
			
		|||
	}
 | 
			
		||||
	var newGroup Group
 | 
			
		||||
	err = json.Unmarshal(body, &newGroup)
 | 
			
		||||
	log.Println(newGroup)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue