mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
* initial implementation of opentracing * app layer * Revert Makefile * . * cleanup * . * . * . * . * . * . * . * . * . * . * . * [ci] * autogenerate interface * . * missed vendor files * updated interfaces * updated store layers * lint fixes * . * finishing layer generators and nested spans * added errors and b3 support * code review * . * . * fixed build error due to misplased flag.Parse() * code review addressed
83 lines
2.6 KiB
Cheetah
83 lines
2.6 KiB
Cheetah
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
// Code generated by "make store-layers"
|
|
// DO NOT EDIT
|
|
|
|
package store
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/mattermost/mattermost-server/v5/model"
|
|
"github.com/mattermost/mattermost-server/v5/services/tracing"
|
|
"github.com/opentracing/opentracing-go/ext"
|
|
spanlog "github.com/opentracing/opentracing-go/log"
|
|
)
|
|
|
|
type {{.Name}} struct {
|
|
Store
|
|
{{range $index, $element := .SubStores}} {{$index}}Store {{$index}}Store
|
|
{{end}}
|
|
}
|
|
|
|
{{range $index, $element := .SubStores}}func (s *{{$.Name}}) {{$index}}() {{$index}}Store {
|
|
return s.{{$index}}Store
|
|
}
|
|
|
|
{{end}}
|
|
|
|
{{range $index, $element := .SubStores}}type {{$.Name}}{{$index}}Store struct {
|
|
{{$index}}Store
|
|
Root *{{$.Name}}
|
|
}
|
|
|
|
{{end}}
|
|
|
|
{{range $substoreName, $substore := .SubStores}}
|
|
{{range $index, $element := $substore.Methods}}
|
|
func (s *{{$.Name}}{{$substoreName}}Store) {{$index}}({{$element.Params | joinParamsWithType}}) {{$element.Results | joinResultsForSignature}} {
|
|
origCtx := s.Root.Store.Context()
|
|
span, newCtx := tracing.StartSpanWithParentByContext(s.Root.Store.Context(), "{{$substoreName}}Store.{{$index}}")
|
|
s.Root.Store.SetContext(newCtx)
|
|
defer func(){
|
|
s.Root.Store.SetContext(origCtx)
|
|
}()
|
|
{{range $paramName, $param := $element.Params}}
|
|
{{if index $element.ParamsToTrace $param.Name }}
|
|
span.SetTag("{{$param.Name}}", {{$param.Name}})
|
|
{{end}}
|
|
{{end}}
|
|
defer span.Finish()
|
|
{{- if $element.Results | len | eq 0}}
|
|
s.{{$substoreName}}Store.{{$index}}({{$element.Params | joinParams}})
|
|
{{else}}
|
|
{{$element.Results | genResultsVars}} := s.{{$substoreName}}Store.{{$index}}({{$element.Params | joinParams}})
|
|
{{- if $element.Results | errorPresent }}
|
|
if {{$element.Results | errorVar}} != nil {
|
|
span.LogFields(spanlog.Error({{$element.Results | errorVar}}))
|
|
ext.Error.Set(span, true)
|
|
}
|
|
{{end}}
|
|
return {{ $element.Results | genResultsVars -}}
|
|
{{end}}
|
|
}
|
|
{{end}}
|
|
{{end}}
|
|
|
|
{{range $index, $element := .Methods}}
|
|
func (s *{{$.Name}}) {{$index}}({{$element.Params | joinParamsWithType}}) {{$element.Results | joinResultsForSignature}} {
|
|
{{if $element.Results | len | eq 0}}s.Store.{{$index}}({{$element.Params | joinParams}})
|
|
{{else}}return s.Store.{{$index}}({{$element.Params | joinParams}})
|
|
{{end}}}
|
|
{{end}}
|
|
|
|
func New{{.Name}}(childStore Store, ctx context.Context) *{{.Name}} {
|
|
newStore := {{.Name}}{
|
|
Store: childStore,
|
|
}
|
|
{{range $substoreName, $substore := .SubStores}}
|
|
newStore.{{$substoreName}}Store = &{{$.Name}}{{$substoreName}}Store{{"{"}}{{$substoreName}}Store: childStore.{{$substoreName}}(), Root: &newStore}{{end}}
|
|
return &newStore
|
|
}
|