feat: add event provider
This commit is contained in:
@@ -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",
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user