Add a list function

This commit is contained in:
2024-04-15 15:45:05 +02:00
parent 8305425d47
commit 80003e41ad
3 changed files with 68 additions and 1 deletions

View File

@ -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
}