partially rewrite for own needs
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
		| @@ -1,17 +0,0 @@ | |||||||
| version: 2.1 |  | ||||||
|  |  | ||||||
| orbs: |  | ||||||
|   moul: moul/build@1.14.0 # https://github.com/moul/build |  | ||||||
|  |  | ||||||
| workflows: |  | ||||||
|   main: |  | ||||||
|     jobs: |  | ||||||
|       - moul/golang-build: |  | ||||||
|           gopkg: moul.io/protoc-gen-gotemplate |  | ||||||
|       - moul/golang-build: |  | ||||||
|           gopkg: moul.io/protoc-gen-gotemplate |  | ||||||
|           tag: '1.12' |  | ||||||
|       - moul/golang-build: |  | ||||||
|           gopkg: moul.io/protoc-gen-gotemplate |  | ||||||
|           tag: '1.11' |  | ||||||
|       - moul/docker-build |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| Dockerfile |  | ||||||
| *~ |  | ||||||
| .git/ |  | ||||||
							
								
								
									
										2
									
								
								.github/CODEOWNERS
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/CODEOWNERS
									
									
									
									
										vendored
									
									
								
							| @@ -1 +1 @@ | |||||||
| * @moul | * @unisack-org | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +0,0 @@ | |||||||
| #github: ["moul"] |  | ||||||
| patreon: moul |  | ||||||
| open_collective: moul |  | ||||||
| custom: |  | ||||||
| - "https://www.buymeacoffee.com/moul" |  | ||||||
| - "https://manfred.life/donate" |  | ||||||
							
								
								
									
										8
									
								
								.github/ISSUE_TEMPLATE/custom.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/ISSUE_TEMPLATE/custom.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,8 +0,0 @@ | |||||||
| --- |  | ||||||
| name: Custom |  | ||||||
| about: 'Anything else: questions, discussions, thanks, ascii-arts, ...' |  | ||||||
| title: '' |  | ||||||
| labels: discussion |  | ||||||
| assignees: moul |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| @@ -1,8 +0,0 @@ | |||||||
| module.exports = { |  | ||||||
|     branch: 'master', |  | ||||||
|     plugins: [ |  | ||||||
|         '@semantic-release/commit-analyzer', |  | ||||||
|         '@semantic-release/release-notes-generator', |  | ||||||
|         '@semantic-release/github', |  | ||||||
|     ], |  | ||||||
| }; |  | ||||||
							
								
								
									
										2
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								AUTHORS
									
									
									
									
									
								
							| @@ -1,5 +1,4 @@ | |||||||
| # This file lists all individuals having contributed content to the repository. | # This file lists all individuals having contributed content to the repository. | ||||||
| # For how it is generated, see 'https://github.com/moul/rules.mk' |  | ||||||
|  |  | ||||||
| Alexandre Beslic <abeslic@abronan.com> | Alexandre Beslic <abeslic@abronan.com> | ||||||
| Anastasia DERUELLE <anastasia.deruelle@gmail.com> | Anastasia DERUELLE <anastasia.deruelle@gmail.com> | ||||||
| @@ -26,3 +25,4 @@ Tommy PAGEARD <tpageard@vente-privee.com> | |||||||
| Valerio Gheri <valerio.gheri@gmail.com> | Valerio Gheri <valerio.gheri@gmail.com> | ||||||
| Victor Login <batazor111@gmail.com> | Victor Login <batazor111@gmail.com> | ||||||
| webii <michal.jaglewicz@gmail.com> | webii <michal.jaglewicz@gmail.com> | ||||||
|  | Vasiliy Tolstov <v.tolstov@unistack.org> | ||||||
|   | |||||||
							
								
								
									
										18
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								Dockerfile
									
									
									
									
									
								
							| @@ -1,18 +0,0 @@ | |||||||
| # builder |  | ||||||
| FROM    golang:1.15-alpine as builder |  | ||||||
| RUN     apk --no-cache add make git go rsync libc-dev |  | ||||||
| RUN     go get -u golang.org/x/tools/cmd/goimports |  | ||||||
| RUN     go get -u github.com/gobuffalo/packr/v2/packr2 |  | ||||||
| COPY    . /go/src/moul.io/protoc-gen-gotemplate |  | ||||||
| WORKDIR /go/src/moul.io/protoc-gen-gotemplate |  | ||||||
| RUN     packr2 |  | ||||||
| RUN     go install -a -tags netgo -ldflags '-w -extldflags "-static"' . ./cmd/web-editor |  | ||||||
| RUN     ls -la /go/bin |  | ||||||
|  |  | ||||||
| # runtime |  | ||||||
| FROM    znly/protoc:0.4.0 |  | ||||||
| COPY    --from=builder  /go/bin/web-editor            /go/bin/ |  | ||||||
| COPY    --from=builder  /go/bin/protoc-gen-gotemplate /go/bin/ |  | ||||||
| ENV     PATH=$PATH:/go/bin |  | ||||||
| EXPOSE  8080 |  | ||||||
| ENTRYPOINT [] |  | ||||||
							
								
								
									
										4
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								LICENSE
									
									
									
									
									
								
							| @@ -1,6 +1,8 @@ | |||||||
| MIT License | MIT License | ||||||
|  |  | ||||||
| Copyright (c) 2016 Manfred Touron | Copyright (c) 2016-2021 Manfred Touron | ||||||
|  | Copyright (c) 2021 Unistack LLC | ||||||
|  |  | ||||||
|  |  | ||||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | Permission is hereby granted, free of charge, to any person obtaining a copy | ||||||
| of this software and associated documentation files (the "Software"), to deal | of this software and associated documentation files (the "Software"), to deal | ||||||
|   | |||||||
							
								
								
									
										24
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,24 +0,0 @@ | |||||||
| GOPKG ?= moul.io/protoc-gen-gotemplate |  | ||||||
| DOCKER_IMAGE ?= moul/protoc-gen-gotemplate |  | ||||||
| GOBINS ?= . ./cmd/web-editor |  | ||||||
| GOLIBS ?= . |  | ||||||
|  |  | ||||||
| all: test install |  | ||||||
|  |  | ||||||
| include rules.mk |  | ||||||
|  |  | ||||||
| .PHONY: examples |  | ||||||
| examples:	install |  | ||||||
| 	cd examples/time && make |  | ||||||
| 	cd examples/enum && make |  | ||||||
| 	cd examples/import && make |  | ||||||
| 	cd examples/dummy && make |  | ||||||
| 	cd examples/flow && make |  | ||||||
| 	cd examples/concat && make |  | ||||||
| 	cd examples/flow && make |  | ||||||
| 	cd examples/sitemap && make |  | ||||||
| 	cd examples/go-generate && make |  | ||||||
|   #cd examples/single-package-mode && make |  | ||||||
| 	cd examples/helpers && make |  | ||||||
| 	cd examples/arithmetics && make |  | ||||||
|   #cd examples/go-kit && make |  | ||||||
							
								
								
									
										22
									
								
								assets.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								assets.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | // +build dev | ||||||
|  |  | ||||||
|  | package main | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"log" | ||||||
|  |  | ||||||
|  | 	"github.com/shurcooL/vfsgen" | ||||||
|  | 	"github.com/unistack-org/protoc-gen-micro/assets" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | func main() { | ||||||
|  | 	err := vfsgen.Generate(assets.Assets, vfsgen.Options{ | ||||||
|  | 		PackageName:  "assets", | ||||||
|  | 		BuildTags:    "!dev", | ||||||
|  | 		VariableName: "Assets", | ||||||
|  | 		Filename:     "assets/vfsdata.go", | ||||||
|  | 	}) | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Fatal(err) | ||||||
|  | 	} | ||||||
|  | } | ||||||
| @@ -1,6 +0,0 @@ | |||||||
|   /Users/moul/go/src/moul.io/protoc-gen-gotemplate/assets: |  | ||||||
|   total used in directory 552 available 9223372036849978910 |  | ||||||
|   drwxr-xr-x   4 moul  staff     128 Dec  9 11:31 . |  | ||||||
|   lrwxr-xr-x   1 moul  staff      33 Dec  9 11:31 .#web-editor.jpg -> moul@manfred-spacegray.local.9471 |  | ||||||
|   drwxr-xr-x  21 moul  staff     672 Sep 13 18:05 .. |  | ||||||
|   -rw-r--r--@  1 moul  staff  280357 Oct 26  2017 web-editor.jpg |  | ||||||
							
								
								
									
										20
									
								
								assets/assets.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								assets/assets.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | // +build dev | ||||||
|  |  | ||||||
|  | package assets | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"go/build" | ||||||
|  | 	"log" | ||||||
|  | 	"net/http" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | func importPathToDir(importPath string) string { | ||||||
|  | 	p, err := build.Import(importPath, "", build.FindOnly) | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Fatal(err) | ||||||
|  | 	} | ||||||
|  | 	return p.Dir | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Assets contains the project's assets. | ||||||
|  | var Assets http.FileSystem = http.Dir("./templates") | ||||||
							
								
								
									
										1
									
								
								assets/stub.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								assets/stub.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | package assets | ||||||
							
								
								
									
										202
									
								
								assets/vfsdata.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										202
									
								
								assets/vfsdata.go
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 274 KiB | 
| @@ -1,121 +0,0 @@ | |||||||
| package main |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"encoding/json" |  | ||||||
| 	"errors" |  | ||||||
| 	"fmt" |  | ||||||
| 	"io/ioutil" |  | ||||||
| 	"log" |  | ||||||
| 	"net/http" |  | ||||||
| 	"os" |  | ||||||
| 	"os/exec" |  | ||||||
| 	"path/filepath" |  | ||||||
|  |  | ||||||
| 	packr "github.com/gobuffalo/packr/v2" |  | ||||||
| 	"github.com/gorilla/handlers" |  | ||||||
| 	"github.com/gorilla/mux" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| func generate(w http.ResponseWriter, r *http.Request) { |  | ||||||
| 	// read input |  | ||||||
| 	decoder := json.NewDecoder(r.Body) |  | ||||||
| 	type Input struct { |  | ||||||
| 		Protobuf string `json:"protobuf"` |  | ||||||
| 		Template string `json:"template"` |  | ||||||
| 	} |  | ||||||
| 	var input Input |  | ||||||
| 	if err := decoder.Decode(&input); err != nil { |  | ||||||
| 		returnError(w, err) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	// create workspace |  | ||||||
| 	dir, err := ioutil.TempDir("", "pggt") |  | ||||||
| 	if err != nil { |  | ||||||
| 		returnError(w, err) |  | ||||||
| 	} |  | ||||||
| 	// clean up |  | ||||||
| 	defer func() { |  | ||||||
| 		if err = os.RemoveAll(dir); err != nil { |  | ||||||
| 			log.Printf("error: failed to remove temporary directory: %v", err) |  | ||||||
| 		} |  | ||||||
| 	}() |  | ||||||
| 	if err = ioutil.WriteFile(filepath.Join(dir, "example.proto"), []byte(input.Protobuf), 0644); err != nil { |  | ||||||
| 		returnError(w, err) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
| 	if err = ioutil.WriteFile(filepath.Join(dir, "example.output.tmpl"), []byte(input.Template), 0644); err != nil { |  | ||||||
| 		returnError(w, err) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	// generate |  | ||||||
| 	cmd := exec.Command("protoc", "-I"+dir, "--gotemplate_out=template_dir="+dir+",debug=true:"+dir, filepath.Join(dir, "example.proto")) // #nosec |  | ||||||
| 	out, err := cmd.CombinedOutput() |  | ||||||
| 	if err != nil { |  | ||||||
| 		returnError(w, errors.New(string(out))) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	// read output |  | ||||||
| 	content, err := ioutil.ReadFile(filepath.Join(dir, "example.output")) // #nosec |  | ||||||
| 	if err != nil { |  | ||||||
| 		returnError(w, err) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	returnContent(w, content) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func returnContent(w http.ResponseWriter, output interface{}) { |  | ||||||
| 	payload := map[string]interface{}{ |  | ||||||
| 		"output": fmt.Sprintf("%s", output), |  | ||||||
| 	} |  | ||||||
| 	response, err := json.Marshal(payload) |  | ||||||
| 	if err != nil { |  | ||||||
| 		http.Error(w, err.Error(), http.StatusInternalServerError) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
| 	w.Header().Set("Content-Type", "application/json") |  | ||||||
| 	w.WriteHeader(http.StatusOK) |  | ||||||
| 	if _, err := w.Write(response); err != nil { |  | ||||||
| 		http.Error(w, err.Error(), http.StatusInternalServerError) |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func returnError(w http.ResponseWriter, err error) { |  | ||||||
| 	payload := map[string]interface{}{ |  | ||||||
| 		"error": fmt.Sprintf("%v", err), |  | ||||||
| 	} |  | ||||||
| 	response, err := json.Marshal(payload) |  | ||||||
| 	if err != nil { |  | ||||||
| 		http.Error(w, err.Error(), http.StatusInternalServerError) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
| 	w.Header().Set("Content-Type", "application/json") |  | ||||||
| 	w.WriteHeader(http.StatusInternalServerError) |  | ||||||
| 	if _, err := w.Write(response); err != nil { |  | ||||||
| 		http.Error(w, err.Error(), http.StatusInternalServerError) |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func main() { |  | ||||||
| 	r := mux.NewRouter() |  | ||||||
|  |  | ||||||
| 	box := packr.New("static", "./static") |  | ||||||
|  |  | ||||||
| 	r.Handle("/", http.FileServer(box)) |  | ||||||
| 	r.HandleFunc("/generate", generate) |  | ||||||
| 	addr := fmt.Sprintf(":%s", os.Getenv("PORT")) |  | ||||||
| 	if addr == ":" { |  | ||||||
| 		addr = ":8080" |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	fmt.Printf("Listening on %s...\n", addr) |  | ||||||
| 	h := handlers.LoggingHandler(os.Stderr, r) |  | ||||||
| 	h = handlers.CompressHandler(h) |  | ||||||
| 	h = handlers.RecoveryHandler()(h) |  | ||||||
| 	if err := http.ListenAndServe(addr, h); err != nil { |  | ||||||
| 		panic(err) |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -1,138 +0,0 @@ | |||||||
| <html> |  | ||||||
|   <head> |  | ||||||
|     <title>protoc-gen-gotemplate web editor</title> |  | ||||||
|     <meta charset="utf-8"> |  | ||||||
|     <meta http-equiv="X-UA-Compatible" content="IE=edge"> |  | ||||||
|     <meta name="viewport" content="width=device-width, initial-scale=1"> |  | ||||||
|  |  | ||||||
|     <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.js"></script> |  | ||||||
|     <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular-animate.js"></script> |  | ||||||
|     <script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.13.3.js"></script> |  | ||||||
|     <script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.13.3/ui-bootstrap.min.js"></script> |  | ||||||
|     <script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/ace.min.js"></script> |  | ||||||
|     <script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/mode-protobuf.js"></script> |  | ||||||
|     <script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/mode-golang.js"></script> |  | ||||||
|     <script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/theme-cobalt.js"></script> |  | ||||||
|     <script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/worker-javascript.js"></script> |  | ||||||
|     <script src="//angular-ui.github.io/ui-ace/dist/ui-ace.min.js"></script> |  | ||||||
|  |  | ||||||
|     <script type="text/javascript"> |  | ||||||
|      var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=Base64._utf8_encode(e);while(f<e.length){n=e.charCodeAt(f++);r=e.charCodeAt(f++);i=e.charCodeAt(f++);s=n>>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},decode:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9+/=]/g,"");while(f<e.length){s=this._keyStr.indexOf(e.charAt(f++));o=this._keyStr.indexOf(e.charAt(f++));u=this._keyStr.indexOf(e.charAt(f++));a=this._keyStr.indexOf(e.charAt(f++));n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=Base64._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/rn/g,"n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r)}else if(r>127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n<e.length){r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r);n++}else if(r>191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}} |  | ||||||
|  |  | ||||||
|      angular.module("pggt", ['pggt.controllers','ngAnimate','ui.bootstrap', 'ui.ace']); |  | ||||||
|      angular.module("pggt.controllers", []) |  | ||||||
|             .controller('PggtCtrl', ['$scope', '$http', '$interval', function($scope, $http, $interval) { |  | ||||||
|        $scope.requestType = 'post'; |  | ||||||
|        $scope.url = '/generate'; |  | ||||||
|        $scope.response = null; |  | ||||||
|        $scope.errors = null; |  | ||||||
|  |  | ||||||
|        $scope.inputHasChanged = false; |  | ||||||
|  |  | ||||||
|        $scope.checkModel = { |  | ||||||
|          optimize: false, |  | ||||||
|          disableNetwork: false, |  | ||||||
|          toArm: false, |  | ||||||
|        }; |  | ||||||
|  |  | ||||||
|        $scope.$watchCollection('checkModel', function() { |  | ||||||
|          $scope.sendRequest(); |  | ||||||
|        }); |  | ||||||
|  |  | ||||||
|        var cron = $interval(function() { |  | ||||||
|          if ($scope.inputHasChanged) { |  | ||||||
|            $scope.sendRequest(); |  | ||||||
|          } |  | ||||||
|        }, 2000); |  | ||||||
|  |  | ||||||
|        // b64encoded version of https://github.com/grpc/grpc-go/blob/master/examples/route_guide/routeguide/route_guide.proto |  | ||||||
|        $scope.protobuf = Base64.decode("Ly8gQ29weXJpZ2h0IDIwMTUgZ1JQQyBhdXRob3JzLg0KLy8NCi8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQovLw0KLy8gICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KLy8NCi8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCi8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCi8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCi8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KDQpzeW50YXggPSAicHJvdG8zIjsNCg0Kb3B0aW9uIGphdmFfbXVsdGlwbGVfZmlsZXMgPSB0cnVlOw0Kb3B0aW9uIGphdmFfcGFja2FnZSA9ICJpby5ncnBjLmV4YW1wbGVzLnJvdXRlZ3VpZGUiOw0Kb3B0aW9uIGphdmFfb3V0ZXJfY2xhc3NuYW1lID0gIlJvdXRlR3VpZGVQcm90byI7DQoNCnBhY2thZ2Ugcm91dGVndWlkZTsNCg0KLy8gSW50ZXJmYWNlIGV4cG9ydGVkIGJ5IHRoZSBzZXJ2ZXIuDQpzZXJ2aWNlIFJvdXRlR3VpZGUgew0KICAvLyBBIHNpbXBsZSBSUEMuDQogIC8vDQogIC8vIE9idGFpbnMgdGhlIGZlYXR1cmUgYXQgYSBnaXZlbiBwb3NpdGlvbi4NCiAgLy8NCiAgLy8gQSBmZWF0dXJlIHdpdGggYW4gZW1wdHkgbmFtZSBpcyByZXR1cm5lZCBpZiB0aGVyZSdzIG5vIGZlYXR1cmUgYXQgdGhlIGdpdmVuDQogIC8vIHBvc2l0aW9uLg0KICBycGMgR2V0RmVhdHVyZShQb2ludCkgcmV0dXJucyAoRmVhdHVyZSkge30NCg0KICAvLyBBIHNlcnZlci10by1jbGllbnQgc3RyZWFtaW5nIFJQQy4NCiAgLy8NCiAgLy8gT2J0YWlucyB0aGUgRmVhdHVyZXMgYXZhaWxhYmxlIHdpdGhpbiB0aGUgZ2l2ZW4gUmVjdGFuZ2xlLiAgUmVzdWx0cyBhcmUNCiAgLy8gc3RyZWFtZWQgcmF0aGVyIHRoYW4gcmV0dXJuZWQgYXQgb25jZSAoZS5nLiBpbiBhIHJlc3BvbnNlIG1lc3NhZ2Ugd2l0aCBhDQogIC8vIHJlcGVhdGVkIGZpZWxkKSwgYXMgdGhlIHJlY3RhbmdsZSBtYXkgY292ZXIgYSBsYXJnZSBhcmVhIGFuZCBjb250YWluIGENCiAgLy8gaHVnZSBudW1iZXIgb2YgZmVhdHVyZXMuDQogIHJwYyBMaXN0RmVhdHVyZXMoUmVjdGFuZ2xlKSByZXR1cm5zIChzdHJlYW0gRmVhdHVyZSkge30NCg0KICAvLyBBIGNsaWVudC10by1zZXJ2ZXIgc3RyZWFtaW5nIFJQQy4NCiAgLy8NCiAgLy8gQWNjZXB0cyBhIHN0cmVhbSBvZiBQb2ludHMgb24gYSByb3V0ZSBiZWluZyB0cmF2ZXJzZWQsIHJldHVybmluZyBhDQogIC8vIFJvdXRlU3VtbWFyeSB3aGVuIHRyYXZlcnNhbCBpcyBjb21wbGV0ZWQuDQogIHJwYyBSZWNvcmRSb3V0ZShzdHJlYW0gUG9pbnQpIHJldHVybnMgKFJvdXRlU3VtbWFyeSkge30NCg0KICAvLyBBIEJpZGlyZWN0aW9uYWwgc3RyZWFtaW5nIFJQQy4NCiAgLy8NCiAgLy8gQWNjZXB0cyBhIHN0cmVhbSBvZiBSb3V0ZU5vdGVzIHNlbnQgd2hpbGUgYSByb3V0ZSBpcyBiZWluZyB0cmF2ZXJzZWQsDQogIC8vIHdoaWxlIHJlY2VpdmluZyBvdGhlciBSb3V0ZU5vdGVzIChlLmcuIGZyb20gb3RoZXIgdXNlcnMpLg0KICBycGMgUm91dGVDaGF0KHN0cmVhbSBSb3V0ZU5vdGUpIHJldHVybnMgKHN0cmVhbSBSb3V0ZU5vdGUpIHt9DQp9DQoNCi8vIFBvaW50cyBhcmUgcmVwcmVzZW50ZWQgYXMgbGF0aXR1ZGUtbG9uZ2l0dWRlIHBhaXJzIGluIHRoZSBFNyByZXByZXNlbnRhdGlvbg0KLy8gKGRlZ3JlZXMgbXVsdGlwbGllZCBieSAxMCoqNyBhbmQgcm91bmRlZCB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyKS4NCi8vIExhdGl0dWRlcyBzaG91bGQgYmUgaW4gdGhlIHJhbmdlICsvLSA5MCBkZWdyZWVzIGFuZCBsb25naXR1ZGUgc2hvdWxkIGJlIGluDQovLyB0aGUgcmFuZ2UgKy8tIDE4MCBkZWdyZWVzIChpbmNsdXNpdmUpLg0KbWVzc2FnZSBQb2ludCB7DQogIGludDMyIGxhdGl0dWRlID0gMTsNCiAgaW50MzIgbG9uZ2l0dWRlID0gMjsNCn0NCg0KLy8gQSBsYXRpdHVkZS1sb25naXR1ZGUgcmVjdGFuZ2xlLCByZXByZXNlbnRlZCBhcyB0d28gZGlhZ29uYWxseSBvcHBvc2l0ZQ0KLy8gcG9pbnRzICJsbyIgYW5kICJoaSIuDQptZXNzYWdlIFJlY3RhbmdsZSB7DQogIC8vIE9uZSBjb3JuZXIgb2YgdGhlIHJlY3RhbmdsZS4NCiAgUG9pbnQgbG8gPSAxOw0KDQogIC8vIFRoZSBvdGhlciBjb3JuZXIgb2YgdGhlIHJlY3RhbmdsZS4NCiAgUG9pbnQgaGkgPSAyOw0KfQ0KDQovLyBBIGZlYXR1cmUgbmFtZXMgc29tZXRoaW5nIGF0IGEgZ2l2ZW4gcG9pbnQuDQovLw0KLy8gSWYgYSBmZWF0dXJlIGNvdWxkIG5vdCBiZSBuYW1lZCwgdGhlIG5hbWUgaXMgZW1wdHkuDQptZXNzYWdlIEZlYXR1cmUgew0KICAvLyBUaGUgbmFtZSBvZiB0aGUgZmVhdHVyZS4NCiAgc3RyaW5nIG5hbWUgPSAxOw0KDQogIC8vIFRoZSBwb2ludCB3aGVyZSB0aGUgZmVhdHVyZSBpcyBkZXRlY3RlZC4NCiAgUG9pbnQgbG9jYXRpb24gPSAyOw0KfQ0KDQovLyBBIFJvdXRlTm90ZSBpcyBhIG1lc3NhZ2Ugc2VudCB3aGlsZSBhdCBhIGdpdmVuIHBvaW50Lg0KbWVzc2FnZSBSb3V0ZU5vdGUgew0KICAvLyBUaGUgbG9jYXRpb24gZnJvbSB3aGljaCB0aGUgbWVzc2FnZSBpcyBzZW50Lg0KICBQb2ludCBsb2NhdGlvbiA9IDE7DQoNCiAgLy8gVGhlIG1lc3NhZ2UgdG8gYmUgc2VudC4NCiAgc3RyaW5nIG1lc3NhZ2UgPSAyOw0KfQ0KDQovLyBBIFJvdXRlU3VtbWFyeSBpcyByZWNlaXZlZCBpbiByZXNwb25zZSB0byBhIFJlY29yZFJvdXRlIHJwYy4NCi8vDQovLyBJdCBjb250YWlucyB0aGUgbnVtYmVyIG9mIGluZGl2aWR1YWwgcG9pbnRzIHJlY2VpdmVkLCB0aGUgbnVtYmVyIG9mDQovLyBkZXRlY3RlZCBmZWF0dXJlcywgYW5kIHRoZSB0b3RhbCBkaXN0YW5jZSBjb3ZlcmVkIGFzIHRoZSBjdW11bGF0aXZlIHN1bSBvZg0KLy8gdGhlIGRpc3RhbmNlIGJldHdlZW4gZWFjaCBwb2ludC4NCm1lc3NhZ2UgUm91dGVTdW1tYXJ5IHsNCiAgLy8gVGhlIG51bWJlciBvZiBwb2ludHMgcmVjZWl2ZWQuDQogIGludDMyIHBvaW50X2NvdW50ID0gMTsNCg0KICAvLyBUaGUgbnVtYmVyIG9mIGtub3duIGZlYXR1cmVzIHBhc3NlZCB3aGlsZSB0cmF2ZXJzaW5nIHRoZSByb3V0ZS4NCiAgaW50MzIgZmVhdHVyZV9jb3VudCA9IDI7DQoNCiAgLy8gVGhlIGRpc3RhbmNlIGNvdmVyZWQgaW4gbWV0cmVzLg0KICBpbnQzMiBkaXN0YW5jZSA9IDM7DQoNCiAgLy8gVGhlIGR1cmF0aW9uIG9mIHRoZSB0cmF2ZXJzYWwgaW4gc2Vjb25kcy4NCiAgaW50MzIgZWxhcHNlZF90aW1lID0gNDsNCn0="); |  | ||||||
|        $scope.template = Base64.decode("Ly8gQ29kZSBnZW5lcmF0ZWQgYnkgcHJvdG9jLWdlbi1nb3RlbXBsYXRlDQpwYWNrYWdlIHt7LlNlcnZpY2UuTmFtZX19cGINCg0KaW1wb3J0ICgNCiAgImdvbGFuZy5vcmcveC9uZXQvY29udGV4dCINCikNCg0KdHlwZSBTZXJ2aWNlIGludGVyZmFjZSB7DQp7ey0gcmFuZ2UgLlNlcnZpY2UuTWV0aG9kfX0NCnt7LSBpZiBhbmQgKG5vdCAuU2VydmVyU3RyZWFtaW5nKSAobm90IC5DbGllbnRTdHJlYW1pbmcpfX0NCiAge3suTmFtZX19KGNvbnRleHQuQ29udGV4dCwgKnt7Lk5hbWV9fVJlcXVlc3QpICgqe3suTmFtZX19UmVzcG9uc2UsIGVycm9yKQ0Ke3stIGVsc2UgaWYgYW5kIC5TZXJ2ZXJTdHJlYW1pbmcgKG5vdCAuQ2xpZW50U3RyZWFtaW5nKX19DQoge3suTmFtZX19KGNvbnRleHQuQ29udGV4dCwgKnt7Lk5hbWV9fVJlcXVlc3QsIGNoYW4gc3RydWN0e30pIChjaGFuICp7ey5OYW1lfX1SZXNwb25zZSwgZXJyb3IpDQp7ey0gZWxzZSBpZiBhbmQgKG5vdCAuU2VydmVyU3RyZWFtaW5nKSAuQ2xpZW50U3RyZWFtaW5nfX0NCiAge3suTmFtZX19KGNvbnRleHQuQ29udGV4dCwgY2hhbiAqe3suTmFtZX19UmVxdWVzdCkgKCp7ey5OYW1lfX1SZXNwb25zZSwgZXJyb3IpDQp7ey0gZWxzZSBpZiBhbmQgKC5TZXJ2ZXJTdHJlYW1pbmcpICguQ2xpZW50U3RyZWFtaW5nKX19DQogIHt7Lk5hbWV9fShjb250ZXh0LkNvbnRleHQsIGNoYW4gKnt7Lk5hbWV9fVJlcXVlc3QpIChjaGFuICp7ey5OYW1lfX1SZXNwb25zZSwgZXJyb3IpDQp7ey0gZW5kfX0ge3svKiBzdHJlYW1pbmcgaWZzKi99fQ0Ke3stIGVuZH19IHt7LypyYW5nZSBNZXRob2QqL319DQp9DQoNCi8vIE1ldGhvZHMNCi8vIC0tLS0tLS0NCnt7LSByYW5nZSAuU2VydmljZS5NZXRob2R9fQ0KLy8gKiB7ey5OYW1lfX0NCnt7LSBlbmR9fQ0KLy8NCi8vIE1lc3NhZ2UgdHlwZXMNCi8vIC0tLS0tLS0tLS0tLS0NCnt7LSByYW5nZSAuRmlsZS5NZXNzYWdlVHlwZX19DQovLyAqIHt7Lk5hbWV9fQ0Ke3stIGVuZH19"); |  | ||||||
|  |  | ||||||
|        $scope.inputLoaded = function(_editor) { |  | ||||||
|          $scope.inputEditor = _editor; |  | ||||||
|        }; |  | ||||||
|        $scope.outputLoaded = function(_editor) { |  | ||||||
|          $scope.outputEditor = _editor; |  | ||||||
|        }; |  | ||||||
|        $scope.inputChanged = function(e) { |  | ||||||
|          $scope.inputHasChanged = true; |  | ||||||
|        }; |  | ||||||
|  |  | ||||||
|        $scope.sendRequest = function(){ |  | ||||||
|          $scope.inputHasChanged = false; |  | ||||||
|          var data = { |  | ||||||
|            protobuf: $scope.protobuf, |  | ||||||
|            template: $scope.template, |  | ||||||
|          }; |  | ||||||
|          $http.post($scope.url, data) |  | ||||||
|               .success(function(data,status,headers,config) { |  | ||||||
|            $scope.errors = {}; |  | ||||||
|            $scope.response = {}; |  | ||||||
|            $scope.response.data = data; |  | ||||||
|            $scope.response.status = status; |  | ||||||
|            $scope.response.headers = headers; |  | ||||||
|            $scope.response.config = config; |  | ||||||
|            $scope.outputEditor.setValue(data['output'], 1); |  | ||||||
|          }) |  | ||||||
|               .error(function(data,status,headers,config) { |  | ||||||
|            $scope.errors = {}; |  | ||||||
|            $scope.response = {}; |  | ||||||
|            $scope.errors.data = data; |  | ||||||
|            $scope.errors.status = status; |  | ||||||
|            $scope.errors.headers = headers; |  | ||||||
|            $scope.errors.config = config; |  | ||||||
|            $scope.outputEditor.setValue(data['error'], 1); |  | ||||||
|          }); |  | ||||||
|        }; |  | ||||||
|      }]); |  | ||||||
|     </script> |  | ||||||
|  |  | ||||||
|     <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> |  | ||||||
|     <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/styles/github.min.css"> |  | ||||||
|     <style>.ace_editor { height: 80%; min-height: 500px; }</style> |  | ||||||
|   </head> |  | ||||||
|   <body ng-app="pggt"> |  | ||||||
|     <div class="container-fluid" ng-controller="PggtCtrl"> |  | ||||||
|       <div class="row"> |  | ||||||
|         <div class="col-md-8"> |  | ||||||
|           <form name="dpform" ng-submit="sendRequest()" class="well"> |  | ||||||
|             <fieldset> |  | ||||||
|               <legend>`protoc-gen-gotemplate`: input</legend> |  | ||||||
|               <div class="row"> |  | ||||||
|                 <div class="col-md-6"> |  | ||||||
|                   <label for="protobuf">./example.proto</label> |  | ||||||
|                   <div ng-model="protobuf" name="protobuf" id="protobuf" language="protobuf" |  | ||||||
|                        ui-ace="{mode:'protobuf',theme:'cobalt',onChange:inputChanged,onLoad:inputLoaded,useWrapMode:true}"> |  | ||||||
|                   </div> |  | ||||||
|                 </div> |  | ||||||
|                 <div class="col-md-6"> |  | ||||||
|                   <label for="template">./example.txt.tmpl</label> |  | ||||||
|                   <div ng-model="template" name="template" id="template" language="text" |  | ||||||
|                        ui-ace="{mode:'text',theme:'cobalt',onChange:inputChanged,onLoad:inputLoaded,useWrapMode:true}"> |  | ||||||
|                   </div> |  | ||||||
|                 </div> |  | ||||||
|               </div> |  | ||||||
|             </fieldset> |  | ||||||
|           </form> |  | ||||||
|         </div> |  | ||||||
|         <div class="col-md-4"> |  | ||||||
|           <div class="well"> |  | ||||||
|             <fieldset> |  | ||||||
|               <legend>Output</legend> |  | ||||||
|               <label>./example.txt</label> |  | ||||||
|               <div ui-ace="{mode:'text',theme:'cobalt',onLoad:outputLoaded,useWrapMode:true}" readonly></div> |  | ||||||
|             </fieldset> |  | ||||||
|           </div> |  | ||||||
|         </div> |  | ||||||
|       </div> |  | ||||||
|       <div class="row"> |  | ||||||
|         <div class="col-md-12"> |  | ||||||
|           <div>Command: <code>protoc --gotemplate_out=template_dir=.:. example.proto</code></div> |  | ||||||
|           <div>Powered by <a href="https://moul.io/protoc-gen-gotemplate">protoc-gen-gotemplate</a></div> |  | ||||||
|         </div> |  | ||||||
|       </div> |  | ||||||
|     </div> |  | ||||||
|     <a href="https://moul.io/protoc-gen-gotemplate"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/365986a132ccd6a44c23a9169022c0b5c890c387/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f7265645f6161303030302e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png"></a> |  | ||||||
|   </body> |  | ||||||
| </html> |  | ||||||
| @@ -1,20 +0,0 @@ | |||||||
| require "language/go" |  | ||||||
|  |  | ||||||
| class ProtocGenGotemplate < Formula |  | ||||||
|   desc "protocol generator + golang text/template (protobuf)" |  | ||||||
|   homepage "https://github.com/moul/protoc-gen-gotemplate" |  | ||||||
|   url "https://github.com/moul/protoc-gen-gotemplate/archive/v1.0.0.tar.gz" |  | ||||||
|   sha256 "1ff57cd8513f1e871cf71dc8f2099bf64204af0df1b7397370827083e95bbb82" |  | ||||||
|   head "https://github.com/moul/protoc-gen-gotemplate.git" |  | ||||||
|  |  | ||||||
|   depends_on "go" => :build |  | ||||||
|  |  | ||||||
|   def install |  | ||||||
|     ENV["GOPATH"] = buildpath |  | ||||||
|     ENV["GOBIN"] = buildpath |  | ||||||
|     ENV["GO15VENDOREXPERIMENT"] = "1" |  | ||||||
|     (buildpath/"src/github.com/moul/protoc-gen-gotemplate").install Dir["*"] |  | ||||||
|  |  | ||||||
|     system "go", "build", "-o", "#{bin}/protoc-gen-gotemplate", "-v", "github.com/moul/protoc-gen-gotemplate" |  | ||||||
|   end |  | ||||||
| end |  | ||||||
| @@ -12,8 +12,7 @@ import ( | |||||||
|  |  | ||||||
| 	"github.com/golang/protobuf/protoc-gen-go/descriptor" | 	"github.com/golang/protobuf/protoc-gen-go/descriptor" | ||||||
| 	plugin_go "github.com/golang/protobuf/protoc-gen-go/plugin" | 	plugin_go "github.com/golang/protobuf/protoc-gen-go/plugin" | ||||||
|  | 	pgghelpers "github.com/unistack-org/protoc-gen-micro/helpers" | ||||||
| 	pgghelpers "moul.io/protoc-gen-gotemplate/helpers" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| type GenericTemplateBasedEncoder struct { | type GenericTemplateBasedEncoder struct { | ||||||
|   | |||||||
| @@ -1,13 +0,0 @@ | |||||||
| .PHONY: build |  | ||||||
| build: |  | ||||||
| 	mkdir -p output |  | ||||||
| 	protoc -I. --gotemplate_out=template_dir=templates,debug=true,all=true:output proto/*.proto |  | ||||||
|  |  | ||||||
|  |  | ||||||
| .PHONY: re |  | ||||||
| re: clean build |  | ||||||
|  |  | ||||||
|  |  | ||||||
| .PHONY: clean |  | ||||||
| clean: |  | ||||||
| 	rm -rf output |  | ||||||
| @@ -1,5 +0,0 @@ | |||||||
|  |  | ||||||
| add(1,2) = 3 |  | ||||||
| subtract(1,2) = -1 |  | ||||||
| multiply(1,2) = 2 |  | ||||||
| divide(2,1) = 2 |  | ||||||
| @@ -1,2 +0,0 @@ | |||||||
| syntax = "proto3"; |  | ||||||
| package Arithmetics; |  | ||||||
| @@ -1,6 +0,0 @@ | |||||||
| {{with $a := 1}}{{with $b := 2}} |  | ||||||
| add(1,2) = {{add $a $b}} |  | ||||||
| subtract(1,2) = {{subtract $a $b}} |  | ||||||
| multiply(1,2) = {{multiply $a $b}} |  | ||||||
| divide(2,1) = {{divide $b $a}} |  | ||||||
| {{end}}{{end}} |  | ||||||
| @@ -1,13 +0,0 @@ | |||||||
| .PHONY: build |  | ||||||
| build: |  | ||||||
| 	mkdir -p output |  | ||||||
| 	protoc -I. --gotemplate_out=template_dir=templates,debug=true,all=true:output proto/*.proto |  | ||||||
|  |  | ||||||
|  |  | ||||||
| .PHONY: re |  | ||||||
| re: clean build |  | ||||||
|  |  | ||||||
|  |  | ||||||
| .PHONY: clean |  | ||||||
| clean: |  | ||||||
| 	rm -rf output |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| I'm Eric |  | ||||||
| I'm Francis |  | ||||||
| I'm Arnold |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| This is static text.This is static text.This is static text. |  | ||||||
| @@ -1,2 +0,0 @@ | |||||||
| syntax = "proto3"; |  | ||||||
| package Eric; |  | ||||||
| @@ -1,2 +0,0 @@ | |||||||
| syntax = "proto3"; |  | ||||||
| package Francis; |  | ||||||
| @@ -1,2 +0,0 @@ | |||||||
| syntax = "proto3"; |  | ||||||
| package Arnold; |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| I'm {{.File.Package}} |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| This is static text. |  | ||||||
| @@ -1,13 +0,0 @@ | |||||||
| .PHONY: build |  | ||||||
| build: |  | ||||||
| 	mkdir -p output |  | ||||||
| 	protoc -I. --gotemplate_out=template_dir=templates,debug=true:output *.proto |  | ||||||
|  |  | ||||||
|  |  | ||||||
| .PHONY: re |  | ||||||
| re: clean build |  | ||||||
|  |  | ||||||
|  |  | ||||||
| .PHONY: clean |  | ||||||
| clean: |  | ||||||
| 	rm -rf output |  | ||||||
| @@ -1,32 +0,0 @@ | |||||||
| syntax = "proto3"; |  | ||||||
|  |  | ||||||
| package dummy; |  | ||||||
|  |  | ||||||
| message Dummy1 { |  | ||||||
|   float aaa = 1; |  | ||||||
|   string bbb = 2; |  | ||||||
|   int32 ccc = 3; |  | ||||||
|   int64 ddd = 4; |  | ||||||
|   repeated string eee = 5; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message Dummy2 { |  | ||||||
|   float fff = 1; |  | ||||||
|   Dummy1 ggg = 2; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message Dummy3 {} |  | ||||||
|  |  | ||||||
| service DummyService { |  | ||||||
|   rpc Hhh(Dummy1) returns (Dummy2) {} |  | ||||||
|   rpc Iii(Dummy2) returns (Dummy1) {} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* |  | ||||||
| service DummyService2 { |  | ||||||
|   rpc Jjj(Dummy2) returns (Dummy2) {} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| service DummyService3 { |  | ||||||
| } |  | ||||||
| */ |  | ||||||
| @@ -1,844 +0,0 @@ | |||||||
| { |  | ||||||
|   "build-date": "2017-05-19T20:09:45.954357761+02:00", |  | ||||||
|   "build-hostname": "manfred-spacegray.aircard", |  | ||||||
|   "build-user": "moul", |  | ||||||
|   "pwd": "/Users/moul/Git/moul/protoc-gen-gotemplate/examples/dummy", |  | ||||||
|   "debug": false, |  | ||||||
|   "destination-dir": ".", |  | ||||||
|   "file": { |  | ||||||
|     "name": "dummy.proto", |  | ||||||
|     "package": "dummy", |  | ||||||
|     "message_type": [ |  | ||||||
|       { |  | ||||||
|         "name": "Dummy1", |  | ||||||
|         "field": [ |  | ||||||
|           { |  | ||||||
|             "name": "aaa", |  | ||||||
|             "number": 1, |  | ||||||
|             "label": 1, |  | ||||||
|             "type": 2, |  | ||||||
|             "json_name": "aaa" |  | ||||||
|           }, |  | ||||||
|           { |  | ||||||
|             "name": "bbb", |  | ||||||
|             "number": 2, |  | ||||||
|             "label": 1, |  | ||||||
|             "type": 9, |  | ||||||
|             "json_name": "bbb" |  | ||||||
|           }, |  | ||||||
|           { |  | ||||||
|             "name": "ccc", |  | ||||||
|             "number": 3, |  | ||||||
|             "label": 1, |  | ||||||
|             "type": 5, |  | ||||||
|             "json_name": "ccc" |  | ||||||
|           }, |  | ||||||
|           { |  | ||||||
|             "name": "ddd", |  | ||||||
|             "number": 4, |  | ||||||
|             "label": 1, |  | ||||||
|             "type": 3, |  | ||||||
|             "json_name": "ddd" |  | ||||||
|           }, |  | ||||||
|           { |  | ||||||
|             "name": "eee", |  | ||||||
|             "number": 5, |  | ||||||
|             "label": 3, |  | ||||||
|             "type": 9, |  | ||||||
|             "json_name": "eee" |  | ||||||
|           } |  | ||||||
|         ] |  | ||||||
|       }, |  | ||||||
|       { |  | ||||||
|         "name": "Dummy2", |  | ||||||
|         "field": [ |  | ||||||
|           { |  | ||||||
|             "name": "fff", |  | ||||||
|             "number": 1, |  | ||||||
|             "label": 1, |  | ||||||
|             "type": 2, |  | ||||||
|             "json_name": "fff" |  | ||||||
|           }, |  | ||||||
|           { |  | ||||||
|             "name": "ggg", |  | ||||||
|             "number": 2, |  | ||||||
|             "label": 1, |  | ||||||
|             "type": 11, |  | ||||||
|             "type_name": ".dummy.Dummy1", |  | ||||||
|             "json_name": "ggg" |  | ||||||
|           } |  | ||||||
|         ] |  | ||||||
|       }, |  | ||||||
|       { |  | ||||||
|         "name": "Dummy3" |  | ||||||
|       } |  | ||||||
|     ], |  | ||||||
|     "service": [ |  | ||||||
|       { |  | ||||||
|         "name": "DummyService", |  | ||||||
|         "method": [ |  | ||||||
|           { |  | ||||||
|             "name": "Hhh", |  | ||||||
|             "input_type": ".dummy.Dummy1", |  | ||||||
|             "output_type": ".dummy.Dummy2", |  | ||||||
|             "options": {} |  | ||||||
|           }, |  | ||||||
|           { |  | ||||||
|             "name": "Iii", |  | ||||||
|             "input_type": ".dummy.Dummy2", |  | ||||||
|             "output_type": ".dummy.Dummy1", |  | ||||||
|             "options": {} |  | ||||||
|           } |  | ||||||
|         ] |  | ||||||
|       } |  | ||||||
|     ], |  | ||||||
|     "source_code_info": { |  | ||||||
|       "location": [ |  | ||||||
|         { |  | ||||||
|           "span": [ |  | ||||||
|             0, |  | ||||||
|             0, |  | ||||||
|             22, |  | ||||||
|             1 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             12 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             0, |  | ||||||
|             0, |  | ||||||
|             18 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             2 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             2, |  | ||||||
|             8, |  | ||||||
|             13 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             10, |  | ||||||
|             1 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             1 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             4, |  | ||||||
|             8, |  | ||||||
|             14 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             0 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             5, |  | ||||||
|             2, |  | ||||||
|             16 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             0, |  | ||||||
|             4 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             5, |  | ||||||
|             2, |  | ||||||
|             4, |  | ||||||
|             16 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             0, |  | ||||||
|             5 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             5, |  | ||||||
|             2, |  | ||||||
|             7 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             0, |  | ||||||
|             1 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             5, |  | ||||||
|             8, |  | ||||||
|             11 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             0, |  | ||||||
|             3 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             5, |  | ||||||
|             14, |  | ||||||
|             15 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             1 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             6, |  | ||||||
|             2, |  | ||||||
|             17 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             1, |  | ||||||
|             4 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             6, |  | ||||||
|             2, |  | ||||||
|             5, |  | ||||||
|             16 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             1, |  | ||||||
|             5 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             6, |  | ||||||
|             2, |  | ||||||
|             8 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             1, |  | ||||||
|             1 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             6, |  | ||||||
|             9, |  | ||||||
|             12 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             1, |  | ||||||
|             3 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             6, |  | ||||||
|             15, |  | ||||||
|             16 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             2 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             7, |  | ||||||
|             2, |  | ||||||
|             16 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             2, |  | ||||||
|             4 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             7, |  | ||||||
|             2, |  | ||||||
|             6, |  | ||||||
|             17 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             2, |  | ||||||
|             5 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             7, |  | ||||||
|             2, |  | ||||||
|             7 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             2, |  | ||||||
|             1 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             7, |  | ||||||
|             8, |  | ||||||
|             11 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             2, |  | ||||||
|             3 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             7, |  | ||||||
|             14, |  | ||||||
|             15 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             3 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             8, |  | ||||||
|             2, |  | ||||||
|             16 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             3, |  | ||||||
|             4 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             8, |  | ||||||
|             2, |  | ||||||
|             7, |  | ||||||
|             16 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             3, |  | ||||||
|             5 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             8, |  | ||||||
|             2, |  | ||||||
|             7 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             3, |  | ||||||
|             1 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             8, |  | ||||||
|             8, |  | ||||||
|             11 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             3, |  | ||||||
|             3 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             8, |  | ||||||
|             14, |  | ||||||
|             15 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             4 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             9, |  | ||||||
|             2, |  | ||||||
|             26 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             4, |  | ||||||
|             4 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             9, |  | ||||||
|             2, |  | ||||||
|             10 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             4, |  | ||||||
|             5 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             9, |  | ||||||
|             11, |  | ||||||
|             17 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             4, |  | ||||||
|             1 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             9, |  | ||||||
|             18, |  | ||||||
|             21 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             4, |  | ||||||
|             3 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             9, |  | ||||||
|             24, |  | ||||||
|             25 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             1 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             12, |  | ||||||
|             0, |  | ||||||
|             15, |  | ||||||
|             1 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             1, |  | ||||||
|             1 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             12, |  | ||||||
|             8, |  | ||||||
|             14 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             1, |  | ||||||
|             2, |  | ||||||
|             0 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             13, |  | ||||||
|             2, |  | ||||||
|             16 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             1, |  | ||||||
|             2, |  | ||||||
|             0, |  | ||||||
|             4 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             13, |  | ||||||
|             2, |  | ||||||
|             12, |  | ||||||
|             16 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             1, |  | ||||||
|             2, |  | ||||||
|             0, |  | ||||||
|             5 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             13, |  | ||||||
|             2, |  | ||||||
|             7 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             1, |  | ||||||
|             2, |  | ||||||
|             0, |  | ||||||
|             1 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             13, |  | ||||||
|             8, |  | ||||||
|             11 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             1, |  | ||||||
|             2, |  | ||||||
|             0, |  | ||||||
|             3 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             13, |  | ||||||
|             14, |  | ||||||
|             15 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             1, |  | ||||||
|             2, |  | ||||||
|             1 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             14, |  | ||||||
|             2, |  | ||||||
|             17 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             1, |  | ||||||
|             2, |  | ||||||
|             1, |  | ||||||
|             4 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             14, |  | ||||||
|             2, |  | ||||||
|             13, |  | ||||||
|             16 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             1, |  | ||||||
|             2, |  | ||||||
|             1, |  | ||||||
|             6 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             14, |  | ||||||
|             2, |  | ||||||
|             8 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             1, |  | ||||||
|             2, |  | ||||||
|             1, |  | ||||||
|             1 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             14, |  | ||||||
|             9, |  | ||||||
|             12 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             1, |  | ||||||
|             2, |  | ||||||
|             1, |  | ||||||
|             3 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             14, |  | ||||||
|             15, |  | ||||||
|             16 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             2 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             17, |  | ||||||
|             0, |  | ||||||
|             17 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             4, |  | ||||||
|             2, |  | ||||||
|             1 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             17, |  | ||||||
|             8, |  | ||||||
|             14 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             6, |  | ||||||
|             0 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             19, |  | ||||||
|             0, |  | ||||||
|             22, |  | ||||||
|             1 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             6, |  | ||||||
|             0, |  | ||||||
|             1 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             19, |  | ||||||
|             8, |  | ||||||
|             20 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             6, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             0 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             20, |  | ||||||
|             2, |  | ||||||
|             37 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             6, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             0, |  | ||||||
|             1 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             20, |  | ||||||
|             6, |  | ||||||
|             9 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             6, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             0, |  | ||||||
|             2 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             20, |  | ||||||
|             10, |  | ||||||
|             16 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             6, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             0, |  | ||||||
|             3 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             20, |  | ||||||
|             27, |  | ||||||
|             33 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             6, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             1 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             21, |  | ||||||
|             2, |  | ||||||
|             37 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             6, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             1, |  | ||||||
|             1 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             21, |  | ||||||
|             6, |  | ||||||
|             9 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             6, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             1, |  | ||||||
|             2 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             21, |  | ||||||
|             10, |  | ||||||
|             16 |  | ||||||
|           ] |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           "path": [ |  | ||||||
|             6, |  | ||||||
|             0, |  | ||||||
|             2, |  | ||||||
|             1, |  | ||||||
|             3 |  | ||||||
|           ], |  | ||||||
|           "span": [ |  | ||||||
|             21, |  | ||||||
|             27, |  | ||||||
|             33 |  | ||||||
|           ] |  | ||||||
|         } |  | ||||||
|       ] |  | ||||||
|     }, |  | ||||||
|     "syntax": "proto3" |  | ||||||
|   }, |  | ||||||
|   "raw-filename": "export.json.tmpl", |  | ||||||
|   "filename": "export.json.tmpl", |  | ||||||
|   "template-dir": "templates", |  | ||||||
|   "service": { |  | ||||||
|     "name": "DummyService", |  | ||||||
|     "method": [ |  | ||||||
|       { |  | ||||||
|         "name": "Hhh", |  | ||||||
|         "input_type": ".dummy.Dummy1", |  | ||||||
|         "output_type": ".dummy.Dummy2", |  | ||||||
|         "options": {} |  | ||||||
|       }, |  | ||||||
|       { |  | ||||||
|         "name": "Iii", |  | ||||||
|         "input_type": ".dummy.Dummy2", |  | ||||||
|         "output_type": ".dummy.Dummy1", |  | ||||||
|         "options": {} |  | ||||||
|       } |  | ||||||
|     ] |  | ||||||
|   }, |  | ||||||
|   "enum": null |  | ||||||
| } |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| This is static text |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| {{ . | prettyjson }} |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| This is static text |  | ||||||
| @@ -1,13 +0,0 @@ | |||||||
| .PHONY: build |  | ||||||
| build: |  | ||||||
| 	mkdir -p output |  | ||||||
| 	protoc -I. --gotemplate_out=template_dir=templates,debug=true,all=true:output proto/*.proto |  | ||||||
|  |  | ||||||
|  |  | ||||||
| .PHONY: re |  | ||||||
| re: clean build |  | ||||||
|  |  | ||||||
|  |  | ||||||
| .PHONY: clean |  | ||||||
| clean: |  | ||||||
| 	rm -rf output |  | ||||||
| @@ -1,9 +0,0 @@ | |||||||
| -red |  | ||||||
| -blue |  | ||||||
| -black |  | ||||||
| -yellow |  | ||||||
| -green |  | ||||||
| -dark |  | ||||||
| -white |  | ||||||
| -gray |  | ||||||
| -orange |  | ||||||
| @@ -1,14 +0,0 @@ | |||||||
| syntax = "proto3"; |  | ||||||
| package Sample; |  | ||||||
|  |  | ||||||
| enum Colors { |  | ||||||
|     red = 0; |  | ||||||
|     blue = 1; |  | ||||||
|     black = 2; |  | ||||||
|     yellow = 3; |  | ||||||
|     green = 4; |  | ||||||
|     dark = 5; |  | ||||||
|     white = 6; |  | ||||||
|     gray = 7; |  | ||||||
|     orange = 8; |  | ||||||
| } |  | ||||||
| @@ -1,2 +0,0 @@ | |||||||
| {{range $m := "colors" | getEnumValue .Enum }}-{{$m.Name}} |  | ||||||
| {{end}} |  | ||||||
| @@ -1,13 +0,0 @@ | |||||||
| .PHONY: build |  | ||||||
| build: |  | ||||||
| 	mkdir -p output |  | ||||||
| 	protoc -I. --gotemplate_out=template_dir=templates,debug=true:output ./protos/*.proto |  | ||||||
|  |  | ||||||
|  |  | ||||||
| .PHONY: re |  | ||||||
| re: clean build |  | ||||||
|  |  | ||||||
|  |  | ||||||
| .PHONY: clean |  | ||||||
| clean: |  | ||||||
| 	rm -rf output |  | ||||||
| @@ -1,311 +0,0 @@ | |||||||
| // @flow |  | ||||||
| // GENERATED CODE -- DO NOT EDIT! |  | ||||||
|  |  | ||||||
| import base64 from 'base64-js' |  | ||||||
| import test_pb from './test_pb' |  | ||||||
|  |  | ||||||
|  |  | ||||||
| export type TestEnum = {| |  | ||||||
|     ELEMENT_A?: 0; |  | ||||||
|     ELEMENT_B?: 1; |  | ||||||
| |}; |  | ||||||
|  |  | ||||||
|  |  | ||||||
| export type TestMessage$TestNestedEnum = {| |  | ||||||
|     ELEMENT_C?: 0; |  | ||||||
|     ELEMENT_D?: 1; |  | ||||||
| |}; |  | ||||||
|  |  | ||||||
|  |  | ||||||
| export type TestMessage$TestNestedMessage = { |  | ||||||
|     getS?: () => string; |  | ||||||
|     setS?: (s: string) => void; |  | ||||||
|     getT?: () => number; |  | ||||||
|     setT?: (t: number) => void; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export type TestMessage = { |  | ||||||
|     getA?: () => string; |  | ||||||
|     setA?: (a: string) => void; |  | ||||||
|     getB?: () => number; |  | ||||||
|     setB?: (b: number) => void; |  | ||||||
|     getC?: () => number; |  | ||||||
|     setC?: (c: number) => void; |  | ||||||
|     getD?: () => number; |  | ||||||
|     setD?: (d: number) => void; |  | ||||||
|     getE?: () => number; |  | ||||||
|     setE?: (e: number) => void; |  | ||||||
|     getNList?: () => Array<string>; |  | ||||||
|     setNList?: (n: Array<string>) => void; |  | ||||||
|     addN?: (n: string) => void; |  | ||||||
|     clearNList?: () => void; |  | ||||||
|     getOList?: () => Array<number>; |  | ||||||
|     setOList?: (o: Array<number>) => void; |  | ||||||
|     addO?: (o: number) => void; |  | ||||||
|     clearOList?: () => void; |  | ||||||
|     getPList?: () => Array<number>; |  | ||||||
|     setPList?: (p: Array<number>) => void; |  | ||||||
|     addP?: (p: number) => void; |  | ||||||
|     clearPList?: () => void; |  | ||||||
|     getQList?: () => Array<number>; |  | ||||||
|     setQList?: (q: Array<number>) => void; |  | ||||||
|     addQ?: (q: number) => void; |  | ||||||
|     clearQList?: () => void; |  | ||||||
|     getRList?: () => Array<number>; |  | ||||||
|     setRList?: (r: Array<number>) => void; |  | ||||||
|     addR?: (r: number) => void; |  | ||||||
|     clearRList?: () => void; |  | ||||||
|     getU?: () => test$TestEnum; |  | ||||||
|     setU?: (u: test$TestEnum) => void; |  | ||||||
|     getV?: () => test$TestMessage$TestNestedEnum; |  | ||||||
|     setV?: (v: test$TestMessage$TestNestedEnum) => void; |  | ||||||
|     getWList?: () => Array<test$TestMessage$TestNestedMessage>; |  | ||||||
|     setWList?: (w: Array<test$TestMessage$TestNestedMessage>) => void; |  | ||||||
|     addW?: (w: test$TestMessage$TestNestedMessage) => void; |  | ||||||
|     clearWList?: () => void; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| export type TestNoStreamRequest = { |  | ||||||
|     getMessage?: () => test$TestMessage; |  | ||||||
|     setMessage?: (message: test$TestMessage) => void; |  | ||||||
|     clearMessage?: () => void; |  | ||||||
|     hasMessage?: () => boolean; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| export type TestNoStreamReply = { |  | ||||||
|     getMessage?: () => test$TestMessage; |  | ||||||
|     setMessage?: (message: test$TestMessage) => void; |  | ||||||
|     clearMessage?: () => void; |  | ||||||
|     hasMessage?: () => boolean; |  | ||||||
|     getErrMsg?: () => string; |  | ||||||
|     setErrMsg?: (err_msg: string) => void; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| export type TestStreamRequestRequest = { |  | ||||||
|     getMessage?: () => test$TestMessage; |  | ||||||
|     setMessage?: (message: test$TestMessage) => void; |  | ||||||
|     clearMessage?: () => void; |  | ||||||
|     hasMessage?: () => boolean; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| export type TestStreamRequestReply = { |  | ||||||
|     getMessage?: () => test$TestMessage; |  | ||||||
|     setMessage?: (message: test$TestMessage) => void; |  | ||||||
|     clearMessage?: () => void; |  | ||||||
|     hasMessage?: () => boolean; |  | ||||||
|     getErrMsg?: () => string; |  | ||||||
|     setErrMsg?: (err_msg: string) => void; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| export type TestStreamReplyRequest = { |  | ||||||
|     getMessage?: () => test$TestMessage; |  | ||||||
|     setMessage?: (message: test$TestMessage) => void; |  | ||||||
|     clearMessage?: () => void; |  | ||||||
|     hasMessage?: () => boolean; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| export type TestStreamReplyReply = { |  | ||||||
|     getMessage?: () => test$TestMessage; |  | ||||||
|     setMessage?: (message: test$TestMessage) => void; |  | ||||||
|     clearMessage?: () => void; |  | ||||||
|     hasMessage?: () => boolean; |  | ||||||
|     getErrMsg?: () => string; |  | ||||||
|     setErrMsg?: (err_msg: string) => void; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| export type TestStreamBothRequest = { |  | ||||||
|     getMessage?: () => test$TestMessage; |  | ||||||
|     setMessage?: (message: test$TestMessage) => void; |  | ||||||
|     clearMessage?: () => void; |  | ||||||
|     hasMessage?: () => boolean; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| export type TestStreamBothReply = { |  | ||||||
|     getMessage?: () => test$TestMessage; |  | ||||||
|     setMessage?: (message: test$TestMessage) => void; |  | ||||||
|     clearMessage?: () => void; |  | ||||||
|     hasMessage?: () => boolean; |  | ||||||
|     getErrMsg?: () => string; |  | ||||||
|     setErrMsg?: (err_msg: string) => void; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| const serializeToBase64 = (byteArray: Uint8Array): string => base64.fromByteArray(byteArray) |  | ||||||
| const deserializeFromBase64 = (base64Encoded: string): Uint8Array => new Uint8Array(base64.toByteArray(base64Encoded)) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| function serialize_test_TestNoStreamRequest(arg : TestNoStreamRequest): string { |  | ||||||
|   if (!(arg instanceof test_pb.TestNoStreamRequest)) { |  | ||||||
|     throw new Error('Expected argument of type TestNoStreamRequest') |  | ||||||
|   } |  | ||||||
|   return serializeToBase64(arg.serializeBinary()) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function deserialize_test_TestNoStreamRequest(base64Encoded: string): TestNoStreamRequest { |  | ||||||
|   return test_pb.TestNoStreamRequest.deserializeBinary(deserializeFromBase64(base64Encoded)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function serialize_test_TestNoStreamReply(arg : TestNoStreamReply): string { |  | ||||||
|   if (!(arg instanceof test_pb.TestNoStreamReply)) { |  | ||||||
|     throw new Error('Expected argument of type TestNoStreamReply') |  | ||||||
|   } |  | ||||||
|   return serializeToBase64(arg.serializeBinary()) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function deserialize_test_TestNoStreamReply(base64Encoded: string): TestNoStreamReply { |  | ||||||
|   return test_pb.TestNoStreamReply.deserializeBinary(deserializeFromBase64(base64Encoded)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
|  |  | ||||||
| function serialize_test_TestStreamRequestRequest(arg : TestStreamRequestRequest): string { |  | ||||||
|   if (!(arg instanceof test_pb.TestStreamRequestRequest)) { |  | ||||||
|     throw new Error('Expected argument of type TestStreamRequestRequest') |  | ||||||
|   } |  | ||||||
|   return serializeToBase64(arg.serializeBinary()) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function deserialize_test_TestStreamRequestRequest(base64Encoded: string): TestStreamRequestRequest { |  | ||||||
|   return test_pb.TestStreamRequestRequest.deserializeBinary(deserializeFromBase64(base64Encoded)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function serialize_test_TestStreamRequestReply(arg : TestStreamRequestReply): string { |  | ||||||
|   if (!(arg instanceof test_pb.TestStreamRequestReply)) { |  | ||||||
|     throw new Error('Expected argument of type TestStreamRequestReply') |  | ||||||
|   } |  | ||||||
|   return serializeToBase64(arg.serializeBinary()) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function deserialize_test_TestStreamRequestReply(base64Encoded: string): TestStreamRequestReply { |  | ||||||
|   return test_pb.TestStreamRequestReply.deserializeBinary(deserializeFromBase64(base64Encoded)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
|  |  | ||||||
| function serialize_test_TestStreamReplyRequest(arg : TestStreamReplyRequest): string { |  | ||||||
|   if (!(arg instanceof test_pb.TestStreamReplyRequest)) { |  | ||||||
|     throw new Error('Expected argument of type TestStreamReplyRequest') |  | ||||||
|   } |  | ||||||
|   return serializeToBase64(arg.serializeBinary()) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function deserialize_test_TestStreamReplyRequest(base64Encoded: string): TestStreamReplyRequest { |  | ||||||
|   return test_pb.TestStreamReplyRequest.deserializeBinary(deserializeFromBase64(base64Encoded)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function serialize_test_TestStreamReplyReply(arg : TestStreamReplyReply): string { |  | ||||||
|   if (!(arg instanceof test_pb.TestStreamReplyReply)) { |  | ||||||
|     throw new Error('Expected argument of type TestStreamReplyReply') |  | ||||||
|   } |  | ||||||
|   return serializeToBase64(arg.serializeBinary()) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function deserialize_test_TestStreamReplyReply(base64Encoded: string): TestStreamReplyReply { |  | ||||||
|   return test_pb.TestStreamReplyReply.deserializeBinary(deserializeFromBase64(base64Encoded)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
|  |  | ||||||
| function serialize_test_TestStreamBothRequest(arg : TestStreamBothRequest): string { |  | ||||||
|   if (!(arg instanceof test_pb.TestStreamBothRequest)) { |  | ||||||
|     throw new Error('Expected argument of type TestStreamBothRequest') |  | ||||||
|   } |  | ||||||
|   return serializeToBase64(arg.serializeBinary()) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function deserialize_test_TestStreamBothRequest(base64Encoded: string): TestStreamBothRequest { |  | ||||||
|   return test_pb.TestStreamBothRequest.deserializeBinary(deserializeFromBase64(base64Encoded)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function serialize_test_TestStreamBothReply(arg : TestStreamBothReply): string { |  | ||||||
|   if (!(arg instanceof test_pb.TestStreamBothReply)) { |  | ||||||
|     throw new Error('Expected argument of type TestStreamBothReply') |  | ||||||
|   } |  | ||||||
|   return serializeToBase64(arg.serializeBinary()) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function deserialize_test_TestStreamBothReply(base64Encoded: string): TestStreamBothReply { |  | ||||||
|   return test_pb.TestStreamBothReply.deserializeBinary(deserializeFromBase64(base64Encoded)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
|  |  | ||||||
| export default { |  | ||||||
|    |  | ||||||
|   TestService: { |  | ||||||
|    |  | ||||||
|     testNoStream: { |  | ||||||
|       path: '/test.TestService/TestNoStream', |  | ||||||
|       requestStream: false, |  | ||||||
|       responseStream: false, |  | ||||||
|       requestType: test_pb.TestNoStreamRequest, |  | ||||||
|       responseType: test_pb.TestNoStreamReply, |  | ||||||
|       requestSerialize: serialize_test_TestNoStreamRequest, |  | ||||||
|       requestDeserialize: deserialize_test_TestNoStreamRequest, |  | ||||||
|       responseSerialize: serialize_test_TestNoStreamReply, |  | ||||||
|       responseDeserialize: deserialize_test_TestNoStreamReply, |  | ||||||
|     }, |  | ||||||
|     testStreamRequest: { |  | ||||||
|       path: '/test.TestService/TestStreamRequest', |  | ||||||
|       requestStream: true, |  | ||||||
|       responseStream: false, |  | ||||||
|       requestType: test_pb.TestStreamRequestRequest, |  | ||||||
|       responseType: test_pb.TestStreamRequestReply, |  | ||||||
|       requestSerialize: serialize_test_TestStreamRequestRequest, |  | ||||||
|       requestDeserialize: deserialize_test_TestStreamRequestRequest, |  | ||||||
|       responseSerialize: serialize_test_TestStreamRequestReply, |  | ||||||
|       responseDeserialize: deserialize_test_TestStreamRequestReply, |  | ||||||
|     }, |  | ||||||
|     testStreamReply: { |  | ||||||
|       path: '/test.TestService/TestStreamReply', |  | ||||||
|       requestStream: false, |  | ||||||
|       responseStream: true, |  | ||||||
|       requestType: test_pb.TestStreamReplyRequest, |  | ||||||
|       responseType: test_pb.TestStreamReplyReply, |  | ||||||
|       requestSerialize: serialize_test_TestStreamReplyRequest, |  | ||||||
|       requestDeserialize: deserialize_test_TestStreamReplyRequest, |  | ||||||
|       responseSerialize: serialize_test_TestStreamReplyReply, |  | ||||||
|       responseDeserialize: deserialize_test_TestStreamReplyReply, |  | ||||||
|     }, |  | ||||||
|     testStreamBoth: { |  | ||||||
|       path: '/test.TestService/TestStreamBoth', |  | ||||||
|       requestStream: true, |  | ||||||
|       responseStream: true, |  | ||||||
|       requestType: test_pb.TestStreamBothRequest, |  | ||||||
|       responseType: test_pb.TestStreamBothReply, |  | ||||||
|       requestSerialize: serialize_test_TestStreamBothRequest, |  | ||||||
|       requestDeserialize: deserialize_test_TestStreamBothRequest, |  | ||||||
|       responseSerialize: serialize_test_TestStreamBothReply, |  | ||||||
|       responseDeserialize: deserialize_test_TestStreamBothReply, |  | ||||||
|     }, |  | ||||||
|      |  | ||||||
|   } |  | ||||||
|    |  | ||||||
| } |  | ||||||
| @@ -1,52 +0,0 @@ | |||||||
| syntax = "proto3"; |  | ||||||
|  |  | ||||||
| package test; |  | ||||||
|  |  | ||||||
| option go_package = "github.com/united-drivers/models/go/test;testpb"; |  | ||||||
|  |  | ||||||
| service TestService { |  | ||||||
|   rpc TestNoStream(TestNoStreamRequest) returns (TestNoStreamReply); |  | ||||||
|   rpc TestStreamRequest(stream TestStreamRequestRequest) returns (TestStreamRequestReply); |  | ||||||
|   rpc TestStreamReply(TestStreamReplyRequest) returns (stream TestStreamReplyReply); |  | ||||||
|   rpc TestStreamBoth(stream TestStreamBothRequest) returns (stream TestStreamBothReply); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| enum TestEnum { |  | ||||||
|   ELEMENT_A = 0; |  | ||||||
|   ELEMENT_B = 1; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message TestMessage { |  | ||||||
|   string a = 1; |  | ||||||
|   int32 b = 2; |  | ||||||
|   int64 c = 3; |  | ||||||
|   float d = 4; |  | ||||||
|   double e = 5; |  | ||||||
|   repeated string n = 14; |  | ||||||
|   repeated int32 o = 15; |  | ||||||
|   repeated int64 p = 16; |  | ||||||
|   repeated float q = 17; |  | ||||||
|   repeated double r = 18; |  | ||||||
|  |  | ||||||
|   message TestNestedMessage { |  | ||||||
|     string s = 1; |  | ||||||
|     int32 t = 2; |  | ||||||
|   } |  | ||||||
|   enum TestNestedEnum { |  | ||||||
|     ELEMENT_C = 0; |  | ||||||
|     ELEMENT_D = 1; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   TestEnum u = 19; |  | ||||||
|   TestNestedEnum v = 20; |  | ||||||
|   repeated TestNestedMessage w = 21; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message TestNoStreamRequest { TestMessage message = 1; } |  | ||||||
| message TestNoStreamReply   { TestMessage message = 1; string err_msg = 2; } |  | ||||||
| message TestStreamRequestRequest { TestMessage message = 1; } |  | ||||||
| message TestStreamRequestReply   { TestMessage message = 1; string err_msg = 2; } |  | ||||||
| message TestStreamReplyRequest { TestMessage message = 1; } |  | ||||||
| message TestStreamReplyReply   { TestMessage message = 1; string err_msg = 2; } |  | ||||||
| message TestStreamBothRequest { TestMessage message = 1; } |  | ||||||
| message TestStreamBothReply   { TestMessage message = 1; string err_msg = 2; } |  | ||||||
| @@ -1,110 +0,0 @@ | |||||||
| // @flow |  | ||||||
| // GENERATED CODE -- DO NOT EDIT! |  | ||||||
|  |  | ||||||
| {{- $Package:=.File.Package}} |  | ||||||
|  |  | ||||||
| import base64 from 'base64-js' |  | ||||||
| import {{$Package}}_pb from './{{$Package}}_pb' |  | ||||||
|  |  | ||||||
| {{- range .File.Dependency}} |  | ||||||
| import {{. | replace "/" "_" | trimSuffix ".proto" }}_pb from '../{{. | trimSuffix ".proto" }}_pb' |  | ||||||
| {{- end}} |  | ||||||
|  |  | ||||||
| {{- define "fieldMethods"}} |  | ||||||
|   {{- if isFieldRepeated .}} |  | ||||||
|     get{{.Name | camelCase}}List?: () => {{. | jsType}}; |  | ||||||
|     set{{.Name | camelCase}}List?: ({{.Name}}: {{. | jsType}}) => void; |  | ||||||
|     add{{.Name | camelCase}}?: ({{.Name}}: {{. | jsType | trimPrefix "Array<" | trimSuffix ">"}}) => void; |  | ||||||
|     clear{{.Name | camelCase}}List?: () => void; |  | ||||||
|   {{- else}} |  | ||||||
|     get{{.Name | camelCase}}?: () => {{. | jsType}}; |  | ||||||
|     set{{.Name | camelCase}}?: ({{.Name}}: {{. | jsType}}) => void; |  | ||||||
|  |  | ||||||
|     {{- if isFieldMessage .}} |  | ||||||
|     clear{{.Name | camelCase}}?: () => void; |  | ||||||
|     has{{.Name | camelCase}}?: () => boolean; |  | ||||||
|     {{- end}} |  | ||||||
|   {{- end}} |  | ||||||
| {{- end}} |  | ||||||
|  |  | ||||||
| {{range .File.EnumType}} |  | ||||||
| export type {{.Name}} = {| |  | ||||||
|   {{- range .Value}} |  | ||||||
|     {{.Name}}?: {{.Number}}; |  | ||||||
|   {{- end}} |  | ||||||
| |}; |  | ||||||
| {{- end}} |  | ||||||
|  |  | ||||||
| {{- range .File.MessageType}} |  | ||||||
| {{- $MessageType := .Name}} |  | ||||||
|  |  | ||||||
| {{range .EnumType}} |  | ||||||
| export type {{$MessageType}}${{.Name}} = {| |  | ||||||
|   {{- range .Value}} |  | ||||||
|     {{.Name}}?: {{.Number}}; |  | ||||||
|   {{- end}} |  | ||||||
| |}; |  | ||||||
| {{- end}} |  | ||||||
|  |  | ||||||
| {{range .NestedType}} |  | ||||||
| export type {{$MessageType}}${{.Name}} = { |  | ||||||
|   {{- range .Field}} |  | ||||||
|     {{- template "fieldMethods" .}} |  | ||||||
|   {{- end}} |  | ||||||
| }; |  | ||||||
| {{- end}} |  | ||||||
|  |  | ||||||
| export type {{.Name}} = { |  | ||||||
|   {{- range .Field}} |  | ||||||
|     {{- template "fieldMethods" .}} |  | ||||||
|   {{- end}} |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| {{- end}} |  | ||||||
|  |  | ||||||
| const serializeToBase64 = (byteArray: Uint8Array): string => base64.fromByteArray(byteArray) |  | ||||||
| const deserializeFromBase64 = (base64Encoded: string): Uint8Array => new Uint8Array(base64.toByteArray(base64Encoded)) |  | ||||||
|  |  | ||||||
| {{range .File.Service}}{{range .Method}} |  | ||||||
| function serialize_{{$Package}}_{{.InputType | shortType}}(arg : {{.InputType | shortType}}): string { |  | ||||||
|   if (!(arg instanceof {{$Package}}_pb.{{.InputType | shortType}})) { |  | ||||||
|     throw new Error('Expected argument of type {{.InputType | shortType}}') |  | ||||||
|   } |  | ||||||
|   return serializeToBase64(arg.serializeBinary()) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function deserialize_{{$Package}}_{{.InputType | shortType}}(base64Encoded: string): {{.InputType | shortType}} { |  | ||||||
|   return {{$Package}}_pb.{{.InputType | shortType}}.deserializeBinary(deserializeFromBase64(base64Encoded)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function serialize_{{$Package}}_{{.OutputType | shortType}}(arg : {{.OutputType | shortType}}): string { |  | ||||||
|   if (!(arg instanceof {{$Package}}_pb.{{.OutputType | shortType}})) { |  | ||||||
|     throw new Error('Expected argument of type {{.OutputType | shortType}}') |  | ||||||
|   } |  | ||||||
|   return serializeToBase64(arg.serializeBinary()) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function deserialize_{{$Package}}_{{.OutputType | shortType}}(base64Encoded: string): {{.OutputType | shortType}} { |  | ||||||
|   return {{$Package}}_pb.{{.OutputType | shortType}}.deserializeBinary(deserializeFromBase64(base64Encoded)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| {{end}}{{end}} |  | ||||||
| export default { |  | ||||||
|   {{range .File.Service}} |  | ||||||
|   {{.Name}}: { |  | ||||||
|   {{$serviceName:=.Name}} |  | ||||||
|     {{range .Method}}{{.Name | lowerCamelCase}}: { |  | ||||||
|       path: '/{{$Package}}.{{$serviceName}}/{{.Name}}', |  | ||||||
|       requestStream: {{.ClientStreaming | default "false"}}, |  | ||||||
|       responseStream: {{.ServerStreaming | default "false"}}, |  | ||||||
|       requestType: {{$Package}}_pb.{{.InputType | shortType}}, |  | ||||||
|       responseType: {{$Package}}_pb.{{.OutputType | shortType}}, |  | ||||||
|       requestSerialize: serialize_{{$Package}}_{{.InputType | shortType}}, |  | ||||||
|       requestDeserialize: deserialize_{{$Package}}_{{.InputType | shortType}}, |  | ||||||
|       responseSerialize: serialize_{{$Package}}_{{.OutputType | shortType}}, |  | ||||||
|       responseDeserialize: deserialize_{{$Package}}_{{.OutputType | shortType}}, |  | ||||||
|     }, |  | ||||||
|     {{end}} |  | ||||||
|   } |  | ||||||
|   {{end}} |  | ||||||
| } |  | ||||||
| @@ -1,2 +0,0 @@ | |||||||
| all: |  | ||||||
| 	go generate |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| package example |  | ||||||
|  |  | ||||||
| //go:generate protoc --go_out=./gen/         example.proto |  | ||||||
| //go:generate protoc --gotemplate_out=./gen/ example.proto |  | ||||||
| @@ -1,16 +0,0 @@ | |||||||
| syntax = "proto3"; |  | ||||||
|  |  | ||||||
| package example; |  | ||||||
|  |  | ||||||
| service Sum { |  | ||||||
|   rpc Sum(SumRequest) returns (SumReply) {}; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message SumRequest { |  | ||||||
|   int32 a = 1; |  | ||||||
|   int32 b = 2; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message SumReply { |  | ||||||
|   int32 c = 1; |  | ||||||
| } |  | ||||||
							
								
								
									
										11
									
								
								examples/go-generate/gen/doc.gen.go
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										11
									
								
								examples/go-generate/gen/doc.gen.go
									
									
									
										generated
									
									
									
								
							| @@ -1,11 +0,0 @@ | |||||||
| // Code generated by protoc-gen-gotemplate |  | ||||||
| package example |  | ||||||
|  |  | ||||||
| // Methods |  | ||||||
| // ------- |  | ||||||
| // * Sum |  | ||||||
| // |  | ||||||
| // Message types |  | ||||||
| // ------------- |  | ||||||
| // * SumRequest |  | ||||||
| // * SumReply |  | ||||||
							
								
								
									
										89
									
								
								examples/go-generate/gen/example.pb.go
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										89
									
								
								examples/go-generate/gen/example.pb.go
									
									
									
										generated
									
									
									
								
							| @@ -1,89 +0,0 @@ | |||||||
| // Code generated by protoc-gen-go. |  | ||||||
| // source: example.proto |  | ||||||
| // DO NOT EDIT! |  | ||||||
|  |  | ||||||
| /* |  | ||||||
| Package example is a generated protocol buffer package. |  | ||||||
|  |  | ||||||
| It is generated from these files: |  | ||||||
| 	example.proto |  | ||||||
|  |  | ||||||
| It has these top-level messages: |  | ||||||
| 	SumRequest |  | ||||||
| 	SumReply |  | ||||||
| */ |  | ||||||
| package example |  | ||||||
|  |  | ||||||
| import proto "github.com/golang/protobuf/proto" |  | ||||||
| import fmt "fmt" |  | ||||||
| import math "math" |  | ||||||
|  |  | ||||||
| // Reference imports to suppress errors if they are not otherwise used. |  | ||||||
| var _ = proto.Marshal |  | ||||||
| var _ = fmt.Errorf |  | ||||||
| var _ = math.Inf |  | ||||||
|  |  | ||||||
| // This is a compile-time assertion to ensure that this generated file |  | ||||||
| // is compatible with the proto package it is being compiled against. |  | ||||||
| // A compilation error at this line likely means your copy of the |  | ||||||
| // proto package needs to be updated. |  | ||||||
| const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package |  | ||||||
|  |  | ||||||
| type SumRequest struct { |  | ||||||
| 	A int32 `protobuf:"varint,1,opt,name=a" json:"a,omitempty"` |  | ||||||
| 	B int32 `protobuf:"varint,2,opt,name=b" json:"b,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *SumRequest) Reset()                    { *m = SumRequest{} } |  | ||||||
| func (m *SumRequest) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*SumRequest) ProtoMessage()               {} |  | ||||||
| func (*SumRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } |  | ||||||
|  |  | ||||||
| func (m *SumRequest) GetA() int32 { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.A |  | ||||||
| 	} |  | ||||||
| 	return 0 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *SumRequest) GetB() int32 { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.B |  | ||||||
| 	} |  | ||||||
| 	return 0 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type SumReply struct { |  | ||||||
| 	C int32 `protobuf:"varint,1,opt,name=c" json:"c,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *SumReply) Reset()                    { *m = SumReply{} } |  | ||||||
| func (m *SumReply) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*SumReply) ProtoMessage()               {} |  | ||||||
| func (*SumReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } |  | ||||||
|  |  | ||||||
| func (m *SumReply) GetC() int32 { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.C |  | ||||||
| 	} |  | ||||||
| 	return 0 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func init() { |  | ||||||
| 	proto.RegisterType((*SumRequest)(nil), "example.SumRequest") |  | ||||||
| 	proto.RegisterType((*SumReply)(nil), "example.SumReply") |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func init() { proto.RegisterFile("example.proto", fileDescriptor0) } |  | ||||||
|  |  | ||||||
| var fileDescriptor0 = []byte{ |  | ||||||
| 	// 124 bytes of a gzipped FileDescriptorProto |  | ||||||
| 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4d, 0xad, 0x48, 0xcc, |  | ||||||
| 	0x2d, 0xc8, 0x49, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x87, 0x72, 0x95, 0x34, 0xb8, |  | ||||||
| 	0xb8, 0x82, 0x4b, 0x73, 0x83, 0x52, 0x0b, 0x4b, 0x53, 0x8b, 0x4b, 0x84, 0x78, 0xb8, 0x18, 0x13, |  | ||||||
| 	0x25, 0x18, 0x15, 0x18, 0x35, 0x58, 0x83, 0x18, 0x13, 0x41, 0xbc, 0x24, 0x09, 0x26, 0x08, 0x2f, |  | ||||||
| 	0x49, 0x49, 0x82, 0x8b, 0x03, 0xac, 0xb2, 0x20, 0xa7, 0x12, 0x24, 0x93, 0x0c, 0x53, 0x97, 0x6c, |  | ||||||
| 	0x64, 0xc6, 0xc5, 0x1c, 0x5c, 0x9a, 0x2b, 0xa4, 0x0f, 0xa1, 0x84, 0xf5, 0x60, 0x56, 0x21, 0x0c, |  | ||||||
| 	0x96, 0x12, 0x44, 0x15, 0x2c, 0xc8, 0xa9, 0x54, 0x62, 0x48, 0x62, 0x03, 0xbb, 0xc5, 0x18, 0x10, |  | ||||||
| 	0x00, 0x00, 0xff, 0xff, 0x2b, 0xf1, 0xe9, 0x56, 0x9c, 0x00, 0x00, 0x00, |  | ||||||
| } |  | ||||||
							
								
								
									
										14
									
								
								examples/go-generate/templates/doc.gen.go.tmpl
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										14
									
								
								examples/go-generate/templates/doc.gen.go.tmpl
									
									
									
										generated
									
									
									
								
							| @@ -1,14 +0,0 @@ | |||||||
| // Code generated by protoc-gen-gotemplate |  | ||||||
| package {{.File.Package}} |  | ||||||
|  |  | ||||||
| // Methods |  | ||||||
| // ------- |  | ||||||
| {{- range .Service.Method}} |  | ||||||
| // * {{.Name}} |  | ||||||
| {{- end}} |  | ||||||
| // |  | ||||||
| // Message types |  | ||||||
| // ------------- |  | ||||||
| {{- range .File.MessageType}} |  | ||||||
| // * {{.Name}} |  | ||||||
| {{- end}} |  | ||||||
							
								
								
									
										2
									
								
								examples/go-kit/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								examples/go-kit/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,2 +0,0 @@ | |||||||
| /vendor/ |  | ||||||
| /server |  | ||||||
| @@ -1,24 +0,0 @@ | |||||||
| SOURCES :=	$(shell find . -name "*.proto" -not -path ./vendor/\*) |  | ||||||
|  |  | ||||||
| TARGETS_GO :=	$(foreach source, $(SOURCES), $(source)_go) |  | ||||||
| TARGETS_TMPL :=	$(foreach source, $(SOURCES), $(source)_tmpl) |  | ||||||
|  |  | ||||||
| service_name =	$(word 2,$(subst /, ,$1)) |  | ||||||
|  |  | ||||||
| .PHONY: build |  | ||||||
| build: server |  | ||||||
|  |  | ||||||
| server: $(TARGETS_GO) $(TARGETS_TMPL) |  | ||||||
| 	glide install |  | ||||||
| 	go build -o server . |  | ||||||
|  |  | ||||||
| $(TARGETS_GO): %_go: |  | ||||||
| 	protoc --go_out=plugins=grpc:. "$*" |  | ||||||
| 	@mkdir -p services/$(call service_name,$*)/gen/pb |  | ||||||
| 	@mv ./services/$(call service_name,$*)/$(call service_name,$*).pb.go ./services/$(call service_name,$*)/gen/pb/pb.go |  | ||||||
|  |  | ||||||
| $(TARGETS_TMPL): %_tmpl: |  | ||||||
| 	@mkdir -p $(dir $*)gen |  | ||||||
| 	protoc -I. --gotemplate_out=destination_dir=services/$(call service_name,$*)/gen,template_dir=templates:services "$*" |  | ||||||
| 	@rm -rf services/services  # need to investigate why this directory is created |  | ||||||
| 	gofmt -w $(dir $*)gen |  | ||||||
							
								
								
									
										48
									
								
								examples/go-kit/glide.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										48
									
								
								examples/go-kit/glide.lock
									
									
									
										generated
									
									
									
								
							| @@ -1,48 +0,0 @@ | |||||||
| hash: e225ab17b49f8d6601b2bd813d43ad34ee04380d29c278c11919efd454c7b2d7 |  | ||||||
| updated: 2017-03-16T17:03:34.437968115+01:00 |  | ||||||
| imports: |  | ||||||
| - name: github.com/dgrijalva/jwt-go |  | ||||||
|   version: 2268707a8f0843315e2004ee4f1d021dc08baedf |  | ||||||
| - name: github.com/go-kit/kit |  | ||||||
|   version: fadad6fffe0466b19df9efd9acde5c9a52df5fa4 |  | ||||||
|   subpackages: |  | ||||||
|   - auth/jwt |  | ||||||
|   - endpoint |  | ||||||
|   - log |  | ||||||
|   - transport/grpc |  | ||||||
|   - transport/http |  | ||||||
| - name: github.com/go-logfmt/logfmt |  | ||||||
|   version: 390ab7935ee28ec6b286364bba9b4dd6410cb3d5 |  | ||||||
| - name: github.com/go-stack/stack |  | ||||||
|   version: 100eb0c0a9c5b306ca2fb4f165df21d80ada4b82 |  | ||||||
| - name: github.com/golang/protobuf |  | ||||||
|   version: c9c7427a2a70d2eb3bafa0ab2dc163e45f143317 |  | ||||||
|   subpackages: |  | ||||||
|   - proto |  | ||||||
| - name: github.com/gorilla/handlers |  | ||||||
|   version: 3a5767ca75ece5f7f1440b1d16975247f8d8b221 |  | ||||||
| - name: github.com/kr/logfmt |  | ||||||
|   version: b84e30acd515aadc4b783ad4ff83aff3299bdfe0 |  | ||||||
| - name: golang.org/x/net |  | ||||||
|   version: a6577fac2d73be281a500b310739095313165611 |  | ||||||
|   subpackages: |  | ||||||
|   - context |  | ||||||
|   - context/ctxhttp |  | ||||||
|   - http2 |  | ||||||
|   - http2/hpack |  | ||||||
|   - idna |  | ||||||
|   - internal/timeseries |  | ||||||
|   - lex/httplex |  | ||||||
|   - trace |  | ||||||
| - name: google.golang.org/grpc |  | ||||||
|   version: 777daa17ff9b5daef1cfdf915088a2ada3332bf0 |  | ||||||
|   subpackages: |  | ||||||
|   - codes |  | ||||||
|   - credentials |  | ||||||
|   - grpclog |  | ||||||
|   - internal |  | ||||||
|   - metadata |  | ||||||
|   - naming |  | ||||||
|   - peer |  | ||||||
|   - transport |  | ||||||
| testImports: [] |  | ||||||
| @@ -1,20 +0,0 @@ | |||||||
| package: moul.io/protoc-gen-gotemplate/examples/go-kit |  | ||||||
| import: |  | ||||||
| - package: github.com/go-kit/kit |  | ||||||
|   subpackages: |  | ||||||
|   - auth/jwt |  | ||||||
|   - endpoint |  | ||||||
|   - log |  | ||||||
|   - transport/grpc |  | ||||||
|   - transport/http |  | ||||||
| - package: github.com/golang/protobuf |  | ||||||
|   subpackages: |  | ||||||
|   - proto |  | ||||||
|   version: c9c7427a2a70d2eb3bafa0ab2dc163e45f143317 |  | ||||||
| - package: github.com/gorilla/handlers |  | ||||||
| - package: golang.org/x/net |  | ||||||
|   subpackages: |  | ||||||
|   - context |  | ||||||
|   - http2 |  | ||||||
|   version: a6577fac2d73be281a500b310739095313165611 |  | ||||||
| - package: google.golang.org/grpc |  | ||||||
| @@ -1,93 +0,0 @@ | |||||||
| package main |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"fmt" |  | ||||||
| 	"net" |  | ||||||
| 	"net/http" |  | ||||||
| 	"os" |  | ||||||
| 	"os/signal" |  | ||||||
| 	"syscall" |  | ||||||
|  |  | ||||||
| 	"github.com/go-kit/kit/log" |  | ||||||
| 	"github.com/gorilla/handlers" |  | ||||||
| 	"google.golang.org/grpc" |  | ||||||
|  |  | ||||||
| 	session_svc "moul.io/protoc-gen-gotemplate/examples/go-kit/services/session" |  | ||||||
| 	session_endpoints "moul.io/protoc-gen-gotemplate/examples/go-kit/services/session/gen/endpoints" |  | ||||||
| 	session_pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/session/gen/pb" |  | ||||||
| 	session_grpctransport "moul.io/protoc-gen-gotemplate/examples/go-kit/services/session/gen/transports/grpc" |  | ||||||
| 	session_httptransport "moul.io/protoc-gen-gotemplate/examples/go-kit/services/session/gen/transports/http" |  | ||||||
|  |  | ||||||
| 	sprint_svc "moul.io/protoc-gen-gotemplate/examples/go-kit/services/sprint" |  | ||||||
| 	sprint_endpoints "moul.io/protoc-gen-gotemplate/examples/go-kit/services/sprint/gen/endpoints" |  | ||||||
| 	sprint_pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/sprint/gen/pb" |  | ||||||
| 	sprint_grpctransport "moul.io/protoc-gen-gotemplate/examples/go-kit/services/sprint/gen/transports/grpc" |  | ||||||
| 	sprint_httptransport "moul.io/protoc-gen-gotemplate/examples/go-kit/services/sprint/gen/transports/http" |  | ||||||
|  |  | ||||||
| 	user_svc "moul.io/protoc-gen-gotemplate/examples/go-kit/services/user" |  | ||||||
| 	user_endpoints "moul.io/protoc-gen-gotemplate/examples/go-kit/services/user/gen/endpoints" |  | ||||||
| 	user_pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/user/gen/pb" |  | ||||||
| 	user_grpctransport "moul.io/protoc-gen-gotemplate/examples/go-kit/services/user/gen/transports/grpc" |  | ||||||
| 	user_httptransport "moul.io/protoc-gen-gotemplate/examples/go-kit/services/user/gen/transports/http" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| func main() { |  | ||||||
| 	mux := http.NewServeMux() |  | ||||||
| 	errc := make(chan error) |  | ||||||
| 	s := grpc.NewServer() |  | ||||||
| 	var logger log.Logger |  | ||||||
| 	{ |  | ||||||
| 		logger = log.NewLogfmtLogger(os.Stdout) |  | ||||||
| 		logger = log.With(logger, "ts", log.DefaultTimestampUTC) |  | ||||||
| 		logger = log.With(logger, "caller", log.DefaultCaller) |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	// initialize services |  | ||||||
| 	{ |  | ||||||
| 		svc := session_svc.New() |  | ||||||
| 		endpoints := session_endpoints.MakeEndpoints(svc) |  | ||||||
| 		srv := session_grpctransport.MakeGRPCServer(endpoints) |  | ||||||
| 		session_pb.RegisterSessionServiceServer(s, srv) |  | ||||||
| 		session_httptransport.RegisterHandlers(svc, mux, endpoints) |  | ||||||
| 	} |  | ||||||
| 	{ |  | ||||||
| 		svc := sprint_svc.New() |  | ||||||
| 		endpoints := sprint_endpoints.MakeEndpoints(svc) |  | ||||||
| 		srv := sprint_grpctransport.MakeGRPCServer(endpoints) |  | ||||||
| 		sprint_pb.RegisterSprintServiceServer(s, srv) |  | ||||||
| 		sprint_httptransport.RegisterHandlers(svc, mux, endpoints) |  | ||||||
| 	} |  | ||||||
| 	{ |  | ||||||
| 		svc := user_svc.New() |  | ||||||
| 		endpoints := user_endpoints.MakeEndpoints(svc) |  | ||||||
| 		srv := user_grpctransport.MakeGRPCServer(endpoints) |  | ||||||
| 		user_pb.RegisterUserServiceServer(s, srv) |  | ||||||
| 		user_httptransport.RegisterHandlers(svc, mux, endpoints) |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	// start servers |  | ||||||
| 	go func() { |  | ||||||
| 		c := make(chan os.Signal, 1) |  | ||||||
| 		signal.Notify(c, syscall.SIGINT, syscall.SIGTERM) |  | ||||||
| 		errc <- fmt.Errorf("%s", <-c) |  | ||||||
| 	}() |  | ||||||
|  |  | ||||||
| 	go func() { |  | ||||||
| 		logger := log.With(logger, "transport", "HTTP") |  | ||||||
| 		logger.Log("addr", ":8000") |  | ||||||
| 		errc <- http.ListenAndServe(":8000", handlers.LoggingHandler(os.Stderr, mux)) |  | ||||||
| 	}() |  | ||||||
|  |  | ||||||
| 	go func() { |  | ||||||
| 		logger := log.With(logger, "transport", "gRPC") |  | ||||||
| 		ln, err := net.Listen("tcp", ":9000") |  | ||||||
| 		if err != nil { |  | ||||||
| 			errc <- err |  | ||||||
| 			return |  | ||||||
| 		} |  | ||||||
| 		logger.Log("addr", ":9000") |  | ||||||
| 		errc <- s.Serve(ln) |  | ||||||
| 	}() |  | ||||||
|  |  | ||||||
| 	logger.Log("exit", <-errc) |  | ||||||
| } |  | ||||||
| @@ -1,45 +0,0 @@ | |||||||
| package session_clientgrpc |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	context "context" |  | ||||||
|  |  | ||||||
| 	jwt "github.com/go-kit/kit/auth/jwt" |  | ||||||
| 	"github.com/go-kit/kit/endpoint" |  | ||||||
| 	"github.com/go-kit/kit/log" |  | ||||||
| 	grpctransport "github.com/go-kit/kit/transport/grpc" |  | ||||||
| 	"google.golang.org/grpc" |  | ||||||
|  |  | ||||||
| 	endpoints "moul.io/protoc-gen-gotemplate/examples/go-kit/services/session/gen/endpoints" |  | ||||||
| 	pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/session/gen/pb" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| func New(conn *grpc.ClientConn, logger log.Logger) pb.SessionServiceServer { |  | ||||||
|  |  | ||||||
| 	var loginEndpoint endpoint.Endpoint |  | ||||||
| 	{ |  | ||||||
| 		loginEndpoint = grpctransport.NewClient( |  | ||||||
| 			conn, |  | ||||||
| 			"session.SessionService", |  | ||||||
| 			"Login", |  | ||||||
| 			EncodeLoginRequest, |  | ||||||
| 			DecodeLoginResponse, |  | ||||||
| 			pb.LoginResponse{}, |  | ||||||
| 			append([]grpctransport.ClientOption{}, grpctransport.ClientBefore(jwt.FromGRPCContext()))..., |  | ||||||
| 		).Endpoint() |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	return &endpoints.Endpoints{ |  | ||||||
|  |  | ||||||
| 		LoginEndpoint: loginEndpoint, |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func EncodeLoginRequest(_ context.Context, request interface{}) (interface{}, error) { |  | ||||||
| 	req := request.(*pb.LoginRequest) |  | ||||||
| 	return req, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func DecodeLoginResponse(_ context.Context, grpcResponse interface{}) (interface{}, error) { |  | ||||||
| 	response := grpcResponse.(*pb.LoginResponse) |  | ||||||
| 	return response, nil |  | ||||||
| } |  | ||||||
| @@ -1,46 +0,0 @@ | |||||||
| package session_endpoints |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	context "context" |  | ||||||
| 	"fmt" |  | ||||||
|  |  | ||||||
| 	"github.com/go-kit/kit/endpoint" |  | ||||||
| 	oldcontext "golang.org/x/net/context" |  | ||||||
| 	pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/session/gen/pb" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| var _ = endpoint.Chain |  | ||||||
| var _ = fmt.Errorf |  | ||||||
| var _ = context.Background |  | ||||||
|  |  | ||||||
| type StreamEndpoint func(server interface{}, req interface{}) (err error) |  | ||||||
|  |  | ||||||
| type Endpoints struct { |  | ||||||
| 	LoginEndpoint endpoint.Endpoint |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (e *Endpoints) Login(ctx oldcontext.Context, in *pb.LoginRequest) (*pb.LoginResponse, error) { |  | ||||||
| 	out, err := e.LoginEndpoint(ctx, in) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return &pb.LoginResponse{ErrMsg: err.Error()}, err |  | ||||||
| 	} |  | ||||||
| 	return out.(*pb.LoginResponse), err |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func MakeLoginEndpoint(svc pb.SessionServiceServer) endpoint.Endpoint { |  | ||||||
| 	return func(ctx context.Context, request interface{}) (interface{}, error) { |  | ||||||
| 		req := request.(*pb.LoginRequest) |  | ||||||
| 		rep, err := svc.Login(ctx, req) |  | ||||||
| 		if err != nil { |  | ||||||
| 			return &pb.LoginResponse{ErrMsg: err.Error()}, err |  | ||||||
| 		} |  | ||||||
| 		return rep, nil |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func MakeEndpoints(svc pb.SessionServiceServer) Endpoints { |  | ||||||
| 	return Endpoints{ |  | ||||||
|  |  | ||||||
| 		LoginEndpoint: MakeLoginEndpoint(svc), |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -1,178 +0,0 @@ | |||||||
| // Code generated by protoc-gen-go. |  | ||||||
| // source: services/session/session.proto |  | ||||||
| // DO NOT EDIT! |  | ||||||
|  |  | ||||||
| /* |  | ||||||
| Package session is a generated protocol buffer package. |  | ||||||
|  |  | ||||||
| It is generated from these files: |  | ||||||
| 	services/session/session.proto |  | ||||||
|  |  | ||||||
| It has these top-level messages: |  | ||||||
| 	LoginRequest |  | ||||||
| 	LoginResponse |  | ||||||
| */ |  | ||||||
| package session |  | ||||||
|  |  | ||||||
| import proto "github.com/golang/protobuf/proto" |  | ||||||
| import fmt "fmt" |  | ||||||
| import math "math" |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	context "golang.org/x/net/context" |  | ||||||
| 	grpc "google.golang.org/grpc" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| // Reference imports to suppress errors if they are not otherwise used. |  | ||||||
| var _ = proto.Marshal |  | ||||||
| var _ = fmt.Errorf |  | ||||||
| var _ = math.Inf |  | ||||||
|  |  | ||||||
| // This is a compile-time assertion to ensure that this generated file |  | ||||||
| // is compatible with the proto package it is being compiled against. |  | ||||||
| // A compilation error at this line likely means your copy of the |  | ||||||
| // proto package needs to be updated. |  | ||||||
| const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package |  | ||||||
|  |  | ||||||
| type LoginRequest struct { |  | ||||||
| 	Username string `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"` |  | ||||||
| 	Password string `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *LoginRequest) Reset()                    { *m = LoginRequest{} } |  | ||||||
| func (m *LoginRequest) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*LoginRequest) ProtoMessage()               {} |  | ||||||
| func (*LoginRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } |  | ||||||
|  |  | ||||||
| func (m *LoginRequest) GetUsername() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Username |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *LoginRequest) GetPassword() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Password |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type LoginResponse struct { |  | ||||||
| 	Token  string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` |  | ||||||
| 	ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg" json:"err_msg,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *LoginResponse) Reset()                    { *m = LoginResponse{} } |  | ||||||
| func (m *LoginResponse) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*LoginResponse) ProtoMessage()               {} |  | ||||||
| func (*LoginResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } |  | ||||||
|  |  | ||||||
| func (m *LoginResponse) GetToken() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Token |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *LoginResponse) GetErrMsg() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.ErrMsg |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func init() { |  | ||||||
| 	proto.RegisterType((*LoginRequest)(nil), "session.LoginRequest") |  | ||||||
| 	proto.RegisterType((*LoginResponse)(nil), "session.LoginResponse") |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // Reference imports to suppress errors if they are not otherwise used. |  | ||||||
| var _ context.Context |  | ||||||
| var _ grpc.ClientConn |  | ||||||
|  |  | ||||||
| // This is a compile-time assertion to ensure that this generated file |  | ||||||
| // is compatible with the grpc package it is being compiled against. |  | ||||||
| const _ = grpc.SupportPackageIsVersion4 |  | ||||||
|  |  | ||||||
| // Client API for SessionService service |  | ||||||
|  |  | ||||||
| type SessionServiceClient interface { |  | ||||||
| 	Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type sessionServiceClient struct { |  | ||||||
| 	cc *grpc.ClientConn |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func NewSessionServiceClient(cc *grpc.ClientConn) SessionServiceClient { |  | ||||||
| 	return &sessionServiceClient{cc} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (c *sessionServiceClient) Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error) { |  | ||||||
| 	out := new(LoginResponse) |  | ||||||
| 	err := grpc.Invoke(ctx, "/session.SessionService/Login", in, out, c.cc, opts...) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return out, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // Server API for SessionService service |  | ||||||
|  |  | ||||||
| type SessionServiceServer interface { |  | ||||||
| 	Login(context.Context, *LoginRequest) (*LoginResponse, error) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func RegisterSessionServiceServer(s *grpc.Server, srv SessionServiceServer) { |  | ||||||
| 	s.RegisterService(&_SessionService_serviceDesc, srv) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func _SessionService_Login_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |  | ||||||
| 	in := new(LoginRequest) |  | ||||||
| 	if err := dec(in); err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	if interceptor == nil { |  | ||||||
| 		return srv.(SessionServiceServer).Login(ctx, in) |  | ||||||
| 	} |  | ||||||
| 	info := &grpc.UnaryServerInfo{ |  | ||||||
| 		Server:     srv, |  | ||||||
| 		FullMethod: "/session.SessionService/Login", |  | ||||||
| 	} |  | ||||||
| 	handler := func(ctx context.Context, req interface{}) (interface{}, error) { |  | ||||||
| 		return srv.(SessionServiceServer).Login(ctx, req.(*LoginRequest)) |  | ||||||
| 	} |  | ||||||
| 	return interceptor(ctx, in, info, handler) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| var _SessionService_serviceDesc = grpc.ServiceDesc{ |  | ||||||
| 	ServiceName: "session.SessionService", |  | ||||||
| 	HandlerType: (*SessionServiceServer)(nil), |  | ||||||
| 	Methods: []grpc.MethodDesc{ |  | ||||||
| 		{ |  | ||||||
| 			MethodName: "Login", |  | ||||||
| 			Handler:    _SessionService_Login_Handler, |  | ||||||
| 		}, |  | ||||||
| 	}, |  | ||||||
| 	Streams:  []grpc.StreamDesc{}, |  | ||||||
| 	Metadata: "services/session/session.proto", |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func init() { proto.RegisterFile("services/session/session.proto", fileDescriptor0) } |  | ||||||
|  |  | ||||||
| var fileDescriptor0 = []byte{ |  | ||||||
| 	// 188 bytes of a gzipped FileDescriptorProto |  | ||||||
| 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x92, 0x2b, 0x4e, 0x2d, 0x2a, |  | ||||||
| 	0xcb, 0x4c, 0x4e, 0x2d, 0xd6, 0x2f, 0x4e, 0x2d, 0x2e, 0xce, 0xcc, 0xcf, 0x83, 0xd1, 0x7a, 0x05, |  | ||||||
| 	0x45, 0xf9, 0x25, 0xf9, 0x42, 0xec, 0x50, 0xae, 0x92, 0x1b, 0x17, 0x8f, 0x4f, 0x7e, 0x7a, 0x66, |  | ||||||
| 	0x5e, 0x50, 0x6a, 0x61, 0x69, 0x6a, 0x71, 0x89, 0x90, 0x14, 0x17, 0x47, 0x69, 0x71, 0x6a, 0x51, |  | ||||||
| 	0x5e, 0x62, 0x6e, 0xaa, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x67, 0x10, 0x9c, 0x0f, 0x92, 0x2b, 0x48, |  | ||||||
| 	0x2c, 0x2e, 0x2e, 0xcf, 0x2f, 0x4a, 0x91, 0x60, 0x82, 0xc8, 0xc1, 0xf8, 0x4a, 0x76, 0x5c, 0xbc, |  | ||||||
| 	0x50, 0x73, 0x8a, 0x0b, 0xf2, 0xf3, 0x8a, 0x53, 0x85, 0x44, 0xb8, 0x58, 0x4b, 0xf2, 0xb3, 0x53, |  | ||||||
| 	0xf3, 0xa0, 0xa6, 0x40, 0x38, 0x42, 0xe2, 0x5c, 0xec, 0xa9, 0x45, 0x45, 0xf1, 0xb9, 0xc5, 0xe9, |  | ||||||
| 	0x50, 0x13, 0xd8, 0x52, 0x8b, 0x8a, 0x7c, 0x8b, 0xd3, 0x8d, 0xbc, 0xb8, 0xf8, 0x82, 0x21, 0x4e, |  | ||||||
| 	0x0a, 0x86, 0xb8, 0x5c, 0xc8, 0x82, 0x8b, 0x15, 0x6c, 0xa2, 0x90, 0xa8, 0x1e, 0xcc, 0xed, 0xc8, |  | ||||||
| 	0x2e, 0x95, 0x12, 0x43, 0x17, 0x86, 0x58, 0xac, 0xc4, 0x90, 0xc4, 0x06, 0xf6, 0xa3, 0x31, 0x20, |  | ||||||
| 	0x00, 0x00, 0xff, 0xff, 0x29, 0x3f, 0x91, 0xc7, 0x05, 0x01, 0x00, 0x00, |  | ||||||
| } |  | ||||||
| @@ -1,65 +0,0 @@ | |||||||
| package session_grpctransport |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	context "context" |  | ||||||
| 	"fmt" |  | ||||||
|  |  | ||||||
| 	grpctransport "github.com/go-kit/kit/transport/grpc" |  | ||||||
| 	oldcontext "golang.org/x/net/context" |  | ||||||
|  |  | ||||||
| 	endpoints "moul.io/protoc-gen-gotemplate/examples/go-kit/services/session/gen/endpoints" |  | ||||||
| 	pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/session/gen/pb" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| // avoid import errors |  | ||||||
| var _ = fmt.Errorf |  | ||||||
|  |  | ||||||
| func MakeGRPCServer(endpoints endpoints.Endpoints) pb.SessionServiceServer { |  | ||||||
| 	var options []grpctransport.ServerOption |  | ||||||
| 	_ = options |  | ||||||
| 	return &grpcServer{ |  | ||||||
|  |  | ||||||
| 		login: grpctransport.NewServer( |  | ||||||
| 			endpoints.LoginEndpoint, |  | ||||||
| 			decodeRequest, |  | ||||||
| 			encodeLoginResponse, |  | ||||||
| 			options..., |  | ||||||
| 		), |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type grpcServer struct { |  | ||||||
| 	login grpctransport.Handler |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (s *grpcServer) Login(ctx oldcontext.Context, req *pb.LoginRequest) (*pb.LoginResponse, error) { |  | ||||||
| 	_, rep, err := s.login.ServeGRPC(ctx, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return rep.(*pb.LoginResponse), nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func encodeLoginResponse(ctx context.Context, response interface{}) (interface{}, error) { |  | ||||||
| 	resp := response.(*pb.LoginResponse) |  | ||||||
| 	return resp, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func decodeRequest(ctx context.Context, grpcReq interface{}) (interface{}, error) { |  | ||||||
| 	return grpcReq, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type streamHandler interface { |  | ||||||
| 	Do(server interface{}, req interface{}) (err error) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type server struct { |  | ||||||
| 	e endpoints.StreamEndpoint |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (s server) Do(server interface{}, req interface{}) (err error) { |  | ||||||
| 	if err := s.e(server, req); err != nil { |  | ||||||
| 		return err |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| @@ -1,46 +0,0 @@ | |||||||
| package session_httptransport |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"encoding/json" |  | ||||||
| 	"log" |  | ||||||
| 	"net/http" |  | ||||||
|  |  | ||||||
| 	gokit_endpoint "github.com/go-kit/kit/endpoint" |  | ||||||
| 	httptransport "github.com/go-kit/kit/transport/http" |  | ||||||
| 	endpoints "moul.io/protoc-gen-gotemplate/examples/go-kit/services/session/gen/endpoints" |  | ||||||
| 	pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/session/gen/pb" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| var _ = log.Printf |  | ||||||
| var _ = gokit_endpoint.Chain |  | ||||||
| var _ = httptransport.NewClient |  | ||||||
|  |  | ||||||
| func MakeLoginHandler(svc pb.SessionServiceServer, endpoint gokit_endpoint.Endpoint) *httptransport.Server { |  | ||||||
| 	return httptransport.NewServer( |  | ||||||
| 		endpoint, |  | ||||||
| 		decodeLoginRequest, |  | ||||||
| 		encodeResponse, |  | ||||||
| 		[]httptransport.ServerOption{}..., |  | ||||||
| 	) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func decodeLoginRequest(ctx context.Context, r *http.Request) (interface{}, error) { |  | ||||||
| 	var req pb.LoginRequest |  | ||||||
| 	if err := json.NewDecoder(r.Body).Decode(&req); err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return &req, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func encodeResponse(ctx context.Context, w http.ResponseWriter, response interface{}) error { |  | ||||||
| 	return json.NewEncoder(w).Encode(response) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func RegisterHandlers(svc pb.SessionServiceServer, mux *http.ServeMux, endpoints endpoints.Endpoints) error { |  | ||||||
|  |  | ||||||
| 	log.Println("new HTTP endpoint: \"/Login\" (service=Session)") |  | ||||||
| 	mux.Handle("/Login", MakeLoginHandler(svc, endpoints.LoginEndpoint)) |  | ||||||
|  |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| @@ -1,19 +0,0 @@ | |||||||
| package sessionsvc |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"fmt" |  | ||||||
|  |  | ||||||
| 	"golang.org/x/net/context" |  | ||||||
|  |  | ||||||
| 	pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/session/gen/pb" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| type Service struct{} |  | ||||||
|  |  | ||||||
| func New() pb.SessionServiceServer { |  | ||||||
| 	return &Service{} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (svc *Service) Login(ctx context.Context, in *pb.LoginRequest) (*pb.LoginResponse, error) { |  | ||||||
| 	return nil, fmt.Errorf("not implemented") |  | ||||||
| } |  | ||||||
| @@ -1,17 +0,0 @@ | |||||||
| syntax = "proto3"; |  | ||||||
|  |  | ||||||
| package session; |  | ||||||
|  |  | ||||||
| service SessionService { |  | ||||||
|   rpc Login(LoginRequest) returns (LoginResponse) {} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message LoginRequest { |  | ||||||
|   string username = 1; |  | ||||||
|   string password = 2; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message LoginResponse { |  | ||||||
|   string token = 1; |  | ||||||
|   string err_msg = 2; |  | ||||||
| } |  | ||||||
| @@ -1,95 +0,0 @@ | |||||||
| package sprint_clientgrpc |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	context "context" |  | ||||||
|  |  | ||||||
| 	jwt "github.com/go-kit/kit/auth/jwt" |  | ||||||
| 	"github.com/go-kit/kit/endpoint" |  | ||||||
| 	"github.com/go-kit/kit/log" |  | ||||||
| 	grpctransport "github.com/go-kit/kit/transport/grpc" |  | ||||||
| 	"google.golang.org/grpc" |  | ||||||
|  |  | ||||||
| 	endpoints "moul.io/protoc-gen-gotemplate/examples/go-kit/services/sprint/gen/endpoints" |  | ||||||
| 	pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/sprint/gen/pb" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| func New(conn *grpc.ClientConn, logger log.Logger) pb.SprintServiceServer { |  | ||||||
|  |  | ||||||
| 	var addsprintEndpoint endpoint.Endpoint |  | ||||||
| 	{ |  | ||||||
| 		addsprintEndpoint = grpctransport.NewClient( |  | ||||||
| 			conn, |  | ||||||
| 			"sprint.SprintService", |  | ||||||
| 			"AddSprint", |  | ||||||
| 			EncodeAddSprintRequest, |  | ||||||
| 			DecodeAddSprintResponse, |  | ||||||
| 			pb.AddSprintResponse{}, |  | ||||||
| 			append([]grpctransport.ClientOption{}, grpctransport.ClientBefore(jwt.FromGRPCContext()))..., |  | ||||||
| 		).Endpoint() |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	var closesprintEndpoint endpoint.Endpoint |  | ||||||
| 	{ |  | ||||||
| 		closesprintEndpoint = grpctransport.NewClient( |  | ||||||
| 			conn, |  | ||||||
| 			"sprint.SprintService", |  | ||||||
| 			"CloseSprint", |  | ||||||
| 			EncodeCloseSprintRequest, |  | ||||||
| 			DecodeCloseSprintResponse, |  | ||||||
| 			pb.CloseSprintResponse{}, |  | ||||||
| 			append([]grpctransport.ClientOption{}, grpctransport.ClientBefore(jwt.FromGRPCContext()))..., |  | ||||||
| 		).Endpoint() |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	var getsprintEndpoint endpoint.Endpoint |  | ||||||
| 	{ |  | ||||||
| 		getsprintEndpoint = grpctransport.NewClient( |  | ||||||
| 			conn, |  | ||||||
| 			"sprint.SprintService", |  | ||||||
| 			"GetSprint", |  | ||||||
| 			EncodeGetSprintRequest, |  | ||||||
| 			DecodeGetSprintResponse, |  | ||||||
| 			pb.GetSprintResponse{}, |  | ||||||
| 			append([]grpctransport.ClientOption{}, grpctransport.ClientBefore(jwt.FromGRPCContext()))..., |  | ||||||
| 		).Endpoint() |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	return &endpoints.Endpoints{ |  | ||||||
|  |  | ||||||
| 		AddSprintEndpoint: addsprintEndpoint, |  | ||||||
|  |  | ||||||
| 		CloseSprintEndpoint: closesprintEndpoint, |  | ||||||
|  |  | ||||||
| 		GetSprintEndpoint: getsprintEndpoint, |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func EncodeAddSprintRequest(_ context.Context, request interface{}) (interface{}, error) { |  | ||||||
| 	req := request.(*pb.AddSprintRequest) |  | ||||||
| 	return req, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func DecodeAddSprintResponse(_ context.Context, grpcResponse interface{}) (interface{}, error) { |  | ||||||
| 	response := grpcResponse.(*pb.AddSprintResponse) |  | ||||||
| 	return response, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func EncodeCloseSprintRequest(_ context.Context, request interface{}) (interface{}, error) { |  | ||||||
| 	req := request.(*pb.CloseSprintRequest) |  | ||||||
| 	return req, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func DecodeCloseSprintResponse(_ context.Context, grpcResponse interface{}) (interface{}, error) { |  | ||||||
| 	response := grpcResponse.(*pb.CloseSprintResponse) |  | ||||||
| 	return response, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func EncodeGetSprintRequest(_ context.Context, request interface{}) (interface{}, error) { |  | ||||||
| 	req := request.(*pb.GetSprintRequest) |  | ||||||
| 	return req, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func DecodeGetSprintResponse(_ context.Context, grpcResponse interface{}) (interface{}, error) { |  | ||||||
| 	response := grpcResponse.(*pb.GetSprintResponse) |  | ||||||
| 	return response, nil |  | ||||||
| } |  | ||||||
| @@ -1,92 +0,0 @@ | |||||||
| package sprint_endpoints |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	context "context" |  | ||||||
| 	"fmt" |  | ||||||
|  |  | ||||||
| 	"github.com/go-kit/kit/endpoint" |  | ||||||
| 	oldcontext "golang.org/x/net/context" |  | ||||||
| 	pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/sprint/gen/pb" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| var _ = endpoint.Chain |  | ||||||
| var _ = fmt.Errorf |  | ||||||
| var _ = context.Background |  | ||||||
|  |  | ||||||
| type StreamEndpoint func(server interface{}, req interface{}) (err error) |  | ||||||
|  |  | ||||||
| type Endpoints struct { |  | ||||||
| 	AddSprintEndpoint endpoint.Endpoint |  | ||||||
|  |  | ||||||
| 	CloseSprintEndpoint endpoint.Endpoint |  | ||||||
|  |  | ||||||
| 	GetSprintEndpoint endpoint.Endpoint |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (e *Endpoints) AddSprint(ctx oldcontext.Context, in *pb.AddSprintRequest) (*pb.AddSprintResponse, error) { |  | ||||||
| 	out, err := e.AddSprintEndpoint(ctx, in) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return &pb.AddSprintResponse{ErrMsg: err.Error()}, err |  | ||||||
| 	} |  | ||||||
| 	return out.(*pb.AddSprintResponse), err |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (e *Endpoints) CloseSprint(ctx oldcontext.Context, in *pb.CloseSprintRequest) (*pb.CloseSprintResponse, error) { |  | ||||||
| 	out, err := e.CloseSprintEndpoint(ctx, in) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return &pb.CloseSprintResponse{ErrMsg: err.Error()}, err |  | ||||||
| 	} |  | ||||||
| 	return out.(*pb.CloseSprintResponse), err |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (e *Endpoints) GetSprint(ctx oldcontext.Context, in *pb.GetSprintRequest) (*pb.GetSprintResponse, error) { |  | ||||||
| 	out, err := e.GetSprintEndpoint(ctx, in) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return &pb.GetSprintResponse{ErrMsg: err.Error()}, err |  | ||||||
| 	} |  | ||||||
| 	return out.(*pb.GetSprintResponse), err |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func MakeAddSprintEndpoint(svc pb.SprintServiceServer) endpoint.Endpoint { |  | ||||||
| 	return func(ctx context.Context, request interface{}) (interface{}, error) { |  | ||||||
| 		req := request.(*pb.AddSprintRequest) |  | ||||||
| 		rep, err := svc.AddSprint(ctx, req) |  | ||||||
| 		if err != nil { |  | ||||||
| 			return &pb.AddSprintResponse{ErrMsg: err.Error()}, err |  | ||||||
| 		} |  | ||||||
| 		return rep, nil |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func MakeCloseSprintEndpoint(svc pb.SprintServiceServer) endpoint.Endpoint { |  | ||||||
| 	return func(ctx context.Context, request interface{}) (interface{}, error) { |  | ||||||
| 		req := request.(*pb.CloseSprintRequest) |  | ||||||
| 		rep, err := svc.CloseSprint(ctx, req) |  | ||||||
| 		if err != nil { |  | ||||||
| 			return &pb.CloseSprintResponse{ErrMsg: err.Error()}, err |  | ||||||
| 		} |  | ||||||
| 		return rep, nil |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func MakeGetSprintEndpoint(svc pb.SprintServiceServer) endpoint.Endpoint { |  | ||||||
| 	return func(ctx context.Context, request interface{}) (interface{}, error) { |  | ||||||
| 		req := request.(*pb.GetSprintRequest) |  | ||||||
| 		rep, err := svc.GetSprint(ctx, req) |  | ||||||
| 		if err != nil { |  | ||||||
| 			return &pb.GetSprintResponse{ErrMsg: err.Error()}, err |  | ||||||
| 		} |  | ||||||
| 		return rep, nil |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func MakeEndpoints(svc pb.SprintServiceServer) Endpoints { |  | ||||||
| 	return Endpoints{ |  | ||||||
|  |  | ||||||
| 		AddSprintEndpoint: MakeAddSprintEndpoint(svc), |  | ||||||
|  |  | ||||||
| 		CloseSprintEndpoint: MakeCloseSprintEndpoint(svc), |  | ||||||
|  |  | ||||||
| 		GetSprintEndpoint: MakeGetSprintEndpoint(svc), |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -1,357 +0,0 @@ | |||||||
| // Code generated by protoc-gen-go. |  | ||||||
| // source: services/sprint/sprint.proto |  | ||||||
| // DO NOT EDIT! |  | ||||||
|  |  | ||||||
| /* |  | ||||||
| Package sprint is a generated protocol buffer package. |  | ||||||
|  |  | ||||||
| It is generated from these files: |  | ||||||
| 	services/sprint/sprint.proto |  | ||||||
|  |  | ||||||
| It has these top-level messages: |  | ||||||
| 	AddSprintRequest |  | ||||||
| 	AddSprintResponse |  | ||||||
| 	CloseSprintRequest |  | ||||||
| 	CloseSprintResponse |  | ||||||
| 	GetSprintRequest |  | ||||||
| 	GetSprintResponse |  | ||||||
| 	Sprint |  | ||||||
| */ |  | ||||||
| package sprint |  | ||||||
|  |  | ||||||
| import proto "github.com/golang/protobuf/proto" |  | ||||||
| import fmt "fmt" |  | ||||||
| import math "math" |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	context "golang.org/x/net/context" |  | ||||||
| 	grpc "google.golang.org/grpc" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| // Reference imports to suppress errors if they are not otherwise used. |  | ||||||
| var _ = proto.Marshal |  | ||||||
| var _ = fmt.Errorf |  | ||||||
| var _ = math.Inf |  | ||||||
|  |  | ||||||
| // This is a compile-time assertion to ensure that this generated file |  | ||||||
| // is compatible with the proto package it is being compiled against. |  | ||||||
| // A compilation error at this line likely means your copy of the |  | ||||||
| // proto package needs to be updated. |  | ||||||
| const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package |  | ||||||
|  |  | ||||||
| type AddSprintRequest struct { |  | ||||||
| 	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *AddSprintRequest) Reset()                    { *m = AddSprintRequest{} } |  | ||||||
| func (m *AddSprintRequest) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*AddSprintRequest) ProtoMessage()               {} |  | ||||||
| func (*AddSprintRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } |  | ||||||
|  |  | ||||||
| func (m *AddSprintRequest) GetName() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Name |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type AddSprintResponse struct { |  | ||||||
| 	Sprint *Sprint `protobuf:"bytes,1,opt,name=sprint" json:"sprint,omitempty"` |  | ||||||
| 	ErrMsg string  `protobuf:"bytes,2,opt,name=err_msg,json=errMsg" json:"err_msg,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *AddSprintResponse) Reset()                    { *m = AddSprintResponse{} } |  | ||||||
| func (m *AddSprintResponse) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*AddSprintResponse) ProtoMessage()               {} |  | ||||||
| func (*AddSprintResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } |  | ||||||
|  |  | ||||||
| func (m *AddSprintResponse) GetSprint() *Sprint { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Sprint |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *AddSprintResponse) GetErrMsg() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.ErrMsg |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type CloseSprintRequest struct { |  | ||||||
| 	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *CloseSprintRequest) Reset()                    { *m = CloseSprintRequest{} } |  | ||||||
| func (m *CloseSprintRequest) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*CloseSprintRequest) ProtoMessage()               {} |  | ||||||
| func (*CloseSprintRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } |  | ||||||
|  |  | ||||||
| func (m *CloseSprintRequest) GetId() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Id |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type CloseSprintResponse struct { |  | ||||||
| 	ErrMsg string `protobuf:"bytes,1,opt,name=err_msg,json=errMsg" json:"err_msg,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *CloseSprintResponse) Reset()                    { *m = CloseSprintResponse{} } |  | ||||||
| func (m *CloseSprintResponse) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*CloseSprintResponse) ProtoMessage()               {} |  | ||||||
| func (*CloseSprintResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } |  | ||||||
|  |  | ||||||
| func (m *CloseSprintResponse) GetErrMsg() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.ErrMsg |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type GetSprintRequest struct { |  | ||||||
| 	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *GetSprintRequest) Reset()                    { *m = GetSprintRequest{} } |  | ||||||
| func (m *GetSprintRequest) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*GetSprintRequest) ProtoMessage()               {} |  | ||||||
| func (*GetSprintRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } |  | ||||||
|  |  | ||||||
| func (m *GetSprintRequest) GetId() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Id |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type GetSprintResponse struct { |  | ||||||
| 	Sprint *Sprint `protobuf:"bytes,1,opt,name=sprint" json:"sprint,omitempty"` |  | ||||||
| 	ErrMsg string  `protobuf:"bytes,2,opt,name=err_msg,json=errMsg" json:"err_msg,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *GetSprintResponse) Reset()                    { *m = GetSprintResponse{} } |  | ||||||
| func (m *GetSprintResponse) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*GetSprintResponse) ProtoMessage()               {} |  | ||||||
| func (*GetSprintResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } |  | ||||||
|  |  | ||||||
| func (m *GetSprintResponse) GetSprint() *Sprint { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Sprint |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *GetSprintResponse) GetErrMsg() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.ErrMsg |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type Sprint struct { |  | ||||||
| 	Id        string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` |  | ||||||
| 	CreatedAt uint32 `protobuf:"varint,2,opt,name=created_at,json=createdAt" json:"created_at,omitempty"` |  | ||||||
| 	Name      string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *Sprint) Reset()                    { *m = Sprint{} } |  | ||||||
| func (m *Sprint) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*Sprint) ProtoMessage()               {} |  | ||||||
| func (*Sprint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } |  | ||||||
|  |  | ||||||
| func (m *Sprint) GetId() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Id |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *Sprint) GetCreatedAt() uint32 { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.CreatedAt |  | ||||||
| 	} |  | ||||||
| 	return 0 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *Sprint) GetName() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Name |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func init() { |  | ||||||
| 	proto.RegisterType((*AddSprintRequest)(nil), "sprint.AddSprintRequest") |  | ||||||
| 	proto.RegisterType((*AddSprintResponse)(nil), "sprint.AddSprintResponse") |  | ||||||
| 	proto.RegisterType((*CloseSprintRequest)(nil), "sprint.CloseSprintRequest") |  | ||||||
| 	proto.RegisterType((*CloseSprintResponse)(nil), "sprint.CloseSprintResponse") |  | ||||||
| 	proto.RegisterType((*GetSprintRequest)(nil), "sprint.GetSprintRequest") |  | ||||||
| 	proto.RegisterType((*GetSprintResponse)(nil), "sprint.GetSprintResponse") |  | ||||||
| 	proto.RegisterType((*Sprint)(nil), "sprint.Sprint") |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // Reference imports to suppress errors if they are not otherwise used. |  | ||||||
| var _ context.Context |  | ||||||
| var _ grpc.ClientConn |  | ||||||
|  |  | ||||||
| // This is a compile-time assertion to ensure that this generated file |  | ||||||
| // is compatible with the grpc package it is being compiled against. |  | ||||||
| const _ = grpc.SupportPackageIsVersion4 |  | ||||||
|  |  | ||||||
| // Client API for SprintService service |  | ||||||
|  |  | ||||||
| type SprintServiceClient interface { |  | ||||||
| 	AddSprint(ctx context.Context, in *AddSprintRequest, opts ...grpc.CallOption) (*AddSprintResponse, error) |  | ||||||
| 	CloseSprint(ctx context.Context, in *CloseSprintRequest, opts ...grpc.CallOption) (*CloseSprintResponse, error) |  | ||||||
| 	GetSprint(ctx context.Context, in *GetSprintRequest, opts ...grpc.CallOption) (*GetSprintResponse, error) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type sprintServiceClient struct { |  | ||||||
| 	cc *grpc.ClientConn |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func NewSprintServiceClient(cc *grpc.ClientConn) SprintServiceClient { |  | ||||||
| 	return &sprintServiceClient{cc} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (c *sprintServiceClient) AddSprint(ctx context.Context, in *AddSprintRequest, opts ...grpc.CallOption) (*AddSprintResponse, error) { |  | ||||||
| 	out := new(AddSprintResponse) |  | ||||||
| 	err := grpc.Invoke(ctx, "/sprint.SprintService/AddSprint", in, out, c.cc, opts...) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return out, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (c *sprintServiceClient) CloseSprint(ctx context.Context, in *CloseSprintRequest, opts ...grpc.CallOption) (*CloseSprintResponse, error) { |  | ||||||
| 	out := new(CloseSprintResponse) |  | ||||||
| 	err := grpc.Invoke(ctx, "/sprint.SprintService/CloseSprint", in, out, c.cc, opts...) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return out, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (c *sprintServiceClient) GetSprint(ctx context.Context, in *GetSprintRequest, opts ...grpc.CallOption) (*GetSprintResponse, error) { |  | ||||||
| 	out := new(GetSprintResponse) |  | ||||||
| 	err := grpc.Invoke(ctx, "/sprint.SprintService/GetSprint", in, out, c.cc, opts...) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return out, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // Server API for SprintService service |  | ||||||
|  |  | ||||||
| type SprintServiceServer interface { |  | ||||||
| 	AddSprint(context.Context, *AddSprintRequest) (*AddSprintResponse, error) |  | ||||||
| 	CloseSprint(context.Context, *CloseSprintRequest) (*CloseSprintResponse, error) |  | ||||||
| 	GetSprint(context.Context, *GetSprintRequest) (*GetSprintResponse, error) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func RegisterSprintServiceServer(s *grpc.Server, srv SprintServiceServer) { |  | ||||||
| 	s.RegisterService(&_SprintService_serviceDesc, srv) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func _SprintService_AddSprint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |  | ||||||
| 	in := new(AddSprintRequest) |  | ||||||
| 	if err := dec(in); err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	if interceptor == nil { |  | ||||||
| 		return srv.(SprintServiceServer).AddSprint(ctx, in) |  | ||||||
| 	} |  | ||||||
| 	info := &grpc.UnaryServerInfo{ |  | ||||||
| 		Server:     srv, |  | ||||||
| 		FullMethod: "/sprint.SprintService/AddSprint", |  | ||||||
| 	} |  | ||||||
| 	handler := func(ctx context.Context, req interface{}) (interface{}, error) { |  | ||||||
| 		return srv.(SprintServiceServer).AddSprint(ctx, req.(*AddSprintRequest)) |  | ||||||
| 	} |  | ||||||
| 	return interceptor(ctx, in, info, handler) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func _SprintService_CloseSprint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |  | ||||||
| 	in := new(CloseSprintRequest) |  | ||||||
| 	if err := dec(in); err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	if interceptor == nil { |  | ||||||
| 		return srv.(SprintServiceServer).CloseSprint(ctx, in) |  | ||||||
| 	} |  | ||||||
| 	info := &grpc.UnaryServerInfo{ |  | ||||||
| 		Server:     srv, |  | ||||||
| 		FullMethod: "/sprint.SprintService/CloseSprint", |  | ||||||
| 	} |  | ||||||
| 	handler := func(ctx context.Context, req interface{}) (interface{}, error) { |  | ||||||
| 		return srv.(SprintServiceServer).CloseSprint(ctx, req.(*CloseSprintRequest)) |  | ||||||
| 	} |  | ||||||
| 	return interceptor(ctx, in, info, handler) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func _SprintService_GetSprint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |  | ||||||
| 	in := new(GetSprintRequest) |  | ||||||
| 	if err := dec(in); err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	if interceptor == nil { |  | ||||||
| 		return srv.(SprintServiceServer).GetSprint(ctx, in) |  | ||||||
| 	} |  | ||||||
| 	info := &grpc.UnaryServerInfo{ |  | ||||||
| 		Server:     srv, |  | ||||||
| 		FullMethod: "/sprint.SprintService/GetSprint", |  | ||||||
| 	} |  | ||||||
| 	handler := func(ctx context.Context, req interface{}) (interface{}, error) { |  | ||||||
| 		return srv.(SprintServiceServer).GetSprint(ctx, req.(*GetSprintRequest)) |  | ||||||
| 	} |  | ||||||
| 	return interceptor(ctx, in, info, handler) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| var _SprintService_serviceDesc = grpc.ServiceDesc{ |  | ||||||
| 	ServiceName: "sprint.SprintService", |  | ||||||
| 	HandlerType: (*SprintServiceServer)(nil), |  | ||||||
| 	Methods: []grpc.MethodDesc{ |  | ||||||
| 		{ |  | ||||||
| 			MethodName: "AddSprint", |  | ||||||
| 			Handler:    _SprintService_AddSprint_Handler, |  | ||||||
| 		}, |  | ||||||
| 		{ |  | ||||||
| 			MethodName: "CloseSprint", |  | ||||||
| 			Handler:    _SprintService_CloseSprint_Handler, |  | ||||||
| 		}, |  | ||||||
| 		{ |  | ||||||
| 			MethodName: "GetSprint", |  | ||||||
| 			Handler:    _SprintService_GetSprint_Handler, |  | ||||||
| 		}, |  | ||||||
| 	}, |  | ||||||
| 	Streams:  []grpc.StreamDesc{}, |  | ||||||
| 	Metadata: "services/sprint/sprint.proto", |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func init() { proto.RegisterFile("services/sprint/sprint.proto", fileDescriptor0) } |  | ||||||
|  |  | ||||||
| var fileDescriptor0 = []byte{ |  | ||||||
| 	// 290 bytes of a gzipped FileDescriptorProto |  | ||||||
| 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x52, 0x4d, 0x4b, 0xc3, 0x40, |  | ||||||
| 	0x10, 0x6d, 0xaa, 0x44, 0x32, 0xa5, 0xa5, 0x1d, 0x0f, 0xc6, 0xa8, 0x20, 0x8b, 0x14, 0x4f, 0x11, |  | ||||||
| 	0xea, 0x2f, 0x68, 0x3d, 0x28, 0x88, 0x97, 0xb4, 0xf7, 0x12, 0xbb, 0x43, 0x09, 0xd8, 0x24, 0xee, |  | ||||||
| 	0xac, 0xfe, 0x5f, 0xff, 0x89, 0xb0, 0xbb, 0xcd, 0x57, 0x8b, 0x27, 0x4f, 0xc9, 0xec, 0xbc, 0x7d, |  | ||||||
| 	0x6f, 0xe6, 0xbd, 0x85, 0x6b, 0x26, 0xf5, 0x9d, 0x6d, 0x88, 0x1f, 0xb8, 0x54, 0x59, 0xae, 0xdd, |  | ||||||
| 	0x27, 0x2e, 0x55, 0xa1, 0x0b, 0xf4, 0x6d, 0x25, 0xa6, 0x30, 0x9e, 0x4b, 0xb9, 0x34, 0x45, 0x42, |  | ||||||
| 	0x9f, 0x5f, 0xc4, 0x1a, 0x11, 0x4e, 0xf3, 0x74, 0x47, 0xa1, 0x77, 0xeb, 0xdd, 0x07, 0x89, 0xf9, |  | ||||||
| 	0x17, 0x2b, 0x98, 0x34, 0x70, 0x5c, 0x16, 0x39, 0x13, 0x4e, 0xc1, 0xd1, 0x18, 0xe8, 0x60, 0x36, |  | ||||||
| 	0x8a, 0x9d, 0x86, 0xc3, 0xb9, 0x2e, 0x5e, 0xc0, 0x19, 0x29, 0xb5, 0xde, 0xf1, 0x36, 0xec, 0x1b, |  | ||||||
| 	0x4e, 0x9f, 0x94, 0x7a, 0xe3, 0xad, 0xb8, 0x03, 0x7c, 0xfa, 0x28, 0x98, 0xda, 0xfa, 0x23, 0xe8, |  | ||||||
| 	0x67, 0xd2, 0xa9, 0xf7, 0x33, 0x29, 0x62, 0x38, 0x6f, 0xa1, 0x9c, 0x7a, 0x83, 0xd5, 0x6b, 0xb1, |  | ||||||
| 	0x0a, 0x18, 0x3f, 0x93, 0xfe, 0x9b, 0x73, 0x05, 0x93, 0x06, 0xe6, 0xbf, 0xf6, 0x79, 0x05, 0xdf, |  | ||||||
| 	0x42, 0xbb, 0x7a, 0x78, 0x03, 0xb0, 0x51, 0x94, 0x6a, 0x92, 0xeb, 0x54, 0x9b, 0x5b, 0xc3, 0x24, |  | ||||||
| 	0x70, 0x27, 0xf3, 0xda, 0xf2, 0x93, 0xda, 0xf2, 0xd9, 0x8f, 0x07, 0x43, 0xcb, 0xb6, 0xb4, 0x49, |  | ||||||
| 	0xe2, 0x02, 0x82, 0x2a, 0x04, 0x0c, 0xf7, 0xc3, 0x75, 0xf3, 0x8b, 0x2e, 0x8f, 0x74, 0xec, 0x86, |  | ||||||
| 	0xa2, 0x87, 0x2f, 0x30, 0x68, 0x98, 0x89, 0xd1, 0x1e, 0x7b, 0x98, 0x43, 0x74, 0x75, 0xb4, 0x57, |  | ||||||
| 	0x31, 0x2d, 0x20, 0xa8, 0x2c, 0xac, 0xa7, 0xe9, 0x3a, 0x5f, 0x4f, 0x73, 0xe0, 0xb7, 0xe8, 0xbd, |  | ||||||
| 	0xfb, 0xe6, 0x35, 0x3e, 0xfe, 0x06, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x9e, 0xb2, 0x1e, 0xad, 0x02, |  | ||||||
| 	0x00, 0x00, |  | ||||||
| } |  | ||||||
| @@ -1,109 +0,0 @@ | |||||||
| package sprint_grpctransport |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	context "context" |  | ||||||
| 	"fmt" |  | ||||||
|  |  | ||||||
| 	grpctransport "github.com/go-kit/kit/transport/grpc" |  | ||||||
| 	oldcontext "golang.org/x/net/context" |  | ||||||
|  |  | ||||||
| 	endpoints "moul.io/protoc-gen-gotemplate/examples/go-kit/services/sprint/gen/endpoints" |  | ||||||
| 	pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/sprint/gen/pb" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| // avoid import errors |  | ||||||
| var _ = fmt.Errorf |  | ||||||
|  |  | ||||||
| func MakeGRPCServer(endpoints endpoints.Endpoints) pb.SprintServiceServer { |  | ||||||
| 	var options []grpctransport.ServerOption |  | ||||||
| 	_ = options |  | ||||||
| 	return &grpcServer{ |  | ||||||
|  |  | ||||||
| 		addsprint: grpctransport.NewServer( |  | ||||||
| 			endpoints.AddSprintEndpoint, |  | ||||||
| 			decodeRequest, |  | ||||||
| 			encodeAddSprintResponse, |  | ||||||
| 			options..., |  | ||||||
| 		), |  | ||||||
|  |  | ||||||
| 		closesprint: grpctransport.NewServer( |  | ||||||
| 			endpoints.CloseSprintEndpoint, |  | ||||||
| 			decodeRequest, |  | ||||||
| 			encodeCloseSprintResponse, |  | ||||||
| 			options..., |  | ||||||
| 		), |  | ||||||
|  |  | ||||||
| 		getsprint: grpctransport.NewServer( |  | ||||||
| 			endpoints.GetSprintEndpoint, |  | ||||||
| 			decodeRequest, |  | ||||||
| 			encodeGetSprintResponse, |  | ||||||
| 			options..., |  | ||||||
| 		), |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type grpcServer struct { |  | ||||||
| 	addsprint grpctransport.Handler |  | ||||||
|  |  | ||||||
| 	closesprint grpctransport.Handler |  | ||||||
|  |  | ||||||
| 	getsprint grpctransport.Handler |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (s *grpcServer) AddSprint(ctx oldcontext.Context, req *pb.AddSprintRequest) (*pb.AddSprintResponse, error) { |  | ||||||
| 	_, rep, err := s.addsprint.ServeGRPC(ctx, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return rep.(*pb.AddSprintResponse), nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func encodeAddSprintResponse(ctx context.Context, response interface{}) (interface{}, error) { |  | ||||||
| 	resp := response.(*pb.AddSprintResponse) |  | ||||||
| 	return resp, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (s *grpcServer) CloseSprint(ctx oldcontext.Context, req *pb.CloseSprintRequest) (*pb.CloseSprintResponse, error) { |  | ||||||
| 	_, rep, err := s.closesprint.ServeGRPC(ctx, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return rep.(*pb.CloseSprintResponse), nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func encodeCloseSprintResponse(ctx context.Context, response interface{}) (interface{}, error) { |  | ||||||
| 	resp := response.(*pb.CloseSprintResponse) |  | ||||||
| 	return resp, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (s *grpcServer) GetSprint(ctx oldcontext.Context, req *pb.GetSprintRequest) (*pb.GetSprintResponse, error) { |  | ||||||
| 	_, rep, err := s.getsprint.ServeGRPC(ctx, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return rep.(*pb.GetSprintResponse), nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func encodeGetSprintResponse(ctx context.Context, response interface{}) (interface{}, error) { |  | ||||||
| 	resp := response.(*pb.GetSprintResponse) |  | ||||||
| 	return resp, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func decodeRequest(ctx context.Context, grpcReq interface{}) (interface{}, error) { |  | ||||||
| 	return grpcReq, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type streamHandler interface { |  | ||||||
| 	Do(server interface{}, req interface{}) (err error) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type server struct { |  | ||||||
| 	e endpoints.StreamEndpoint |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (s server) Do(server interface{}, req interface{}) (err error) { |  | ||||||
| 	if err := s.e(server, req); err != nil { |  | ||||||
| 		return err |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| @@ -1,86 +0,0 @@ | |||||||
| package sprint_httptransport |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"encoding/json" |  | ||||||
| 	"log" |  | ||||||
| 	"net/http" |  | ||||||
|  |  | ||||||
| 	gokit_endpoint "github.com/go-kit/kit/endpoint" |  | ||||||
| 	httptransport "github.com/go-kit/kit/transport/http" |  | ||||||
| 	endpoints "moul.io/protoc-gen-gotemplate/examples/go-kit/services/sprint/gen/endpoints" |  | ||||||
| 	pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/sprint/gen/pb" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| var _ = log.Printf |  | ||||||
| var _ = gokit_endpoint.Chain |  | ||||||
| var _ = httptransport.NewClient |  | ||||||
|  |  | ||||||
| func MakeAddSprintHandler(svc pb.SprintServiceServer, endpoint gokit_endpoint.Endpoint) *httptransport.Server { |  | ||||||
| 	return httptransport.NewServer( |  | ||||||
| 		endpoint, |  | ||||||
| 		decodeAddSprintRequest, |  | ||||||
| 		encodeResponse, |  | ||||||
| 		[]httptransport.ServerOption{}..., |  | ||||||
| 	) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func decodeAddSprintRequest(ctx context.Context, r *http.Request) (interface{}, error) { |  | ||||||
| 	var req pb.AddSprintRequest |  | ||||||
| 	if err := json.NewDecoder(r.Body).Decode(&req); err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return &req, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func MakeCloseSprintHandler(svc pb.SprintServiceServer, endpoint gokit_endpoint.Endpoint) *httptransport.Server { |  | ||||||
| 	return httptransport.NewServer( |  | ||||||
| 		endpoint, |  | ||||||
| 		decodeCloseSprintRequest, |  | ||||||
| 		encodeResponse, |  | ||||||
| 		[]httptransport.ServerOption{}..., |  | ||||||
| 	) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func decodeCloseSprintRequest(ctx context.Context, r *http.Request) (interface{}, error) { |  | ||||||
| 	var req pb.CloseSprintRequest |  | ||||||
| 	if err := json.NewDecoder(r.Body).Decode(&req); err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return &req, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func MakeGetSprintHandler(svc pb.SprintServiceServer, endpoint gokit_endpoint.Endpoint) *httptransport.Server { |  | ||||||
| 	return httptransport.NewServer( |  | ||||||
| 		endpoint, |  | ||||||
| 		decodeGetSprintRequest, |  | ||||||
| 		encodeResponse, |  | ||||||
| 		[]httptransport.ServerOption{}..., |  | ||||||
| 	) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func decodeGetSprintRequest(ctx context.Context, r *http.Request) (interface{}, error) { |  | ||||||
| 	var req pb.GetSprintRequest |  | ||||||
| 	if err := json.NewDecoder(r.Body).Decode(&req); err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return &req, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func encodeResponse(ctx context.Context, w http.ResponseWriter, response interface{}) error { |  | ||||||
| 	return json.NewEncoder(w).Encode(response) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func RegisterHandlers(svc pb.SprintServiceServer, mux *http.ServeMux, endpoints endpoints.Endpoints) error { |  | ||||||
|  |  | ||||||
| 	log.Println("new HTTP endpoint: \"/AddSprint\" (service=Sprint)") |  | ||||||
| 	mux.Handle("/AddSprint", MakeAddSprintHandler(svc, endpoints.AddSprintEndpoint)) |  | ||||||
|  |  | ||||||
| 	log.Println("new HTTP endpoint: \"/CloseSprint\" (service=Sprint)") |  | ||||||
| 	mux.Handle("/CloseSprint", MakeCloseSprintHandler(svc, endpoints.CloseSprintEndpoint)) |  | ||||||
|  |  | ||||||
| 	log.Println("new HTTP endpoint: \"/GetSprint\" (service=Sprint)") |  | ||||||
| 	mux.Handle("/GetSprint", MakeGetSprintHandler(svc, endpoints.GetSprintEndpoint)) |  | ||||||
|  |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| @@ -1,27 +0,0 @@ | |||||||
| package sprintsvc |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"fmt" |  | ||||||
|  |  | ||||||
| 	"golang.org/x/net/context" |  | ||||||
|  |  | ||||||
| 	pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/sprint/gen/pb" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| type Service struct{} |  | ||||||
|  |  | ||||||
| func New() pb.SprintServiceServer { |  | ||||||
| 	return &Service{} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (svc *Service) AddSprint(ctx context.Context, in *pb.AddSprintRequest) (*pb.AddSprintResponse, error) { |  | ||||||
| 	return nil, fmt.Errorf("not implemented") |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (svc *Service) CloseSprint(ctx context.Context, in *pb.CloseSprintRequest) (*pb.CloseSprintResponse, error) { |  | ||||||
| 	return nil, fmt.Errorf("not implemented") |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (svc *Service) GetSprint(ctx context.Context, in *pb.GetSprintRequest) (*pb.GetSprintResponse, error) { |  | ||||||
| 	return nil, fmt.Errorf("not implemented") |  | ||||||
| } |  | ||||||
| @@ -1,38 +0,0 @@ | |||||||
| syntax = "proto3"; |  | ||||||
|  |  | ||||||
| package sprint; |  | ||||||
|  |  | ||||||
| service SprintService { |  | ||||||
|   rpc AddSprint(AddSprintRequest) returns (AddSprintResponse) {} |  | ||||||
|   rpc CloseSprint(CloseSprintRequest) returns (CloseSprintResponse) {} |  | ||||||
|   rpc GetSprint(GetSprintRequest) returns (GetSprintResponse) {} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message AddSprintRequest { |  | ||||||
|   string name = 1; |  | ||||||
| } |  | ||||||
| message AddSprintResponse { |  | ||||||
|   Sprint sprint = 1; |  | ||||||
|   string err_msg = 2; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message CloseSprintRequest { |  | ||||||
|   string id = 1; |  | ||||||
| } |  | ||||||
| message CloseSprintResponse { |  | ||||||
|   string err_msg = 1; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message GetSprintRequest { |  | ||||||
|   string id = 1; |  | ||||||
| } |  | ||||||
| message GetSprintResponse { |  | ||||||
|   Sprint sprint = 1; |  | ||||||
|   string err_msg = 2; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message Sprint { |  | ||||||
|   string id = 1; |  | ||||||
|   uint32 created_at = 2; |  | ||||||
|   string name = 3; |  | ||||||
| } |  | ||||||
| @@ -1,70 +0,0 @@ | |||||||
| package user_clientgrpc |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	context "context" |  | ||||||
|  |  | ||||||
| 	jwt "github.com/go-kit/kit/auth/jwt" |  | ||||||
| 	"github.com/go-kit/kit/endpoint" |  | ||||||
| 	"github.com/go-kit/kit/log" |  | ||||||
| 	grpctransport "github.com/go-kit/kit/transport/grpc" |  | ||||||
| 	"google.golang.org/grpc" |  | ||||||
|  |  | ||||||
| 	endpoints "moul.io/protoc-gen-gotemplate/examples/go-kit/services/user/gen/endpoints" |  | ||||||
| 	pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/user/gen/pb" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| func New(conn *grpc.ClientConn, logger log.Logger) pb.UserServiceServer { |  | ||||||
|  |  | ||||||
| 	var createuserEndpoint endpoint.Endpoint |  | ||||||
| 	{ |  | ||||||
| 		createuserEndpoint = grpctransport.NewClient( |  | ||||||
| 			conn, |  | ||||||
| 			"user.UserService", |  | ||||||
| 			"CreateUser", |  | ||||||
| 			EncodeCreateUserRequest, |  | ||||||
| 			DecodeCreateUserResponse, |  | ||||||
| 			pb.CreateUserResponse{}, |  | ||||||
| 			append([]grpctransport.ClientOption{}, grpctransport.ClientBefore(jwt.FromGRPCContext()))..., |  | ||||||
| 		).Endpoint() |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	var getuserEndpoint endpoint.Endpoint |  | ||||||
| 	{ |  | ||||||
| 		getuserEndpoint = grpctransport.NewClient( |  | ||||||
| 			conn, |  | ||||||
| 			"user.UserService", |  | ||||||
| 			"GetUser", |  | ||||||
| 			EncodeGetUserRequest, |  | ||||||
| 			DecodeGetUserResponse, |  | ||||||
| 			pb.GetUserResponse{}, |  | ||||||
| 			append([]grpctransport.ClientOption{}, grpctransport.ClientBefore(jwt.FromGRPCContext()))..., |  | ||||||
| 		).Endpoint() |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	return &endpoints.Endpoints{ |  | ||||||
|  |  | ||||||
| 		CreateUserEndpoint: createuserEndpoint, |  | ||||||
|  |  | ||||||
| 		GetUserEndpoint: getuserEndpoint, |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func EncodeCreateUserRequest(_ context.Context, request interface{}) (interface{}, error) { |  | ||||||
| 	req := request.(*pb.CreateUserRequest) |  | ||||||
| 	return req, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func DecodeCreateUserResponse(_ context.Context, grpcResponse interface{}) (interface{}, error) { |  | ||||||
| 	response := grpcResponse.(*pb.CreateUserResponse) |  | ||||||
| 	return response, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func EncodeGetUserRequest(_ context.Context, request interface{}) (interface{}, error) { |  | ||||||
| 	req := request.(*pb.GetUserRequest) |  | ||||||
| 	return req, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func DecodeGetUserResponse(_ context.Context, grpcResponse interface{}) (interface{}, error) { |  | ||||||
| 	response := grpcResponse.(*pb.GetUserResponse) |  | ||||||
| 	return response, nil |  | ||||||
| } |  | ||||||
| @@ -1,69 +0,0 @@ | |||||||
| package user_endpoints |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	context "context" |  | ||||||
| 	"fmt" |  | ||||||
|  |  | ||||||
| 	"github.com/go-kit/kit/endpoint" |  | ||||||
| 	oldcontext "golang.org/x/net/context" |  | ||||||
| 	pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/user/gen/pb" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| var _ = endpoint.Chain |  | ||||||
| var _ = fmt.Errorf |  | ||||||
| var _ = context.Background |  | ||||||
|  |  | ||||||
| type StreamEndpoint func(server interface{}, req interface{}) (err error) |  | ||||||
|  |  | ||||||
| type Endpoints struct { |  | ||||||
| 	CreateUserEndpoint endpoint.Endpoint |  | ||||||
|  |  | ||||||
| 	GetUserEndpoint endpoint.Endpoint |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (e *Endpoints) CreateUser(ctx oldcontext.Context, in *pb.CreateUserRequest) (*pb.CreateUserResponse, error) { |  | ||||||
| 	out, err := e.CreateUserEndpoint(ctx, in) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return &pb.CreateUserResponse{ErrMsg: err.Error()}, err |  | ||||||
| 	} |  | ||||||
| 	return out.(*pb.CreateUserResponse), err |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (e *Endpoints) GetUser(ctx oldcontext.Context, in *pb.GetUserRequest) (*pb.GetUserResponse, error) { |  | ||||||
| 	out, err := e.GetUserEndpoint(ctx, in) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return &pb.GetUserResponse{ErrMsg: err.Error()}, err |  | ||||||
| 	} |  | ||||||
| 	return out.(*pb.GetUserResponse), err |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func MakeCreateUserEndpoint(svc pb.UserServiceServer) endpoint.Endpoint { |  | ||||||
| 	return func(ctx context.Context, request interface{}) (interface{}, error) { |  | ||||||
| 		req := request.(*pb.CreateUserRequest) |  | ||||||
| 		rep, err := svc.CreateUser(ctx, req) |  | ||||||
| 		if err != nil { |  | ||||||
| 			return &pb.CreateUserResponse{ErrMsg: err.Error()}, err |  | ||||||
| 		} |  | ||||||
| 		return rep, nil |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func MakeGetUserEndpoint(svc pb.UserServiceServer) endpoint.Endpoint { |  | ||||||
| 	return func(ctx context.Context, request interface{}) (interface{}, error) { |  | ||||||
| 		req := request.(*pb.GetUserRequest) |  | ||||||
| 		rep, err := svc.GetUser(ctx, req) |  | ||||||
| 		if err != nil { |  | ||||||
| 			return &pb.GetUserResponse{ErrMsg: err.Error()}, err |  | ||||||
| 		} |  | ||||||
| 		return rep, nil |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func MakeEndpoints(svc pb.UserServiceServer) Endpoints { |  | ||||||
| 	return Endpoints{ |  | ||||||
|  |  | ||||||
| 		CreateUserEndpoint: MakeCreateUserEndpoint(svc), |  | ||||||
|  |  | ||||||
| 		GetUserEndpoint: MakeGetUserEndpoint(svc), |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -1,276 +0,0 @@ | |||||||
| // Code generated by protoc-gen-go. |  | ||||||
| // source: services/user/user.proto |  | ||||||
| // DO NOT EDIT! |  | ||||||
|  |  | ||||||
| /* |  | ||||||
| Package user is a generated protocol buffer package. |  | ||||||
|  |  | ||||||
| It is generated from these files: |  | ||||||
| 	services/user/user.proto |  | ||||||
|  |  | ||||||
| It has these top-level messages: |  | ||||||
| 	CreateUserRequest |  | ||||||
| 	CreateUserResponse |  | ||||||
| 	GetUserRequest |  | ||||||
| 	GetUserResponse |  | ||||||
| 	User |  | ||||||
| */ |  | ||||||
| package user |  | ||||||
|  |  | ||||||
| import proto "github.com/golang/protobuf/proto" |  | ||||||
| import fmt "fmt" |  | ||||||
| import math "math" |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	context "golang.org/x/net/context" |  | ||||||
| 	grpc "google.golang.org/grpc" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| // Reference imports to suppress errors if they are not otherwise used. |  | ||||||
| var _ = proto.Marshal |  | ||||||
| var _ = fmt.Errorf |  | ||||||
| var _ = math.Inf |  | ||||||
|  |  | ||||||
| // This is a compile-time assertion to ensure that this generated file |  | ||||||
| // is compatible with the proto package it is being compiled against. |  | ||||||
| // A compilation error at this line likely means your copy of the |  | ||||||
| // proto package needs to be updated. |  | ||||||
| const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package |  | ||||||
|  |  | ||||||
| type CreateUserRequest struct { |  | ||||||
| 	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *CreateUserRequest) Reset()                    { *m = CreateUserRequest{} } |  | ||||||
| func (m *CreateUserRequest) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*CreateUserRequest) ProtoMessage()               {} |  | ||||||
| func (*CreateUserRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } |  | ||||||
|  |  | ||||||
| func (m *CreateUserRequest) GetName() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Name |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type CreateUserResponse struct { |  | ||||||
| 	User   *User  `protobuf:"bytes,1,opt,name=user" json:"user,omitempty"` |  | ||||||
| 	ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg" json:"err_msg,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *CreateUserResponse) Reset()                    { *m = CreateUserResponse{} } |  | ||||||
| func (m *CreateUserResponse) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*CreateUserResponse) ProtoMessage()               {} |  | ||||||
| func (*CreateUserResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } |  | ||||||
|  |  | ||||||
| func (m *CreateUserResponse) GetUser() *User { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.User |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *CreateUserResponse) GetErrMsg() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.ErrMsg |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type GetUserRequest struct { |  | ||||||
| 	Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *GetUserRequest) Reset()                    { *m = GetUserRequest{} } |  | ||||||
| func (m *GetUserRequest) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*GetUserRequest) ProtoMessage()               {} |  | ||||||
| func (*GetUserRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } |  | ||||||
|  |  | ||||||
| func (m *GetUserRequest) GetId() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Id |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type GetUserResponse struct { |  | ||||||
| 	User   *User  `protobuf:"bytes,1,opt,name=user" json:"user,omitempty"` |  | ||||||
| 	ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg" json:"err_msg,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *GetUserResponse) Reset()                    { *m = GetUserResponse{} } |  | ||||||
| func (m *GetUserResponse) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*GetUserResponse) ProtoMessage()               {} |  | ||||||
| func (*GetUserResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } |  | ||||||
|  |  | ||||||
| func (m *GetUserResponse) GetUser() *User { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.User |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *GetUserResponse) GetErrMsg() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.ErrMsg |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type User struct { |  | ||||||
| 	Id   string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` |  | ||||||
| 	Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *User) Reset()                    { *m = User{} } |  | ||||||
| func (m *User) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*User) ProtoMessage()               {} |  | ||||||
| func (*User) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } |  | ||||||
|  |  | ||||||
| func (m *User) GetId() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Id |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *User) GetName() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Name |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func init() { |  | ||||||
| 	proto.RegisterType((*CreateUserRequest)(nil), "user.CreateUserRequest") |  | ||||||
| 	proto.RegisterType((*CreateUserResponse)(nil), "user.CreateUserResponse") |  | ||||||
| 	proto.RegisterType((*GetUserRequest)(nil), "user.GetUserRequest") |  | ||||||
| 	proto.RegisterType((*GetUserResponse)(nil), "user.GetUserResponse") |  | ||||||
| 	proto.RegisterType((*User)(nil), "user.User") |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // Reference imports to suppress errors if they are not otherwise used. |  | ||||||
| var _ context.Context |  | ||||||
| var _ grpc.ClientConn |  | ||||||
|  |  | ||||||
| // This is a compile-time assertion to ensure that this generated file |  | ||||||
| // is compatible with the grpc package it is being compiled against. |  | ||||||
| const _ = grpc.SupportPackageIsVersion4 |  | ||||||
|  |  | ||||||
| // Client API for UserService service |  | ||||||
|  |  | ||||||
| type UserServiceClient interface { |  | ||||||
| 	CreateUser(ctx context.Context, in *CreateUserRequest, opts ...grpc.CallOption) (*CreateUserResponse, error) |  | ||||||
| 	GetUser(ctx context.Context, in *GetUserRequest, opts ...grpc.CallOption) (*GetUserResponse, error) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type userServiceClient struct { |  | ||||||
| 	cc *grpc.ClientConn |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func NewUserServiceClient(cc *grpc.ClientConn) UserServiceClient { |  | ||||||
| 	return &userServiceClient{cc} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (c *userServiceClient) CreateUser(ctx context.Context, in *CreateUserRequest, opts ...grpc.CallOption) (*CreateUserResponse, error) { |  | ||||||
| 	out := new(CreateUserResponse) |  | ||||||
| 	err := grpc.Invoke(ctx, "/user.UserService/CreateUser", in, out, c.cc, opts...) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return out, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (c *userServiceClient) GetUser(ctx context.Context, in *GetUserRequest, opts ...grpc.CallOption) (*GetUserResponse, error) { |  | ||||||
| 	out := new(GetUserResponse) |  | ||||||
| 	err := grpc.Invoke(ctx, "/user.UserService/GetUser", in, out, c.cc, opts...) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return out, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // Server API for UserService service |  | ||||||
|  |  | ||||||
| type UserServiceServer interface { |  | ||||||
| 	CreateUser(context.Context, *CreateUserRequest) (*CreateUserResponse, error) |  | ||||||
| 	GetUser(context.Context, *GetUserRequest) (*GetUserResponse, error) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func RegisterUserServiceServer(s *grpc.Server, srv UserServiceServer) { |  | ||||||
| 	s.RegisterService(&_UserService_serviceDesc, srv) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func _UserService_CreateUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |  | ||||||
| 	in := new(CreateUserRequest) |  | ||||||
| 	if err := dec(in); err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	if interceptor == nil { |  | ||||||
| 		return srv.(UserServiceServer).CreateUser(ctx, in) |  | ||||||
| 	} |  | ||||||
| 	info := &grpc.UnaryServerInfo{ |  | ||||||
| 		Server:     srv, |  | ||||||
| 		FullMethod: "/user.UserService/CreateUser", |  | ||||||
| 	} |  | ||||||
| 	handler := func(ctx context.Context, req interface{}) (interface{}, error) { |  | ||||||
| 		return srv.(UserServiceServer).CreateUser(ctx, req.(*CreateUserRequest)) |  | ||||||
| 	} |  | ||||||
| 	return interceptor(ctx, in, info, handler) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func _UserService_GetUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |  | ||||||
| 	in := new(GetUserRequest) |  | ||||||
| 	if err := dec(in); err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	if interceptor == nil { |  | ||||||
| 		return srv.(UserServiceServer).GetUser(ctx, in) |  | ||||||
| 	} |  | ||||||
| 	info := &grpc.UnaryServerInfo{ |  | ||||||
| 		Server:     srv, |  | ||||||
| 		FullMethod: "/user.UserService/GetUser", |  | ||||||
| 	} |  | ||||||
| 	handler := func(ctx context.Context, req interface{}) (interface{}, error) { |  | ||||||
| 		return srv.(UserServiceServer).GetUser(ctx, req.(*GetUserRequest)) |  | ||||||
| 	} |  | ||||||
| 	return interceptor(ctx, in, info, handler) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| var _UserService_serviceDesc = grpc.ServiceDesc{ |  | ||||||
| 	ServiceName: "user.UserService", |  | ||||||
| 	HandlerType: (*UserServiceServer)(nil), |  | ||||||
| 	Methods: []grpc.MethodDesc{ |  | ||||||
| 		{ |  | ||||||
| 			MethodName: "CreateUser", |  | ||||||
| 			Handler:    _UserService_CreateUser_Handler, |  | ||||||
| 		}, |  | ||||||
| 		{ |  | ||||||
| 			MethodName: "GetUser", |  | ||||||
| 			Handler:    _UserService_GetUser_Handler, |  | ||||||
| 		}, |  | ||||||
| 	}, |  | ||||||
| 	Streams:  []grpc.StreamDesc{}, |  | ||||||
| 	Metadata: "services/user/user.proto", |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func init() { proto.RegisterFile("services/user/user.proto", fileDescriptor0) } |  | ||||||
|  |  | ||||||
| var fileDescriptor0 = []byte{ |  | ||||||
| 	// 236 bytes of a gzipped FileDescriptorProto |  | ||||||
| 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x92, 0x28, 0x4e, 0x2d, 0x2a, |  | ||||||
| 	0xcb, 0x4c, 0x4e, 0x2d, 0xd6, 0x2f, 0x2d, 0x4e, 0x2d, 0x02, 0x13, 0x7a, 0x05, 0x45, 0xf9, 0x25, |  | ||||||
| 	0xf9, 0x42, 0x2c, 0x20, 0xb6, 0x92, 0x3a, 0x97, 0xa0, 0x73, 0x51, 0x6a, 0x62, 0x49, 0x6a, 0x68, |  | ||||||
| 	0x71, 0x6a, 0x51, 0x50, 0x6a, 0x61, 0x69, 0x6a, 0x71, 0x89, 0x90, 0x10, 0x17, 0x4b, 0x5e, 0x62, |  | ||||||
| 	0x6e, 0xaa, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x67, 0x10, 0x98, 0xad, 0xe4, 0xcb, 0x25, 0x84, 0xac, |  | ||||||
| 	0xb0, 0xb8, 0x20, 0x3f, 0xaf, 0x38, 0x55, 0x48, 0x8e, 0x0b, 0x6c, 0x0c, 0x58, 0x25, 0xb7, 0x11, |  | ||||||
| 	0x97, 0x1e, 0xd8, 0x7c, 0xb0, 0x0a, 0xb0, 0xb8, 0x90, 0x38, 0x17, 0x7b, 0x6a, 0x51, 0x51, 0x7c, |  | ||||||
| 	0x6e, 0x71, 0xba, 0x04, 0x13, 0xd8, 0x30, 0xb6, 0xd4, 0xa2, 0x22, 0xdf, 0xe2, 0x74, 0x25, 0x05, |  | ||||||
| 	0x2e, 0x3e, 0xf7, 0xd4, 0x12, 0x64, 0x4b, 0xf9, 0xb8, 0x98, 0x32, 0x53, 0xa0, 0x56, 0x32, 0x65, |  | ||||||
| 	0xa6, 0x28, 0x79, 0x71, 0xf1, 0xc3, 0x55, 0x50, 0x6a, 0x9b, 0x16, 0x17, 0x0b, 0x48, 0x19, 0xba, |  | ||||||
| 	0x1d, 0x70, 0x8f, 0x32, 0x21, 0x3c, 0x6a, 0xd4, 0xc5, 0xc8, 0xc5, 0x0d, 0x52, 0x1c, 0x0c, 0x09, |  | ||||||
| 	0x38, 0x21, 0x47, 0x2e, 0x2e, 0x84, 0xc7, 0x85, 0xc4, 0x21, 0x96, 0x62, 0x84, 0x99, 0x94, 0x04, |  | ||||||
| 	0xa6, 0x04, 0xc4, 0xd5, 0x4a, 0x0c, 0x42, 0x16, 0x5c, 0xec, 0x50, 0xaf, 0x08, 0x89, 0x40, 0x94, |  | ||||||
| 	0xa1, 0xfa, 0x5d, 0x4a, 0x14, 0x4d, 0x14, 0xa6, 0x33, 0x89, 0x0d, 0x1c, 0x57, 0xc6, 0x80, 0x00, |  | ||||||
| 	0x00, 0x00, 0xff, 0xff, 0xce, 0xde, 0xa3, 0x2e, 0xc7, 0x01, 0x00, 0x00, |  | ||||||
| } |  | ||||||
| @@ -1,87 +0,0 @@ | |||||||
| package user_grpctransport |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	context "context" |  | ||||||
| 	"fmt" |  | ||||||
|  |  | ||||||
| 	grpctransport "github.com/go-kit/kit/transport/grpc" |  | ||||||
| 	oldcontext "golang.org/x/net/context" |  | ||||||
|  |  | ||||||
| 	endpoints "moul.io/protoc-gen-gotemplate/examples/go-kit/services/user/gen/endpoints" |  | ||||||
| 	pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/user/gen/pb" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| // avoid import errors |  | ||||||
| var _ = fmt.Errorf |  | ||||||
|  |  | ||||||
| func MakeGRPCServer(endpoints endpoints.Endpoints) pb.UserServiceServer { |  | ||||||
| 	var options []grpctransport.ServerOption |  | ||||||
| 	_ = options |  | ||||||
| 	return &grpcServer{ |  | ||||||
|  |  | ||||||
| 		createuser: grpctransport.NewServer( |  | ||||||
| 			endpoints.CreateUserEndpoint, |  | ||||||
| 			decodeRequest, |  | ||||||
| 			encodeCreateUserResponse, |  | ||||||
| 			options..., |  | ||||||
| 		), |  | ||||||
|  |  | ||||||
| 		getuser: grpctransport.NewServer( |  | ||||||
| 			endpoints.GetUserEndpoint, |  | ||||||
| 			decodeRequest, |  | ||||||
| 			encodeGetUserResponse, |  | ||||||
| 			options..., |  | ||||||
| 		), |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type grpcServer struct { |  | ||||||
| 	createuser grpctransport.Handler |  | ||||||
|  |  | ||||||
| 	getuser grpctransport.Handler |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (s *grpcServer) CreateUser(ctx oldcontext.Context, req *pb.CreateUserRequest) (*pb.CreateUserResponse, error) { |  | ||||||
| 	_, rep, err := s.createuser.ServeGRPC(ctx, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return rep.(*pb.CreateUserResponse), nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func encodeCreateUserResponse(ctx context.Context, response interface{}) (interface{}, error) { |  | ||||||
| 	resp := response.(*pb.CreateUserResponse) |  | ||||||
| 	return resp, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (s *grpcServer) GetUser(ctx oldcontext.Context, req *pb.GetUserRequest) (*pb.GetUserResponse, error) { |  | ||||||
| 	_, rep, err := s.getuser.ServeGRPC(ctx, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return rep.(*pb.GetUserResponse), nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func encodeGetUserResponse(ctx context.Context, response interface{}) (interface{}, error) { |  | ||||||
| 	resp := response.(*pb.GetUserResponse) |  | ||||||
| 	return resp, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func decodeRequest(ctx context.Context, grpcReq interface{}) (interface{}, error) { |  | ||||||
| 	return grpcReq, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type streamHandler interface { |  | ||||||
| 	Do(server interface{}, req interface{}) (err error) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type server struct { |  | ||||||
| 	e endpoints.StreamEndpoint |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (s server) Do(server interface{}, req interface{}) (err error) { |  | ||||||
| 	if err := s.e(server, req); err != nil { |  | ||||||
| 		return err |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| @@ -1,66 +0,0 @@ | |||||||
| package user_httptransport |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"encoding/json" |  | ||||||
| 	"log" |  | ||||||
| 	"net/http" |  | ||||||
|  |  | ||||||
| 	gokit_endpoint "github.com/go-kit/kit/endpoint" |  | ||||||
| 	httptransport "github.com/go-kit/kit/transport/http" |  | ||||||
| 	endpoints "moul.io/protoc-gen-gotemplate/examples/go-kit/services/user/gen/endpoints" |  | ||||||
| 	pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/user/gen/pb" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| var _ = log.Printf |  | ||||||
| var _ = gokit_endpoint.Chain |  | ||||||
| var _ = httptransport.NewClient |  | ||||||
|  |  | ||||||
| func MakeCreateUserHandler(svc pb.UserServiceServer, endpoint gokit_endpoint.Endpoint) *httptransport.Server { |  | ||||||
| 	return httptransport.NewServer( |  | ||||||
| 		endpoint, |  | ||||||
| 		decodeCreateUserRequest, |  | ||||||
| 		encodeResponse, |  | ||||||
| 		[]httptransport.ServerOption{}..., |  | ||||||
| 	) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func decodeCreateUserRequest(ctx context.Context, r *http.Request) (interface{}, error) { |  | ||||||
| 	var req pb.CreateUserRequest |  | ||||||
| 	if err := json.NewDecoder(r.Body).Decode(&req); err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return &req, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func MakeGetUserHandler(svc pb.UserServiceServer, endpoint gokit_endpoint.Endpoint) *httptransport.Server { |  | ||||||
| 	return httptransport.NewServer( |  | ||||||
| 		endpoint, |  | ||||||
| 		decodeGetUserRequest, |  | ||||||
| 		encodeResponse, |  | ||||||
| 		[]httptransport.ServerOption{}..., |  | ||||||
| 	) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func decodeGetUserRequest(ctx context.Context, r *http.Request) (interface{}, error) { |  | ||||||
| 	var req pb.GetUserRequest |  | ||||||
| 	if err := json.NewDecoder(r.Body).Decode(&req); err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	return &req, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func encodeResponse(ctx context.Context, w http.ResponseWriter, response interface{}) error { |  | ||||||
| 	return json.NewEncoder(w).Encode(response) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func RegisterHandlers(svc pb.UserServiceServer, mux *http.ServeMux, endpoints endpoints.Endpoints) error { |  | ||||||
|  |  | ||||||
| 	log.Println("new HTTP endpoint: \"/CreateUser\" (service=User)") |  | ||||||
| 	mux.Handle("/CreateUser", MakeCreateUserHandler(svc, endpoints.CreateUserEndpoint)) |  | ||||||
|  |  | ||||||
| 	log.Println("new HTTP endpoint: \"/GetUser\" (service=User)") |  | ||||||
| 	mux.Handle("/GetUser", MakeGetUserHandler(svc, endpoints.GetUserEndpoint)) |  | ||||||
|  |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| @@ -1,21 +0,0 @@ | |||||||
| package usersvc |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"fmt" |  | ||||||
|  |  | ||||||
| 	"golang.org/x/net/context" |  | ||||||
|  |  | ||||||
| 	pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/user/gen/pb" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| type Service struct{} |  | ||||||
|  |  | ||||||
| func New() pb.UserServiceServer { return &Service{} } |  | ||||||
|  |  | ||||||
| func (svc *Service) CreateUser(ctx context.Context, in *pb.CreateUserRequest) (*pb.CreateUserResponse, error) { |  | ||||||
| 	return nil, fmt.Errorf("not implemented") |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (svc *Service) GetUser(ctx context.Context, in *pb.GetUserRequest) (*pb.GetUserResponse, error) { |  | ||||||
| 	return nil, fmt.Errorf("not implemented") |  | ||||||
| } |  | ||||||
| @@ -1,29 +0,0 @@ | |||||||
| syntax = "proto3"; |  | ||||||
|  |  | ||||||
| package user; |  | ||||||
|  |  | ||||||
| service UserService { |  | ||||||
|   rpc CreateUser(CreateUserRequest) returns (CreateUserResponse) {} |  | ||||||
|   rpc GetUser(GetUserRequest) returns (GetUserResponse) {} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message CreateUserRequest { |  | ||||||
|   string name = 1; |  | ||||||
| } |  | ||||||
| message CreateUserResponse { |  | ||||||
|   User user = 1; |  | ||||||
|   string err_msg = 2; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message GetUserRequest { |  | ||||||
|   string id = 1; |  | ||||||
| } |  | ||||||
| message GetUserResponse { |  | ||||||
|   User user = 1; |  | ||||||
|   string err_msg = 2; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message User { |  | ||||||
|   string id = 1; |  | ||||||
|   string name = 2; |  | ||||||
| } |  | ||||||
| @@ -1,57 +0,0 @@ | |||||||
| package {{.File.Package}}_clientgrpc |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	context "context" |  | ||||||
|  |  | ||||||
|         "github.com/go-kit/kit/log" |  | ||||||
|         "google.golang.org/grpc" |  | ||||||
|         grpctransport "github.com/go-kit/kit/transport/grpc" |  | ||||||
|         "github.com/go-kit/kit/endpoint" |  | ||||||
|         jwt "github.com/go-kit/kit/auth/jwt" |  | ||||||
|  |  | ||||||
|         pb "{{cat .GoPWD "/" .DestinationDir | nospace | clean}}/pb" |  | ||||||
|         endpoints "{{cat .GoPWD "/" .DestinationDir | nospace | clean}}/endpoints" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| {{$file:=.File}} |  | ||||||
|  |  | ||||||
| func New(conn *grpc.ClientConn, logger log.Logger) pb.{{.File.Package | title}}ServiceServer { |  | ||||||
|         {{range .Service.Method}} |  | ||||||
| 		{{if and (not .ServerStreaming) (not .ClientStreaming)}} |  | ||||||
| 			var {{.Name | lower}}Endpoint endpoint.Endpoint |  | ||||||
| 			{ |  | ||||||
| 				{{.Name | lower}}Endpoint = grpctransport.NewClient( |  | ||||||
| 					conn, |  | ||||||
| 					"{{$file.Package}}.{{$file.Package | title}}Service", |  | ||||||
| 					"{{.Name}}", |  | ||||||
| 					Encode{{.Name}}Request, |  | ||||||
| 					Decode{{.Name}}Response, |  | ||||||
| 					pb.{{.Name}}Response{}, |  | ||||||
| 					append([]grpctransport.ClientOption{}, grpctransport.ClientBefore(jwt.FromGRPCContext()))..., |  | ||||||
| 				).Endpoint() |  | ||||||
| 			} |  | ||||||
| 		{{end}} |  | ||||||
|         {{end}} |  | ||||||
|  |  | ||||||
|         return &endpoints.Endpoints { |  | ||||||
|                 {{range .Service.Method}} |  | ||||||
| 			{{if and (not .ServerStreaming) (not .ClientStreaming)}} |  | ||||||
| 				{{.Name | title}}Endpoint: {{.Name  | lower}}Endpoint, |  | ||||||
| 			{{end}} |  | ||||||
|                 {{end}} |  | ||||||
|         } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| {{range .Service.Method}} |  | ||||||
| 	{{if and (not .ServerStreaming) (not .ClientStreaming)}} |  | ||||||
| 		func Encode{{.Name}}Request(_ context.Context, request interface{}) (interface{}, error) { |  | ||||||
| 			req := request.(*pb.{{.Name}}Request) |  | ||||||
| 			return req, nil |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		func Decode{{.Name}}Response(_ context.Context, grpcResponse interface{}) (interface{}, error) { |  | ||||||
| 			response := grpcResponse.(*pb.{{.Name}}Response) |  | ||||||
| 			return response, nil |  | ||||||
| 		} |  | ||||||
| 	{{end}} |  | ||||||
| {{end}} |  | ||||||
| @@ -1,89 +0,0 @@ | |||||||
| package {{.File.Package}}_endpoints |  | ||||||
|  |  | ||||||
| {{$file := .File}} |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	context "context" |  | ||||||
| 	"fmt" |  | ||||||
|  |  | ||||||
| 	oldcontext "golang.org/x/net/context" |  | ||||||
|         pb "{{cat .GoPWD "/" .DestinationDir | nospace | clean}}/pb" |  | ||||||
| 	"github.com/go-kit/kit/endpoint" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| var _ = endpoint.Chain |  | ||||||
| var _ = fmt.Errorf |  | ||||||
| var _ = context.Background |  | ||||||
|  |  | ||||||
| type StreamEndpoint func(server interface{}, req interface{}) (err error) |  | ||||||
|  |  | ||||||
| type Endpoints struct { |  | ||||||
| 	{{range .Service.Method}} |  | ||||||
| 		{{if or (.ClientStreaming) (.ServerStreaming)}} |  | ||||||
| 			{{.Name}}Endpoint StreamEndpoint |  | ||||||
| 		{{else}} |  | ||||||
| 			{{.Name}}Endpoint endpoint.Endpoint |  | ||||||
| 		{{end}} |  | ||||||
| 	{{end}} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| {{range .Service.Method}} |  | ||||||
| 	{{if .ServerStreaming}} |  | ||||||
| 		{{if .ClientStreaming}} |  | ||||||
| 			func (e *Endpoints){{.Name}}(server pb.{{$file.Package | title}}Service_{{.Name}}Server) error { |  | ||||||
| 				return fmt.Errorf("not implemented") |  | ||||||
| 			} |  | ||||||
| 		{{else}} |  | ||||||
| 			func (e *Endpoints){{.Name}}(in *pb.{{.Name}}Request, server pb.{{$file.Package | title}}Service_{{.Name}}Server) error { |  | ||||||
| 				return fmt.Errorf("not implemented") |  | ||||||
| 			} |  | ||||||
| 		{{end}} |  | ||||||
| 	{{else}} |  | ||||||
| 		{{if .ClientStreaming}} |  | ||||||
| 			func (e *Endpoints){{.Name}}(server pb.{{$file.Package | title}}Service_{{.Name}}Server) error { |  | ||||||
| 				return fmt.Errorf("not implemented") |  | ||||||
| 			} |  | ||||||
| 		{{else}} |  | ||||||
| 			func (e *Endpoints){{.Name}}(ctx oldcontext.Context, in *pb.{{.InputType | splitArray "." | last}}) (*pb.{{.OutputType | splitArray "." | last}}, error) { |  | ||||||
| 				out, err := e.{{.Name}}Endpoint(ctx, in) |  | ||||||
| 				if err != nil { |  | ||||||
| 					return &pb.{{.OutputType | splitArray "." | last}}{ErrMsg: err.Error()}, err |  | ||||||
| 				} |  | ||||||
| 				return out.(*pb.{{.OutputType | splitArray "." | last}}), err |  | ||||||
| 			} |  | ||||||
| 		{{end}} |  | ||||||
| 	{{end}} |  | ||||||
| {{end}} |  | ||||||
|  |  | ||||||
| {{range .Service.Method}} |  | ||||||
| 	{{if or (.ServerStreaming) (.ClientStreaming)}} |  | ||||||
| 		func Make{{.Name}}Endpoint(svc pb.{{$file.Package | title}}ServiceServer) StreamEndpoint { |  | ||||||
| 			return func(server interface{}, request interface{}) error { |  | ||||||
| 				{{if .ClientStreaming}} |  | ||||||
| 				return svc.{{.Name}}(server.(pb.{{$file.Package | title}}Service_{{.Name}}Server)) |  | ||||||
| 				{{else}} |  | ||||||
| 				return svc.{{.Name}}(request.(*pb.{{.Name}}Request), server.(pb.{{$file.Package | title}}Service_{{.Name}}Server)) |  | ||||||
| 				{{end}} |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	{{else}} |  | ||||||
| 		func Make{{.Name}}Endpoint(svc pb.{{$file.Package | title}}ServiceServer) endpoint.Endpoint { |  | ||||||
| 			return func(ctx context.Context, request interface{}) (interface{}, error) { |  | ||||||
| 				req := request.(*pb.{{.InputType | splitArray "." | last}}) |  | ||||||
| 				rep, err := svc.{{.Name}}(ctx, req) |  | ||||||
| 				if err != nil { |  | ||||||
| 					return &pb.{{.OutputType | splitArray "." | last}}{ErrMsg: err.Error()}, err |  | ||||||
| 				} |  | ||||||
| 				return rep, nil |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	{{end}} |  | ||||||
| {{end}} |  | ||||||
|  |  | ||||||
| func MakeEndpoints(svc pb.{{.File.Package | title}}ServiceServer) Endpoints { |  | ||||||
| 	return Endpoints{ |  | ||||||
| 		{{range .Service.Method}} |  | ||||||
| 			{{.Name}}Endpoint: Make{{.Name}}Endpoint(svc), |  | ||||||
| 		{{end}} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -1,92 +0,0 @@ | |||||||
| package {{.File.Package}}_grpctransport |  | ||||||
|  |  | ||||||
| {{$file := .File}} |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	context "context" |  | ||||||
|         "fmt" |  | ||||||
|  |  | ||||||
|         oldcontext "golang.org/x/net/context" |  | ||||||
| 	grpctransport "github.com/go-kit/kit/transport/grpc" |  | ||||||
|  |  | ||||||
|         pb "{{cat .GoPWD "/" .DestinationDir | nospace | clean}}/pb" |  | ||||||
|         endpoints "{{cat .GoPWD "/" .DestinationDir | nospace | clean}}/endpoints" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| // avoid import errors |  | ||||||
| var _ = fmt.Errorf |  | ||||||
|  |  | ||||||
| func MakeGRPCServer(endpoints endpoints.Endpoints) pb.{{.File.Package | title}}ServiceServer { |  | ||||||
|      	var options []grpctransport.ServerOption |  | ||||||
|         _ = options |  | ||||||
| 	return &grpcServer{ |  | ||||||
| 		{{range .Service.Method}} |  | ||||||
| 			{{if or (.ClientStreaming) (.ServerStreaming)}} |  | ||||||
| 				{{.Name | lower}}: &server{ |  | ||||||
| 					e: endpoints.{{.Name}}Endpoint, |  | ||||||
| 				}, |  | ||||||
| 			{{else}} |  | ||||||
| 				{{.Name | lower}}: grpctransport.NewServer( |  | ||||||
| 					endpoints.{{.Name}}Endpoint, |  | ||||||
| 					decodeRequest, |  | ||||||
| 					encode{{.Name}}Response, |  | ||||||
| 					options..., |  | ||||||
| 				), |  | ||||||
| 			{{end}} |  | ||||||
|                 {{end}} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type grpcServer struct { |  | ||||||
| 	{{range .Service.Method}} |  | ||||||
| 		{{if or (.ClientStreaming) (.ServerStreaming)}} |  | ||||||
| 			{{.Name | lower}} streamHandler |  | ||||||
| 		{{else}} |  | ||||||
| 			{{.Name | lower}} grpctransport.Handler |  | ||||||
| 		{{end}} |  | ||||||
| 	{{end}} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| {{range .Service.Method}} |  | ||||||
| 	{{if .ClientStreaming}} |  | ||||||
| 		func (s *grpcServer) {{.Name}}(server pb.{{$file.Package | title}}Service_{{.Name}}Server) error { |  | ||||||
| 		        return s.{{.Name | lower}}.Do(server, nil) |  | ||||||
| 		} |  | ||||||
| 	{{else if .ServerStreaming}} |  | ||||||
| 		func (s *grpcServer) {{.Name}}(req *pb.{{.Name}}Request, server pb.{{$file.Package | title}}Service_{{.Name}}Server) error { |  | ||||||
| 		        return s.{{.Name | lower}}.Do(server, req) |  | ||||||
| 		} |  | ||||||
| 	{{else}} |  | ||||||
| 		func (s *grpcServer) {{.Name}}(ctx oldcontext.Context, req *pb.{{.InputType | splitArray "." | last}}) (*pb.{{.OutputType | splitArray "." | last}}, error) { |  | ||||||
| 		_, rep, err := s.{{.Name | lower}}.ServeGRPC(ctx, req) |  | ||||||
| 			if err != nil { |  | ||||||
| 				return nil, err |  | ||||||
| 			} |  | ||||||
| 			return rep.(*pb.{{.OutputType | splitArray "." | last}}), nil |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		func encode{{.Name}}Response(ctx context.Context, response interface{}) (interface{}, error) { |  | ||||||
| 			resp := response.(*pb.{{.OutputType | splitArray "." | last}}) |  | ||||||
| 			return resp, nil |  | ||||||
| 		} |  | ||||||
| 	{{end}} |  | ||||||
| {{end}} |  | ||||||
|  |  | ||||||
| func decodeRequest(ctx context.Context, grpcReq interface{}) (interface{}, error) { |  | ||||||
| 	return grpcReq, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type streamHandler interface{ |  | ||||||
| 	Do(server interface{}, req interface{}) (err error) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type server struct { |  | ||||||
| 	e endpoints.StreamEndpoint |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (s server) Do(server interface{}, req interface{}) (err error) { |  | ||||||
| 	if err := s.e(server, req); err != nil { |  | ||||||
| 		return err |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| @@ -1,55 +0,0 @@ | |||||||
| package {{.File.Package}}_httptransport |  | ||||||
|  |  | ||||||
| {{$file := .File}} |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
|        "log" |  | ||||||
| 	"net/http" |  | ||||||
| 	"encoding/json" |  | ||||||
| 	"context" |  | ||||||
|  |  | ||||||
|         pb "{{cat .GoPWD "/" .DestinationDir | nospace | clean}}/pb" |  | ||||||
|         gokit_endpoint "github.com/go-kit/kit/endpoint" |  | ||||||
|         httptransport "github.com/go-kit/kit/transport/http" |  | ||||||
|         endpoints "{{cat .GoPWD "/" .DestinationDir | nospace | clean}}/endpoints" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| var _ = log.Printf |  | ||||||
| var _ = gokit_endpoint.Chain |  | ||||||
| var _ = httptransport.NewClient |  | ||||||
|  |  | ||||||
|  |  | ||||||
| {{range .Service.Method}} |  | ||||||
| 	{{if and (not .ServerStreaming) (not .ClientStreaming)}} |  | ||||||
| 		func Make{{.Name}}Handler(svc pb.{{$file.Package | title}}ServiceServer, endpoint gokit_endpoint.Endpoint) *httptransport.Server { |  | ||||||
| 			return httptransport.NewServer( |  | ||||||
| 				endpoint, |  | ||||||
| 				decode{{.Name}}Request, |  | ||||||
| 				encodeResponse, |  | ||||||
| 				[]httptransport.ServerOption{}..., |  | ||||||
| 			) |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		func decode{{.Name}}Request(ctx context.Context, r *http.Request) (interface{}, error) { |  | ||||||
| 			var req pb.{{.InputType | splitArray "." | last}} |  | ||||||
| 			if err := json.NewDecoder(r.Body).Decode(&req); err != nil { |  | ||||||
| 				return nil, err |  | ||||||
| 			} |  | ||||||
| 			return &req, nil |  | ||||||
| 		} |  | ||||||
| 	{{end}} |  | ||||||
| {{end}} |  | ||||||
|  |  | ||||||
| func encodeResponse(ctx context.Context, w http.ResponseWriter, response interface{}) error { |  | ||||||
| 	return json.NewEncoder(w).Encode(response) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func RegisterHandlers(svc pb.{{$file.Package | title}}ServiceServer, mux *http.ServeMux, endpoints endpoints.Endpoints) error { |  | ||||||
| 	{{range .Service.Method}} |  | ||||||
| 		{{if and (not .ServerStreaming) (not .ClientStreaming)}} |  | ||||||
| 			log.Println("new HTTP endpoint: \"/{{.Name}}\" (service={{$file.Package | title}})") |  | ||||||
| 			mux.Handle("/{{.Name}}", Make{{.Name}}Handler(svc, endpoints.{{.Name}}Endpoint)) |  | ||||||
| 		{{end}} |  | ||||||
| 	{{end}} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
							
								
								
									
										0
									
								
								examples/go.mod
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										0
									
								
								examples/go.mod
									
									
									
										generated
									
									
									
								
							| @@ -1,13 +0,0 @@ | |||||||
| .PHONY: build |  | ||||||
| build: |  | ||||||
| 	mkdir -p output |  | ||||||
| 	protoc -I. --gotemplate_out=template_dir=.,debug=true:. *.proto |  | ||||||
|  |  | ||||||
|  |  | ||||||
| .PHONY: re |  | ||||||
| re: clean build |  | ||||||
|  |  | ||||||
|  |  | ||||||
| .PHONY: clean |  | ||||||
| clean: |  | ||||||
| 	rm -rf output |  | ||||||
| @@ -1,58 +0,0 @@ | |||||||
| # Common variables |  | ||||||
| {{.File.Name}}:                                                                           helpers.proto |  | ||||||
| {{.File.Name | upper}}:                                                                   HELPERS.PROTO |  | ||||||
| {{.File.Package | base | replace "." "-"}}                                                dummy |  | ||||||
| {{$packageDir := .File.Name | dir}}{{$packageDir}}                                        . |  | ||||||
| {{$packageName := .File.Name | base | replace ".proto" ""}}{{$packageName}}               helpers |  | ||||||
| {{$packageImport := .File.Package | replace "." "_"}}{{$packageImport}}                   dummy |  | ||||||
| {{$namespacedPackage := .File.Package}}{{$namespacedPackage}}                             dummy |  | ||||||
| {{$currentFile := .File.Name | getProtoFile}}{{$currentFile}}                             <nil> |  | ||||||
| {{- /*{{- $currentPackageName := $currentFile.GoPkg.Name}}{{$currentPackageName}}*/}} |  | ||||||
| # TODO: more variables |  | ||||||
|  |  | ||||||
| # Sprig: strings |  | ||||||
| {{trim "   hello    "}}:                                                            hello |  | ||||||
| {{trimAll "$" "$5.00"}}:                                                            5.00 |  | ||||||
| {{trimSuffix "-" "hello-"}}:                                                        hello |  | ||||||
| {{upper "hello"}}:                                                                  HELLO |  | ||||||
| {{lower "HELLO"}}:                                                                  hello |  | ||||||
| {{title "hello world"}}:                                                            Hello World |  | ||||||
| {{untitle "Hello World"}}:                                                          hello world |  | ||||||
| {{repeat 3 "hello"}}:                                                               hellohellohello |  | ||||||
| {{substr 0 5 "hello world"}}:                                                       hello |  | ||||||
| {{nospace "hello w o r l d"}}:                                                      helloworld |  | ||||||
| {{trunc 5 "hello world"}}:                                                          hello |  | ||||||
| {{abbrev 5 "hello world"}}:                                                         he... |  | ||||||
| {{abbrevboth 5 10 "1234 5678 9123"}}:                                               ...5678... |  | ||||||
| {{initials "First Try"}}:                                                           FT |  | ||||||
| {{randNumeric 3}}:                                                                  528 |  | ||||||
| {{- /*{{wrap 80 $someText}}*/}}: |  | ||||||
| {{wrapWith 5 "\t" "Hello World"}}:                                                  Hello	World |  | ||||||
| {{contains "cat" "catch"}}:                                                         true |  | ||||||
| {{hasPrefix "cat" "catch"}}:                                                        true |  | ||||||
| {{cat "hello" "beautiful" "world"}}:                                                hello beautiful world |  | ||||||
| {{- /*{{indent 4 $lots_of_text}}*/}}: |  | ||||||
| {{- /*{{indent 4 $lots_of_text}}*/}}: |  | ||||||
| {{"I Am Henry VIII" | replace " " "-"}}:                                            I-Am-Henry-VIII |  | ||||||
| {{len .Service.Method | plural "one anchovy" "many anchovies"}}:                    many anchovies |  | ||||||
| {{snakecase "FirstName"}}:                                                          first_name |  | ||||||
| {{camelcase "http_server"}}:                                                        HttpServer |  | ||||||
| {{shuffle "hello"}}:                                                                holle |  | ||||||
| {{regexMatch "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}" "test@acme.com"}}:   true |  | ||||||
| {{- /*{{regexFindAll "[2,4,6,8]" "123456789"}}*/}}: |  | ||||||
| {{regexFind "[a-zA-Z][1-9]" "abcd1234"}}:                                           d1 |  | ||||||
| {{regexReplaceAll "a(x*)b" "-ab-axxb-" "${1}W"}}:                                   -W-xxW- |  | ||||||
| {{regexReplaceAllLiteral "a(x*)b" "-ab-axxb-" "${1}"}}:                             -${1}-${1}- |  | ||||||
| {{regexSplit "z+" "pizza" -1}}:                                                     [pi a] |  | ||||||
|  |  | ||||||
| # Get one specific method on array method using index |  | ||||||
| {{ index .Service.Method 1 }}:                                                      name:"Iii" input_type:".dummy.Dummy2" output_type:".dummy.Dummy1" options:<>  |  | ||||||
|  |  | ||||||
| # Sprig: advanced |  | ||||||
| {{if contains "cat" "catch"}}yes{{else}}no{{end}}:   yes |  | ||||||
| {{1 | plural "one anchovy" "many anchovies"}}:       one anchovy |  | ||||||
| {{2 | plural "one anchovy" "many anchovies"}}:       many anchovies |  | ||||||
| {{3 | plural "one anchovy" "many anchovies"}}:       many anchovies |  | ||||||
|  |  | ||||||
| # TODO: more sprig examples |  | ||||||
| # TODO: all built-in examples |  | ||||||
| @@ -1,59 +0,0 @@ | |||||||
| # Common variables |  | ||||||
| {{`{{.File.Name}}`}}:                                                                           {{.File.Name}} |  | ||||||
| {{`{{.File.Name | upper}}`}}:                                                                   {{.File.Name | upper}} |  | ||||||
| {{`{{.File.Package | base | replace "." "-"}}`}}                                                {{.File.Package | base | replace "." "-"}} |  | ||||||
| {{- /*{{`{{$file := .File}}{{$file}}`}}                                                               {{$file := .File}}{{$file}}*/}} |  | ||||||
| {{`{{$packageDir := .File.Name | dir}}{{$packageDir}}`}}                                        {{$packageDir := .File.Name | dir}}{{$packageDir}} |  | ||||||
| {{`{{$packageName := .File.Name | base | replace ".proto" ""}}{{$packageName}}`}}               {{$packageName := .File.Name | base | replace ".proto" ""}}{{$packageName}} |  | ||||||
| {{`{{$packageImport := .File.Package | replace "." "_"}}{{$packageImport}}`}}                   {{$packageImport := .File.Package | replace "." "_"}}{{$packageImport}} |  | ||||||
| {{`{{$namespacedPackage := .File.Package}}{{$namespacedPackage}}`}}                             {{$namespacedPackage := .File.Package}}{{$namespacedPackage}} |  | ||||||
| {{`{{$currentFile := .File.Name | getProtoFile}}{{$currentFile}}`}}                             {{$currentFile := .File.Name | getProtoFile}}{{$currentFile}} |  | ||||||
| {{`{{- /*{{- $currentPackageName := $currentFile.GoPkg.Name}}{{$currentPackageName}}*/}}`}}     {{- /*{{- $currentPackageName := $currentFile.GoPkg.Name}}{{$currentPackageName}}*/}} |  | ||||||
| # TODO: more variables |  | ||||||
|  |  | ||||||
| # Sprig: strings |  | ||||||
| {{`{{trim "   hello    "}}`}}:                                                            {{trim "   hello    "}} |  | ||||||
| {{`{{trimAll "$" "$5.00"}}`}}:                                                            {{trimAll "$" "$5.00"}} |  | ||||||
| {{`{{trimSuffix "-" "hello-"}}`}}:                                                        {{trimSuffix "-" "hello-"}} |  | ||||||
| {{`{{upper "hello"}}`}}:                                                                  {{upper "hello"}} |  | ||||||
| {{`{{lower "HELLO"}}`}}:                                                                  {{lower "HELLO"}} |  | ||||||
| {{`{{title "hello world"}}`}}:                                                            {{title "hello world"}} |  | ||||||
| {{`{{untitle "Hello World"}}`}}:                                                          {{untitle "Hello World"}} |  | ||||||
| {{`{{repeat 3 "hello"}}`}}:                                                               {{repeat 3 "hello"}} |  | ||||||
| {{`{{substr 0 5 "hello world"}}`}}:                                                       {{substr 0 5 "hello world"}} |  | ||||||
| {{`{{nospace "hello w o r l d"}}`}}:                                                      {{nospace "hello w o r l d"}} |  | ||||||
| {{`{{trunc 5 "hello world"}}`}}:                                                          {{trunc 5 "hello world"}} |  | ||||||
| {{`{{abbrev 5 "hello world"}}`}}:                                                         {{abbrev 5 "hello world"}} |  | ||||||
| {{`{{abbrevboth 5 10 "1234 5678 9123"}}`}}:                                               {{abbrevboth 5 10 "1234 5678 9123"}} |  | ||||||
| {{`{{initials "First Try"}}`}}:                                                           {{initials "First Try"}} |  | ||||||
| {{`{{randNumeric 3}}`}}:                                                                  {{randNumeric 3}} |  | ||||||
| {{`{{- /*{{wrap 80 $someText}}*/}}`}}:                                                    {{- /*{{wrap 80 $someText}}*/}} |  | ||||||
| {{`{{wrapWith 5 "\t" "Hello World"}}`}}:                                                  {{wrapWith 5 "\t" "Hello World"}} |  | ||||||
| {{`{{contains "cat" "catch"}}`}}:                                                         {{contains "cat" "catch"}} |  | ||||||
| {{`{{hasPrefix "cat" "catch"}}`}}:                                                        {{hasPrefix "cat" "catch"}} |  | ||||||
| {{`{{cat "hello" "beautiful" "world"}}`}}:                                                {{cat "hello" "beautiful" "world"}} |  | ||||||
| {{`{{- /*{{indent 4 $lots_of_text}}*/}}`}}:                                               {{- /*{{indent 4 $lots_of_text}}*/}} |  | ||||||
| {{`{{- /*{{indent 4 $lots_of_text}}*/}}`}}:                                               {{- /*{{indent 4 $lots_of_text}}*/}} |  | ||||||
| {{`{{"I Am Henry VIII" | replace " " "-"}}`}}:                                            {{"I Am Henry VIII" | replace " " "-"}} |  | ||||||
| {{`{{len .Service.Method | plural "one anchovy" "many anchovies"}}`}}:                    {{len .Service.Method | plural "one anchovy" "many anchovies"}} |  | ||||||
| {{`{{snakecase "FirstName"}}`}}:                                                          {{snakecase "FirstName"}} |  | ||||||
| {{`{{camelcase "http_server"}}`}}:                                                        {{camelcase "http_server"}} |  | ||||||
| {{`{{shuffle "hello"}}`}}:                                                                {{shuffle "hello"}} |  | ||||||
| {{`{{regexMatch "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}" "test@acme.com"}}`}}:   {{regexMatch "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}" "test@acme.com"}} |  | ||||||
| {{`{{- /*{{regexFindAll "[2,4,6,8]" "123456789"}}*/}}`}}:                                 {{- /*{{regexFindAll "[2,4,6,8]" "123456789"}}*/}} |  | ||||||
| {{`{{regexFind "[a-zA-Z][1-9]" "abcd1234"}}`}}:                                           {{regexFind "[a-zA-Z][1-9]" "abcd1234"}} |  | ||||||
| {{`{{regexReplaceAll "a(x*)b" "-ab-axxb-" "${1}W"}}`}}:                                   {{regexReplaceAll "a(x*)b" "-ab-axxb-" "${1}W"}} |  | ||||||
| {{`{{regexReplaceAllLiteral "a(x*)b" "-ab-axxb-" "${1}"}}`}}:                             {{regexReplaceAllLiteral "a(x*)b" "-ab-axxb-" "${1}"}} |  | ||||||
| {{`{{regexSplit "z+" "pizza" -1}}`}}:                                                     {{regexSplit "z+" "pizza" -1}} |  | ||||||
|  |  | ||||||
| # Get one specific method on array method using index |  | ||||||
| {{`{{ index .Service.Method 1 }}`}}:                                                      {{ index .Service.Method 1 }} |  | ||||||
|  |  | ||||||
| # Sprig: advanced |  | ||||||
| {{`{{if contains "cat" "catch"}}yes{{else}}no{{end}}`}}:   {{if contains "cat" "catch"}}yes{{else}}no{{end}} |  | ||||||
| {{`{{1 | plural "one anchovy" "many anchovies"}}`}}:       {{1 | plural "one anchovy" "many anchovies"}} |  | ||||||
| {{`{{2 | plural "one anchovy" "many anchovies"}}`}}:       {{2 | plural "one anchovy" "many anchovies"}} |  | ||||||
| {{`{{3 | plural "one anchovy" "many anchovies"}}`}}:       {{3 | plural "one anchovy" "many anchovies"}} |  | ||||||
|  |  | ||||||
| # TODO: more sprig examples |  | ||||||
| # TODO: all built-in examples |  | ||||||
| @@ -1,25 +0,0 @@ | |||||||
| syntax = "proto3"; |  | ||||||
|  |  | ||||||
| package dummy; |  | ||||||
|  |  | ||||||
| option go_package = "moul.io/protoc-gen-gotemplate/examples/helpers"; |  | ||||||
|  |  | ||||||
| message Dummy1 { |  | ||||||
|   float aaa = 1; |  | ||||||
|   string bbb = 2; |  | ||||||
|   int32 ccc = 3; |  | ||||||
|   int64 ddd = 4; |  | ||||||
|   repeated string eee = 5; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message Dummy2 { |  | ||||||
|   float fff = 1; |  | ||||||
|   Dummy1 ggg = 2; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message Dummy3 {} |  | ||||||
|  |  | ||||||
| service DummyService { |  | ||||||
|   rpc Hhh(Dummy1) returns (Dummy2) {} |  | ||||||
|   rpc Iii(Dummy2) returns (Dummy1) {} |  | ||||||
| } |  | ||||||
| @@ -1,18 +0,0 @@ | |||||||
| .PHONY: build |  | ||||||
| build: |  | ||||||
| 	mkdir -p output |  | ||||||
|  |  | ||||||
| 	# generate pb.go inluding imported proto |  | ||||||
| 	protoc --go_out=Mproto/common.proto=moul.io/protoc-gen-gotemplate/examples/import/output/models/common:./output proto/article.proto |  | ||||||
| 	protoc --go_out=,plugins=grpc:./output proto/common.proto |  | ||||||
|  |  | ||||||
| 	# build our go file based on our template |  | ||||||
| 	protoc -I. --gotemplate_out=template_dir=templates,debug=true:output proto/article.proto |  | ||||||
|  |  | ||||||
| .PHONY: re |  | ||||||
| re: clean build |  | ||||||
|  |  | ||||||
|  |  | ||||||
| .PHONY: clean |  | ||||||
| clean: |  | ||||||
| 	rm -rf output |  | ||||||
							
								
								
									
										141
									
								
								examples/import/output/models/article/article.pb.go
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										141
									
								
								examples/import/output/models/article/article.pb.go
									
									
									
										generated
									
									
									
								
							| @@ -1,141 +0,0 @@ | |||||||
| // Code generated by protoc-gen-go. DO NOT EDIT. |  | ||||||
| // source: proto/article.proto |  | ||||||
|  |  | ||||||
| /* |  | ||||||
| Package article is a generated protocol buffer package. |  | ||||||
|  |  | ||||||
| It is generated from these files: |  | ||||||
| 	proto/article.proto |  | ||||||
|  |  | ||||||
| It has these top-level messages: |  | ||||||
| 	GetArticleRequest |  | ||||||
| 	GetArticleResponse |  | ||||||
| 	Article |  | ||||||
| */ |  | ||||||
| package article |  | ||||||
|  |  | ||||||
| import proto "github.com/golang/protobuf/proto" |  | ||||||
| import fmt "fmt" |  | ||||||
| import math "math" |  | ||||||
| import common "moul.io/protoc-gen-gotemplate/examples/import/output/models/common" |  | ||||||
|  |  | ||||||
| // Reference imports to suppress errors if they are not otherwise used. |  | ||||||
| var _ = proto.Marshal |  | ||||||
| var _ = fmt.Errorf |  | ||||||
| var _ = math.Inf |  | ||||||
|  |  | ||||||
| // This is a compile-time assertion to ensure that this generated file |  | ||||||
| // is compatible with the proto package it is being compiled against. |  | ||||||
| // A compilation error at this line likely means your copy of the |  | ||||||
| // proto package needs to be updated. |  | ||||||
| const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package |  | ||||||
|  |  | ||||||
| type GetArticleRequest struct { |  | ||||||
| 	Getarticle *common.GetArticle `protobuf:"bytes,1,opt,name=getarticle" json:"getarticle,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *GetArticleRequest) Reset()                    { *m = GetArticleRequest{} } |  | ||||||
| func (m *GetArticleRequest) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*GetArticleRequest) ProtoMessage()               {} |  | ||||||
| func (*GetArticleRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } |  | ||||||
|  |  | ||||||
| func (m *GetArticleRequest) GetGetarticle() *common.GetArticle { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Getarticle |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type GetArticleResponse struct { |  | ||||||
| 	Article *Article `protobuf:"bytes,1,opt,name=article" json:"article,omitempty"` |  | ||||||
| 	// The generated output should write []*GetArticleResponse_Storage.Storage for this field. |  | ||||||
| 	Storages []*GetArticleResponse_Storage `protobuf:"bytes,2,rep,name=storages" json:"storages,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *GetArticleResponse) Reset()                    { *m = GetArticleResponse{} } |  | ||||||
| func (m *GetArticleResponse) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*GetArticleResponse) ProtoMessage()               {} |  | ||||||
| func (*GetArticleResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } |  | ||||||
|  |  | ||||||
| func (m *GetArticleResponse) GetArticle() *Article { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Article |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *GetArticleResponse) GetStorages() []*GetArticleResponse_Storage { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Storages |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type GetArticleResponse_Storage struct { |  | ||||||
| 	Code string `protobuf:"bytes,1,opt,name=code" json:"code,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *GetArticleResponse_Storage) Reset()                    { *m = GetArticleResponse_Storage{} } |  | ||||||
| func (m *GetArticleResponse_Storage) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*GetArticleResponse_Storage) ProtoMessage()               {} |  | ||||||
| func (*GetArticleResponse_Storage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 0} } |  | ||||||
|  |  | ||||||
| func (m *GetArticleResponse_Storage) GetCode() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Code |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type Article struct { |  | ||||||
| 	Id   string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` |  | ||||||
| 	Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *Article) Reset()                    { *m = Article{} } |  | ||||||
| func (m *Article) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*Article) ProtoMessage()               {} |  | ||||||
| func (*Article) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } |  | ||||||
|  |  | ||||||
| func (m *Article) GetId() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Id |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *Article) GetName() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Name |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func init() { |  | ||||||
| 	proto.RegisterType((*GetArticleRequest)(nil), "company.GetArticleRequest") |  | ||||||
| 	proto.RegisterType((*GetArticleResponse)(nil), "company.GetArticleResponse") |  | ||||||
| 	proto.RegisterType((*GetArticleResponse_Storage)(nil), "company.GetArticleResponse.Storage") |  | ||||||
| 	proto.RegisterType((*Article)(nil), "company.Article") |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func init() { proto.RegisterFile("proto/article.proto", fileDescriptor0) } |  | ||||||
|  |  | ||||||
| var fileDescriptor0 = []byte{ |  | ||||||
| 	// 256 bytes of a gzipped FileDescriptorProto |  | ||||||
| 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0x41, 0x4b, 0xc4, 0x30, |  | ||||||
| 	0x10, 0x85, 0x6d, 0x15, 0xab, 0xb3, 0x20, 0x3a, 0x82, 0x94, 0x8a, 0xb0, 0xd4, 0xcb, 0x22, 0x18, |  | ||||||
| 	0xa1, 0x1e, 0x3d, 0x88, 0x5e, 0x7a, 0xaf, 0x78, 0xf1, 0x56, 0xd3, 0x61, 0x29, 0x6c, 0x3a, 0xb5, |  | ||||||
| 	0x89, 0x82, 0xff, 0xc6, 0x9f, 0x2a, 0x9b, 0x4c, 0xd7, 0x8a, 0xb2, 0xa7, 0x4e, 0xf3, 0xbe, 0xf7, |  | ||||||
| 	0xf2, 0xc8, 0xc0, 0x69, 0x3f, 0xb0, 0xe3, 0x9b, 0x7a, 0x70, 0xad, 0x5e, 0x91, 0xf2, 0x7f, 0x98, |  | ||||||
| 	0x68, 0x36, 0x7d, 0xdd, 0x7d, 0x66, 0x18, 0x54, 0xcd, 0xc6, 0x70, 0x17, 0xc4, 0xbc, 0x84, 0x93, |  | ||||||
| 	0x92, 0xdc, 0x43, 0x30, 0x54, 0xf4, 0xf6, 0x4e, 0xd6, 0x61, 0x01, 0xb0, 0x24, 0x27, 0x29, 0x69, |  | ||||||
| 	0x34, 0x8f, 0x16, 0xb3, 0x02, 0x95, 0xf8, 0x26, 0xf8, 0x84, 0xca, 0xbf, 0x22, 0xc0, 0x69, 0x92, |  | ||||||
| 	0xed, 0xb9, 0xb3, 0x84, 0x57, 0x90, 0xfc, 0xce, 0x39, 0x56, 0x52, 0x47, 0x8d, 0xe8, 0x08, 0xe0, |  | ||||||
| 	0x3d, 0x1c, 0x58, 0xc7, 0x43, 0xbd, 0x24, 0x9b, 0xc6, 0xf3, 0xdd, 0xc5, 0xac, 0xb8, 0xdc, 0xc0, |  | ||||||
| 	0x7f, 0xa3, 0xd5, 0x53, 0x60, 0xab, 0x8d, 0x29, 0xbb, 0x80, 0x44, 0x0e, 0x11, 0x61, 0x4f, 0x73, |  | ||||||
| 	0x13, 0x2e, 0x3d, 0xac, 0xfc, 0x9c, 0x5f, 0x43, 0x22, 0x19, 0x78, 0x04, 0x71, 0xdb, 0x88, 0x18, |  | ||||||
| 	0xb7, 0xcd, 0x1a, 0xef, 0x6a, 0x43, 0x69, 0x1c, 0xf0, 0xf5, 0x5c, 0x3c, 0x03, 0x48, 0x33, 0xfb, |  | ||||||
| 	0xa1, 0xb1, 0x04, 0xf8, 0xe9, 0x80, 0xd9, 0xbf, 0xc5, 0xfc, 0xeb, 0x65, 0xe7, 0x5b, 0x4a, 0xe7, |  | ||||||
| 	0x3b, 0x8f, 0xe9, 0xcb, 0x99, 0xe1, 0x86, 0x56, 0x76, 0x5c, 0xd3, 0x9d, 0x7c, 0x5f, 0xf7, 0xfd, |  | ||||||
| 	0x4a, 0x6e, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x93, 0xb5, 0x4a, 0x95, 0xc6, 0x01, 0x00, 0x00, |  | ||||||
| } |  | ||||||
							
								
								
									
										69
									
								
								examples/import/output/models/common/common.pb.go
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										69
									
								
								examples/import/output/models/common/common.pb.go
									
									
									
										generated
									
									
									
								
							| @@ -1,69 +0,0 @@ | |||||||
| // Code generated by protoc-gen-go. DO NOT EDIT. |  | ||||||
| // source: proto/common.proto |  | ||||||
|  |  | ||||||
| /* |  | ||||||
| Package common is a generated protocol buffer package. |  | ||||||
|  |  | ||||||
| It is generated from these files: |  | ||||||
| 	proto/common.proto |  | ||||||
|  |  | ||||||
| It has these top-level messages: |  | ||||||
| 	GetArticle |  | ||||||
| */ |  | ||||||
| package common |  | ||||||
|  |  | ||||||
| import proto "github.com/golang/protobuf/proto" |  | ||||||
| import fmt "fmt" |  | ||||||
| import math "math" |  | ||||||
|  |  | ||||||
| // Reference imports to suppress errors if they are not otherwise used. |  | ||||||
| var _ = proto.Marshal |  | ||||||
| var _ = fmt.Errorf |  | ||||||
| var _ = math.Inf |  | ||||||
|  |  | ||||||
| // This is a compile-time assertion to ensure that this generated file |  | ||||||
| // is compatible with the proto package it is being compiled against. |  | ||||||
| // A compilation error at this line likely means your copy of the |  | ||||||
| // proto package needs to be updated. |  | ||||||
| const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package |  | ||||||
|  |  | ||||||
| type GetArticle struct { |  | ||||||
| 	Id     string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` |  | ||||||
| 	Tenant string `protobuf:"bytes,2,opt,name=tenant" json:"tenant,omitempty"` |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *GetArticle) Reset()                    { *m = GetArticle{} } |  | ||||||
| func (m *GetArticle) String() string            { return proto.CompactTextString(m) } |  | ||||||
| func (*GetArticle) ProtoMessage()               {} |  | ||||||
| func (*GetArticle) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } |  | ||||||
|  |  | ||||||
| func (m *GetArticle) GetId() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Id |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *GetArticle) GetTenant() string { |  | ||||||
| 	if m != nil { |  | ||||||
| 		return m.Tenant |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func init() { |  | ||||||
| 	proto.RegisterType((*GetArticle)(nil), "common.GetArticle") |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func init() { proto.RegisterFile("proto/common.proto", fileDescriptor0) } |  | ||||||
|  |  | ||||||
| var fileDescriptor0 = []byte{ |  | ||||||
| 	// 110 bytes of a gzipped FileDescriptorProto |  | ||||||
| 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2a, 0x28, 0xca, 0x2f, |  | ||||||
| 	0xc9, 0xd7, 0x4f, 0xce, 0xcf, 0xcd, 0xcd, 0xcf, 0xd3, 0x03, 0x73, 0x84, 0xd8, 0x20, 0x3c, 0x25, |  | ||||||
| 	0x13, 0x2e, 0x2e, 0xf7, 0xd4, 0x12, 0xc7, 0xa2, 0x92, 0xcc, 0xe4, 0x9c, 0x54, 0x21, 0x3e, 0x2e, |  | ||||||
| 	0xa6, 0xcc, 0x14, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20, 0xa6, 0xcc, 0x14, 0x21, 0x31, 0x2e, |  | ||||||
| 	0xb6, 0x92, 0xd4, 0xbc, 0xc4, 0xbc, 0x12, 0x09, 0x26, 0xb0, 0x18, 0x94, 0xe7, 0x24, 0x16, 0x25, |  | ||||||
| 	0x92, 0x9b, 0x9f, 0x92, 0x9a, 0x53, 0x0c, 0x35, 0xd4, 0x1a, 0x42, 0x25, 0xb1, 0x81, 0x0d, 0x37, |  | ||||||
| 	0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x89, 0x5a, 0x1d, 0x73, 0x72, 0x00, 0x00, 0x00, |  | ||||||
| } |  | ||||||
| @@ -1,26 +0,0 @@ | |||||||
| // Code generated by protoc-gen-gotemplate |  | ||||||
| package company |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
|  |  | ||||||
| 	"moul.io/protoc-gen-gotemplate/examples/import/output/models/article" |  | ||||||
| 	"moul.io/protoc-gen-gotemplate/examples/import/output/models/common" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| type Repository interface { |  | ||||||
| 	GetArticle(getarticle *common.GetArticle) (*company.Article, []*company.Storage, error) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // ------------------------- Public SDK ----------------------------- |  | ||||||
|  |  | ||||||
| // GetArticle : proto: missing extension proto: missing extension |  | ||||||
| func (sdk *Sdk) GetArticle(ctx context.Context, |  | ||||||
| 	getarticle *article.GetArticle, token, requestID string) (article *article.Article, storages []*article.GetArticleResponse_Storage, err error) { |  | ||||||
|  |  | ||||||
| 	out := &pb.GetArticleResponse{} |  | ||||||
| 	_ = out |  | ||||||
|  |  | ||||||
| 	return out.Article, out.Storages, nil |  | ||||||
|  |  | ||||||
| } |  | ||||||
| @@ -1,31 +0,0 @@ | |||||||
| syntax = "proto3"; |  | ||||||
|  |  | ||||||
| package company; |  | ||||||
|  |  | ||||||
| option go_package = "models/article;article"; |  | ||||||
|  |  | ||||||
| import "proto/common.proto"; |  | ||||||
|  |  | ||||||
| message GetArticleRequest {   |  | ||||||
|   common.GetArticle getarticle = 1; |  | ||||||
| } |  | ||||||
|  |  | ||||||
|  |  | ||||||
| message GetArticleResponse {   |  | ||||||
|   Article article = 1; |  | ||||||
|    |  | ||||||
|   message Storage { |  | ||||||
| 		string code = 1; |  | ||||||
|   } |  | ||||||
|   // The generated output should write []*GetArticleResponse_Storage.Storage for this field. |  | ||||||
|   repeated Storage storages = 2; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| message Article{ |  | ||||||
|   string id = 1; |  | ||||||
|   string name = 2; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| service articlesvc { |  | ||||||
|   rpc GetArticle (GetArticleRequest) returns (GetArticleResponse){} |  | ||||||
| } |  | ||||||
| @@ -1,10 +0,0 @@ | |||||||
| syntax = "proto3"; |  | ||||||
|  |  | ||||||
| package common; |  | ||||||
|  |  | ||||||
| option go_package = "models/common;common"; |  | ||||||
|  |  | ||||||
| message GetArticle{ |  | ||||||
|   string id = 1; |  | ||||||
|   string tenant = 2; |  | ||||||
| } |  | ||||||
| @@ -1,41 +0,0 @@ | |||||||
| // Code generated by protoc-gen-gotemplate |  | ||||||
| {{- $file := .File}} |  | ||||||
| package {{.File.Package}} |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"moul.io/protoc-gen-gotemplate/examples/import/output/models/article" |  | ||||||
|     "moul.io/protoc-gen-gotemplate/examples/import/output/models/common" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| type Repository interface { |  | ||||||
|     {{range $m := .Service.Method}}{{with $t := $m.InputType | getMessageType $.File}} {{$m.Name}}({{range $f := $t.Field}}{{$f.Name|lowerCamelCase}} {{$f| goTypeWithPackage }} {{end}}) ({{with $out := $m.OutputType | getMessageType $.File}}{{range $f := $out.Field}}{{$f | goTypeWithPackage}}, {{end}}{{end}} error){{end}}{{end}} |  | ||||||
| } |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| // ------------------------- Public SDK ----------------------------- |  | ||||||
| {{$pkg := "pb"}} |  | ||||||
|  |  | ||||||
|  |  | ||||||
| {{range $m := .Service.Method}} |  | ||||||
| {{with $t := $m.InputType | getMessageType $.File}} |  | ||||||
| {{if and (not $m.ServerStreaming) (not $m.ClientStreaming)}} |  | ||||||
| {{/* ----------------------------- nominal case ---------------------------- */}} |  | ||||||
| // {{$m.Name}} : {{$m | httpVerb}} {{$m | httpPath}} |  | ||||||
| func (sdk *Sdk) {{$m.Name}}(ctx context.Context, {{if $t.OneofDecl}} req *{{$pkg}}.{{$m.Name}}Request,{{else}}{{range $f := $t.Field}} |  | ||||||
|   {{$f.Name|lowerCamelCase}} {{$f| goTypeWithGoPackage $.File}},{{end}}{{end}} token, requestID string)({{with $out := $m.OutputType | getMessageType $.File}}{{range $f := $out.Field}}{{$f.Name|lowerCamelCase}} {{$f | goTypeWithGoPackage $.File}}, {{end}}{{end}}err error) { |  | ||||||
|  |  | ||||||
|   out := &{{$pkg}}.{{$m.Name}}Response{} |  | ||||||
| 	_ = out |  | ||||||
|  |  | ||||||
| {{with $out := $m.OutputType | getMessageType $.File}} |  | ||||||
|   return {{range $f := $out.Field}}out.{{$f.Name|camelCase}}, {{end}}nil |  | ||||||
| {{end}} {{/* with */}} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| {{end}} {{/* streaming ifs */}} |  | ||||||
| {{end}}{{end}} {{/* range with */}} |  | ||||||
| @@ -1,10 +0,0 @@ | |||||||
| SOURCES :=	$(shell find . -name "*.proto" -not -path ./vendor/\*) |  | ||||||
|  |  | ||||||
| TARGETS_K8S :=	$(foreach source, $(SOURCES), $(source)_k8s) |  | ||||||
|  |  | ||||||
| .PHONY: build |  | ||||||
| build: $(TARGETS_K8S) |  | ||||||
|  |  | ||||||
| $(TARGETS_K8S): %_k8s: |  | ||||||
| 	@mkdir -p $(dir $*)gen |  | ||||||
| 	protoc $(PROTOC_OPTS) --gotemplate_out=debug=true,template_dir=./templates:$(dir $*)gen "$*" |  | ||||||
| @@ -1,18 +0,0 @@ | |||||||
| apiVersion: extensions/v1beta1 |  | ||||||
| kind: Deployment |  | ||||||
| metadata: |  | ||||||
|   name: nginx |  | ||||||
|   labels: |  | ||||||
|     method: Hello-World-nginx |  | ||||||
| spec: |  | ||||||
|   replicas: 3 |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app: nginx |  | ||||||
|     spec: |  | ||||||
|       containers: |  | ||||||
|       - name: nginx |  | ||||||
|         image: nginx |  | ||||||
|         ports: |  | ||||||
|         - containerPort: 80 |  | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user