Generate endpoints + transports
This commit is contained in:
		@@ -1 +1,93 @@
 | 
			
		||||
package sprint_transporthttp
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	context "golang.org/x/net/context"
 | 
			
		||||
	"log"
 | 
			
		||||
	"net/http"
 | 
			
		||||
 | 
			
		||||
	gokit_endpoint "github.com/go-kit/kit/endpoint"
 | 
			
		||||
	httptransport "github.com/go-kit/kit/transport/http"
 | 
			
		||||
	pb "github.com/moul/protoc-gen-gotemplate/examples/go-kit/services/sprint"
 | 
			
		||||
	endpoints "github.com/moul/protoc-gen-gotemplate/examples/go-kit/sprint/gen/endpoints"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func MakeAddSprintHandler(ctx context.Context, svc pb.SprintServiceServer, endpoint gokit_endpoint.Endpoint) *httptransport.Server {
 | 
			
		||||
	return httptransport.NewServer(
 | 
			
		||||
		ctx,
 | 
			
		||||
		endpoint,
 | 
			
		||||
		decodeAddSprintRequest,
 | 
			
		||||
		encodeAddSprintResponse,
 | 
			
		||||
		append([]httptransport.ServerOption{}, httptransport.ServerBefore(jwt.ToHTTPContext()))...,
 | 
			
		||||
	)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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 encodeAddSprintResponse(ctx context.Context, w http.ResponseWriter, response interface{}) error {
 | 
			
		||||
	return json.NewEncoder(w).Encode(response)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func MakeCloseSprintHandler(ctx context.Context, svc pb.SprintServiceServer, endpoint gokit_endpoint.Endpoint) *httptransport.Server {
 | 
			
		||||
	return httptransport.NewServer(
 | 
			
		||||
		ctx,
 | 
			
		||||
		endpoint,
 | 
			
		||||
		decodeCloseSprintRequest,
 | 
			
		||||
		encodeCloseSprintResponse,
 | 
			
		||||
		append([]httptransport.ServerOption{}, httptransport.ServerBefore(jwt.ToHTTPContext()))...,
 | 
			
		||||
	)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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 encodeCloseSprintResponse(ctx context.Context, w http.ResponseWriter, response interface{}) error {
 | 
			
		||||
	return json.NewEncoder(w).Encode(response)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func MakeGetSprintHandler(ctx context.Context, svc pb.SprintServiceServer, endpoint gokit_endpoint.Endpoint) *httptransport.Server {
 | 
			
		||||
	return httptransport.NewServer(
 | 
			
		||||
		ctx,
 | 
			
		||||
		endpoint,
 | 
			
		||||
		decodeGetSprintRequest,
 | 
			
		||||
		encodeGetSprintResponse,
 | 
			
		||||
		append([]httptransport.ServerOption{}, httptransport.ServerBefore(jwt.ToHTTPContext()))...,
 | 
			
		||||
	)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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 encodeGetSprintResponse(ctx context.Context, w http.ResponseWriter, response interface{}) error {
 | 
			
		||||
	return json.NewEncoder(w).Encode(response)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func RegisterHandlers(ctx context.Context, svc pb.SprintServiceServer, mux *http.ServeMux, endpoints endpoints.Endpoints) error {
 | 
			
		||||
 | 
			
		||||
	log.Println("new HTTP endpoint: \"/AddSprint\" (service=Sprint)")
 | 
			
		||||
	mux.Handle("/AddSprint", MakeAddSprintHandler(ctx, svc, endpoints.AddSprintEndpoint))
 | 
			
		||||
 | 
			
		||||
	log.Println("new HTTP endpoint: \"/CloseSprint\" (service=Sprint)")
 | 
			
		||||
	mux.Handle("/CloseSprint", MakeCloseSprintHandler(ctx, svc, endpoints.CloseSprintEndpoint))
 | 
			
		||||
 | 
			
		||||
	log.Println("new HTTP endpoint: \"/GetSprint\" (service=Sprint)")
 | 
			
		||||
	mux.Handle("/GetSprint", MakeGetSprintHandler(ctx, svc, endpoints.GetSprintEndpoint))
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user