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