Peter Kurfer
49e58ac2e4
- move to Gitlab - make code better testable - create app abstraction for server - cleanup
37 lines
885 B
Go
37 lines
885 B
Go
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()),
|
|
}
|
|
}
|