143 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
// Code generated by protoc-gen-micro
 | 
						|
// source: {{.File.Name}}
 | 
						|
package {{goPkgLastElement .File | splitArray ";" | last | replace "." "_"}}
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
 | 
						|
	micro_api "github.com/unistack-org/micro/v3/api"    
 | 
						|
	micro_client "github.com/unistack-org/micro/v3/client" 
 | 
						|
)
 | 
						|
 | 
						|
{{- $ServiceName := .Service.Name | trimSuffix "Service" }}
 | 
						|
{{- $epnum := 0 }}
 | 
						|
{{- range .Service.Method}}
 | 
						|
{{- if not (contains (json (httpOption .)) "null") }}
 | 
						|
{{- if ne (httpVerb .) "" }}
 | 
						|
{{- $epnum = add $epnum 1 }}
 | 
						|
{{- range httpPathsAdditionalBindings . }}
 | 
						|
{{- $epnum = add $epnum 1 }}
 | 
						|
{{- end }}
 | 
						|
{{- end }}
 | 
						|
{{- end }}
 | 
						|
{{- end }}
 | 
						|
 | 
						|
// New{{$ServiceName}}Endpoints provides api endpoints metdata for {{$ServiceName}} service
 | 
						|
func New{{$ServiceName}}Endpoints() []*micro_api.Endpoint {
 | 
						|
    endpoints := make([]*micro_api.Endpoint, 0, {{ $epnum }})
 | 
						|
    {{- if ne $epnum 0 }}
 | 
						|
    var endpoint *micro_api.Endpoint
 | 
						|
    {{- end }}
 | 
						|
    {{- range .Service.Method}}
 | 
						|
    {{- if not (contains (json (httpOption .)) "null") }}
 | 
						|
    {{- $httpOption := (httpOption .) }}
 | 
						|
    {{- if ne $httpOption.Method "" }}
 | 
						|
    endpoint = µ_api.Endpoint{
 | 
						|
        Name: "{{$ServiceName}}.{{.Name}}",
 | 
						|
        Path: []string{"{{$httpOption.Path}}"},
 | 
						|
        Method: []string{"{{$httpOption.Method}}"},
 | 
						|
        Body: "{{$httpOption.Body}}",
 | 
						|
        {{- if or (.ClientStreaming) (.ServerStreaming)}}
 | 
						|
        Stream: true,
 | 
						|
        {{- end}}
 | 
						|
        Handler: "rpc",
 | 
						|
    }
 | 
						|
    endpoints = append(endpoints, endpoint)
 | 
						|
    {{- range $index, $element := $httpOption.Additional }}
 | 
						|
    endpoint = µ_api.Endpoint{
 | 
						|
        Name: "{{$ServiceName}}.{{.Name}}",
 | 
						|
        Path: []string{"{{$element.Path}}"},
 | 
						|
        Method: []string{"{{$element.Method}}"},
 | 
						|
        Body: "{{$element.Body}}",
 | 
						|
        {{- if or (.ClientStreaming) (.ServerStreaming)}}
 | 
						|
        Stream: true,
 | 
						|
        {{- end}}
 | 
						|
        Handler: "rpc",
 | 
						|
    }
 | 
						|
    endpoints = append(endpoints, endpoint)
 | 
						|
    {{- end}}
 | 
						|
    {{- end}}
 | 
						|
    {{- end}}
 | 
						|
    {{- end}}
 | 
						|
    return endpoints
 | 
						|
}
 | 
						|
 | 
						|
// {{$ServiceName}}Service interface
 | 
						|
type {{$ServiceName}}Service interface {
 | 
						|
  {{- range .Service.Method}}
 | 
						|
  {{- $reqMethod := .InputType | splitArray "." | last }}
 | 
						|
  {{- $rspMethod := .OutputType | splitArray "." | last }}
 | 
						|
  {{- if or (.ServerStreaming) (.ClientStreaming)}}
 | 
						|
  {{- if and (.ServerStreaming) (not .ClientStreaming)}}
 | 
						|
    {{.Name}}(context.Context, *{{$reqMethod}}, ...micro_client.CallOption) ({{$ServiceName}}_{{.Name}}Service, error)
 | 
						|
  {{- else}}
 | 
						|
    {{.Name}}(context.Context, ...micro_client.CallOption) ({{$ServiceName}}_{{.Name}}Service, error)
 | 
						|
  {{- end}}
 | 
						|
  {{- else}}
 | 
						|
    {{.Name}}(context.Context, *{{$reqMethod}}, ...micro_client.CallOption) (*{{$rspMethod}}, error)
 | 
						|
  {{- end}}
 | 
						|
  {{- end}}
 | 
						|
}
 | 
						|
 | 
						|
{{range .Service.Method}}
 | 
						|
{{- $reqMethod := .InputType | splitArray "." | last}}
 | 
						|
{{- $rspMethod := .OutputType | splitArray "." | last}}
 | 
						|
{{if or (.ServerStreaming) (.ClientStreaming)}}
 | 
						|
type {{$ServiceName}}_{{.Name}}Service interface {
 | 
						|
    Context() context.Context
 | 
						|
    SendMsg(interface{}) error
 | 
						|
    RecvMsg(interface{}) error
 | 
						|
    {{- if and (.ClientStreaming) (not .ServerStreaming)}}
 | 
						|
    RecvAndClose() (*{{$rspMethod}}, error)
 | 
						|
    {{- end}}
 | 
						|
    Close() error
 | 
						|
    {{- if .ClientStreaming}}
 | 
						|
    Send(*{{$reqMethod}}) error
 | 
						|
    {{- end}}
 | 
						|
    {{- if .ServerStreaming}}
 | 
						|
    Recv() (*{{$rspMethod}}, error)
 | 
						|
    {{- end}}
 | 
						|
}
 | 
						|
{{- end}}
 | 
						|
{{- end}}
 | 
						|
// Micro server stuff
 | 
						|
 | 
						|
// {{$ServiceName}}Handler server handler
 | 
						|
type {{$ServiceName}}Handler interface {
 | 
						|
	{{- range .Service.Method}}
 | 
						|
{{- $reqMethod := .InputType | splitArray "." | last}}
 | 
						|
{{- $rspMethod := .OutputType | splitArray "." | last}}
 | 
						|
{{- if or (.ServerStreaming) (.ClientStreaming)}}
 | 
						|
    {{- if not .ClientStreaming}}
 | 
						|
    {{.Name}}(context.Context, *{{$reqMethod}}, {{$ServiceName}}_{{.Name}}Stream) error
 | 
						|
    {{- else}}
 | 
						|
    {{.Name}}(context.Context, {{$ServiceName}}_{{.Name}}Stream) error
 | 
						|
    {{- end}}
 | 
						|
{{- else}}
 | 
						|
    {{.Name}}(context.Context, *{{$reqMethod}}, *{{$rspMethod}}) error
 | 
						|
{{- end}}
 | 
						|
{{- end}}
 | 
						|
}
 | 
						|
 | 
						|
{{- range .Service.Method}}
 | 
						|
{{- $reqMethod := .InputType | splitArray "." | last}}      
 | 
						|
{{- $rspMethod := .OutputType | splitArray "." | last}}     
 | 
						|
{{if or (.ServerStreaming) (.ClientStreaming)}}
 | 
						|
type {{$ServiceName}}_{{.Name}}Stream interface {
 | 
						|
  Context() context.Context
 | 
						|
  SendMsg(interface{}) error
 | 
						|
  RecvMsg(interface{}) error
 | 
						|
  {{- if and (.ClientStreaming) (not .ServerStreaming)}}
 | 
						|
  SendAndClose(*{{$rspMethod}}) error
 | 
						|
  {{- end}}
 | 
						|
  Close() error
 | 
						|
  {{- if .ServerStreaming}}
 | 
						|
  Send(*{{$rspMethod}}) error
 | 
						|
  {{- end}}
 | 
						|
  {{- if .ClientStreaming}}
 | 
						|
  Recv() (*{{$reqMethod}}, error)
 | 
						|
  {{- end}}
 | 
						|
}
 | 
						|
{{- end}}
 | 
						|
{{- end}}
 |