From fe2b02e70fb98c9612acc00bf35c795ec444157d Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 5 Feb 2020 15:37:58 +0100 Subject: [PATCH] chore(scaffolder): moving around some files and bringing the project more in line with the inventory service --- backend/scaffolder/app/server.go | 35 +++++++++++++++++++ backend/scaffolder/main.go | 31 ++-------------- backend/scaffolder/repository/repository.go | 23 ++++++++++++ .../react-ssr-template/template-info.json | 6 ++++ 4 files changed, 66 insertions(+), 29 deletions(-) create mode 100644 backend/scaffolder/app/server.go create mode 100644 backend/scaffolder/repository/repository.go create mode 100644 backend/scaffolder/templates/react-ssr-template/template-info.json diff --git a/backend/scaffolder/app/server.go b/backend/scaffolder/app/server.go new file mode 100644 index 0000000000..cc623ef1b0 --- /dev/null +++ b/backend/scaffolder/app/server.go @@ -0,0 +1,35 @@ +package app + +import ( + "context" + "fmt" + "github.com/spotify/backstage/scaffolder/repository" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + + pb "github.com/spotify/backstage/proto/scaffolder/v1" +) + +// Server is the inventory Grpc server +type Server struct { + Repository *repsoitory.Repository +} + +// GetAllTemplates returns the local templatess +func (s *server) GetAllTemplates(ctx context.Context, req *pb.Empty) (*pb.GetAllTemplatesResponse, error) { + err, localTemplates := s.repostiory.Load() + template := &pb.Template{ + Id: "react-ssr-template", + Name: "React SSR Template", + User: &identity.User{ + Id: "spotify", + Name: "Spotify", + }, + } + + templates := []*pb.Template{template} + + return &pb.GetAllTemplatesResponse{ + Templates: templates, + }, nil +} diff --git a/backend/scaffolder/main.go b/backend/scaffolder/main.go index c895ddab8f..6fa8bd568c 100644 --- a/backend/scaffolder/main.go +++ b/backend/scaffolder/main.go @@ -5,8 +5,7 @@ import ( "log" "net" - identity "github.com/spotify/backstage/backend/proto/identity/v1" - pb "github.com/spotify/backstage/backend/proto/scaffolder/v1" + "github.com/spotify/backstage/scaffolder/app" "google.golang.org/grpc" ) @@ -21,33 +20,7 @@ func main() { } grpcServer := grpc.NewServer() - pb.RegisterScaffolderServer(grpcServer, &server{}) - + pb.RegisterScaffolderServer(grpcServer, &app.Server{}) log.Println("Serving Scaffolder Service") grpcServer.Serve(lis) } - -// LocalTemplate json representation -type LocalTemplate struct { - ID string - Name string -} - -type server struct{} - -func (s *server) GetAllTemplates(ctx context.Context, req *pb.Empty) (*pb.GetAllTemplatesResponse, error) { - template := &pb.Template{ - Id: "react-ssr-template", - Name: "React SSR Template", - User: &identity.User{ - Id: "spotify", - Name: "Spotify", - }, - } - - templates := []*pb.Template{template} - - return &pb.GetAllTemplatesResponse{ - Templates: templates, - }, nil -} diff --git a/backend/scaffolder/repository/repository.go b/backend/scaffolder/repository/repository.go new file mode 100644 index 0000000000..e97300edc0 --- /dev/null +++ b/backend/scaffolder/repository/repository.go @@ -0,0 +1,23 @@ +package repository + +import ( + "fmt" + "path/filepath" +) + +// Local Repository +type Local struct{} + +// TemplateDefinition maps to whats stored in the repo +type TemplateDefinition struct { + ID string + Name string + Description string + OwnerID string +} + +// Load will return all the local templates +func (s *Local) Load() ([]*TemplateDefinition, error) { + matches, err := filepath.Glob("templates/**/template-info.json") + fmt.Println(matches) +} diff --git a/backend/scaffolder/templates/react-ssr-template/template-info.json b/backend/scaffolder/templates/react-ssr-template/template-info.json new file mode 100644 index 0000000000..f1d3efd9fe --- /dev/null +++ b/backend/scaffolder/templates/react-ssr-template/template-info.json @@ -0,0 +1,6 @@ +{ + "id": "react-ssr-template", + "name": "React SSR", + "description": "Next.js application skeleton for creating isomorphic web applications.", + "ownerId": "ownerId" +} \ No newline at end of file