cpularp-manager-api/src/lib/database/functionset/functionset.go

62 lines
1.6 KiB
Go
Raw Normal View History

package functionset
import (
"log"
function "example.com/database/function"
"gorm.io/gorm"
)
type FunctionSet struct {
gorm.Model
Functions []function.Function `gorm:"many2many:functionset_function_associations" json:"functions"`
}
func CreateDatabaseFunctionSet(db *gorm.DB, functionSet FunctionSet) error {
result := db.Create(&functionSet)
if result.Error != nil {
return result.Error
}
return nil
}
func GetDatabaseFunctionSet(db *gorm.DB, inputFunctionSet int) FunctionSet {
var outputFunctionSet FunctionSet
result := db.Model(&FunctionSet{}).Where("id = ?", inputFunctionSet).Take(&outputFunctionSet)
if result.Error != nil {
return FunctionSet{}
}
db.Model(&outputFunctionSet).Association("Functions").Find(&outputFunctionSet.Functions)
return outputFunctionSet
}
func GetDatabaseFunctionSets(db *gorm.DB, inputFunctionSets []int) []FunctionSet {
var outputFunctionSets []FunctionSet
db.Find(&outputFunctionSets)
for _, inputFunctionSet := range inputFunctionSets {
outputFunctionSets = append(outputFunctionSets, GetDatabaseFunctionSet(db, inputFunctionSet))
}
return outputFunctionSets
}
func GetAllDatabaseFunctionSets(db *gorm.DB) []FunctionSet {
var outputFunctionSets []FunctionSet
result := db.Find(&outputFunctionSets)
if result.Error != nil {
log.Println(result.Error)
}
for index, outputFunctionSet := range outputFunctionSets {
outputFunctionSets[index] = GetDatabaseFunctionSet(db, int(outputFunctionSet.ID))
}
return outputFunctionSets
}
func UpdateDatabaseFunctionSet(db *gorm.DB, functionSet FunctionSet) error {
result := db.Save(&functionSet)
if result.Error != nil {
return result.Error
}
return nil
}