api/internal/rpc/endpoints_server.go

38 lines
885 B
Go
Raw Normal View History

package rpc
import (
"context"
"gitlab.com/inetmock/inetmock/internal/endpoints"
)
type endpointsServer struct {
UnimplementedEndpointsServer
endpointsManager endpoints.EndpointManager
}
func (e endpointsServer) GetEndpoints(_ context.Context, _ *GetEndpointsRequest) (*GetEndpointsResponse, error) {
eps := rpcEndpointsFromEndpoints(e.endpointsManager.StartedEndpoints())
return &GetEndpointsResponse{
Endpoints: *eps,
}, nil
}
func rpcEndpointsFromEndpoints(eps []endpoints.Endpoint) *[]*Endpoint {
out := make([]*Endpoint, 0)
for _, ep := range eps {
out = append(out, rpcEndpointFromEndpoint(ep))
}
return &out
}
func rpcEndpointFromEndpoint(ep endpoints.Endpoint) *Endpoint {
return &Endpoint{
Id: ep.Id().String(),
Name: ep.Name(),
Handler: ep.Handler(),
ListenAddress: ep.Listen(),
Port: int32(ep.Port()),
}
}