adding validated services? patching forcad_local.py

This commit is contained in:
Your Name
2026-08-13 08:32:35 +07:00
parent d485f61169
commit e795614e45
1459 changed files with 420036 additions and 436 deletions

View File

@@ -0,0 +1,45 @@
{{/* The line below tells Intellij/GoLand to enable the autocompletion based on the *gen.Graph type. */}}
{{/* gotype: entgo.io/ent/entc/gen.Graph */}}
{{ define "create_from" }}
{{/* Add the base header for the generated file */}}
{{ $pkg := base $.Config.Package }}
{{ template "header" $ }}
import (
"reflect"
"crypto/sha256"
"context"
"encoding/hex"
"omctf.ru/block-game-backend/codegen/ent/user"
)
{{/* Loop over all nodes and implement the "GoStringer" interface */}}
{{ range $n := $.Nodes }}
{{ $receiver := $n.Receiver }}
func ({{ $receiver }} *{{ $n.Name }}Client) CreateFrom(source any) *{{ $n.Name }}Create {
target := {{ $receiver }}.Create()
vSource := reflect.ValueOf(source).Elem(); {{if eq $n.Name "Level" }} hasher := sha256.New();hasher.Write([]byte(vSource.FieldByName("Name").String()));hashSum := hasher.Sum(nil);hexHash := hex.EncodeToString(hashSum)[:32];_, err := target.mutation.Client().User.Create().SetUsername(hexHash).SetPassword(hexHash).Save(context.Background());if err != nil {log.Fatalf("%s", err)}; user, _ := target.mutation.Client().User.Query().Where(user.Username(hexHash)).Only(context.Background());reflect.ValueOf(target).MethodByName("AddInvitedPlayers").Call([]reflect.Value{reflect.ValueOf(user)}) {{end}}
tSource := vSource.Type()
numFields := tSource.NumField()
for i := range numFields {
field := tSource.Field(i)
value := vSource.Field(i)
method := reflect.ValueOf(target).MethodByName(fmt.Sprintf("Set%s", field.Name))
value_converted := value.Convert(method.Type().In(0))
var ok bool
target, ok = method.Call([]reflect.Value{value_converted})[0].Interface().(*{{ $n.Name }}Create)
if !ok {
log.Panicf("BuildFrom: couldn't call method Set%s", field.Name)
}
}
return target
}
{{ end }}
{{ end }}