Add a list function
This commit is contained in:
		@@ -97,5 +97,39 @@ func (e *EnvironmentsServer) Get(ctx context.Context, in *proto.EnvironmentId) (
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (e *EnvironmentsServer) List(in *empty.Empty, stream proto.Environments_ListServer) error {
 | 
			
		||||
	md, ok := metadata.FromIncomingContext(stream.Context())
 | 
			
		||||
	if !ok {
 | 
			
		||||
		return errors.New("metadata is not provided")
 | 
			
		||||
	}
 | 
			
		||||
	token, ok := md["token"]
 | 
			
		||||
	if !ok {
 | 
			
		||||
		return errors.New("token is not sent via metadata")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	uuid, ok := md["uuid"]
 | 
			
		||||
	if !ok {
 | 
			
		||||
		return errors.New("used id is not sent via metadata")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	environment := &controllers.Environemnt{
 | 
			
		||||
		UserID:     uuid[0],
 | 
			
		||||
		Controller: e.controller,
 | 
			
		||||
		Token:      token[0],
 | 
			
		||||
	}
 | 
			
		||||
	envs, err := environment.ListEnvs(stream.Context())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, env := range envs {
 | 
			
		||||
		if err := stream.Send(&proto.EnvironmentFull{
 | 
			
		||||
			Id: &proto.EnvironmentId{Id: "test"},
 | 
			
		||||
			Data: &proto.EnvironmentData{
 | 
			
		||||
				Name: env,
 | 
			
		||||
			},
 | 
			
		||||
		}); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user