feat: add event provider

This commit is contained in:
Rogee
2024-12-31 15:39:33 +08:00
parent 9e377c917c
commit 81863068cc
13 changed files with 456 additions and 12 deletions

View File

@@ -163,14 +163,33 @@ func Parse(source string) []Provider {
provider.ReturnType = "*" + provider.StructName
}
if providerDoc.Mode == "event" {
provider.Mode = "event"
modePkg := gomod.GetModuleName() + "/providers/events"
provider.Imports["git.ipao.vip/rogeecn/atom/contracts"] = ""
provider.Imports[modePkg] = ""
provider.ProviderGroup = "atom.GroupInitial"
provider.ReturnType = "contracts.Initial"
provider.InjectParams["__event"] = InjectParam{
Star: "*",
Type: "PubSub",
Package: modePkg,
PackageAlias: "events",
}
}
if providerDoc.Mode == "job" {
provider.Mode = "job"
jobPkg := gomod.GetModuleName() + "/providers/job"
modePkg := gomod.GetModuleName() + "/providers/job"
provider.Imports["git.ipao.vip/rogeecn/atom/contracts"] = ""
provider.Imports["github.com/riverqueue/river"] = ""
provider.Imports[jobPkg] = ""
provider.Imports[modePkg] = ""
provider.ProviderGroup = "atom.GroupInitial"
provider.ReturnType = "contracts.Initial"
@@ -178,7 +197,7 @@ func Parse(source string) []Provider {
provider.InjectParams["__job"] = InjectParam{
Star: "*",
Type: "Job",
Package: jobPkg,
Package: modePkg,
PackageAlias: "job",
}
}

View File

@@ -19,7 +19,7 @@ func Provide(opts ...opt.Option) error {
) ({{.ReturnType}}, error) {
obj := &{{.StructName}}{
{{- range $key, $param := .InjectParams }}
{{- if ne $key "__job"}}
{{- if and (ne $key "__job") (ne $key "__event")}}
{{$key}}: {{$key}},
{{- end}}
{{- end }}
@@ -30,6 +30,10 @@ func Provide(opts ...opt.Option) error {
}
{{- end }}
{{- if eq .Mode "event"}}
__event.Handle("handler:{{.StructName}}", obj.Topic(), obj.PublishToTopic(), obj.Handler)
{{- end }}
{{- if eq .Mode "job"}}
if err := river.AddWorkerSafely(__job.Workers, obj); err != nil {
return nil, err