62 lines
1.6 KiB
Go
62 lines
1.6 KiB
Go
|
|
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
|
||
|
|
}
|