parcoursmob/services/fleets.go

74 lines
1.7 KiB
Go
Executable File

package services
import (
"context"
"sort"
"git.coopgo.io/coopgo-apps/parcoursmob/utils/sorting"
fleets "git.coopgo.io/coopgo-platform/fleets/grpcapi"
"git.coopgo.io/coopgo-platform/fleets/storage"
"github.com/rs/zerolog/log"
"google.golang.org/grpc"
)
type FleetsService struct {
fleets.FleetsClient
}
func NewFleetsService(dial string) (*FleetsService, error) {
conn, err := grpc.Dial(dial, grpc.WithInsecure())
client := fleets.NewFleetsClient(conn)
if err != nil {
return nil, err
}
return &FleetsService{
FleetsClient: client,
}, nil
}
func (s *ServicesHandler) GetBooking(bookingid string) (booking storage.Booking, err error) {
request := &fleets.GetBookingRequest{
Bookingid: bookingid,
}
resp, err := s.GRPC.Fleets.GetBooking(context.TODO(), request)
if err == nil {
booking = resp.Booking.ToStorageType()
}
return
}
func (s *ServicesHandler) GetBookings() (bookings []storage.Booking, err error) {
bookings = []storage.Booking{}
request := &fleets.GetBookingsRequest{}
resp, err := s.GRPC.Fleets.GetBookings(context.TODO(), request)
if err == nil {
for _, booking := range resp.Bookings {
bookings = append(bookings, booking.ToStorageType())
}
sort.Sort(sorting.BookingsByStartdate(bookings))
}
return
}
func (s *ServicesHandler) GetVehiclesMap() (vehicles map[string]storage.Vehicle, err error) {
vehicles = map[string]storage.Vehicle{}
request := &fleets.GetVehiclesRequest{
Namespaces: []string{"parcoursmob"},
}
resp, err := s.GRPC.Fleets.GetVehicles(context.TODO(), request)
if err != nil {
log.Error().Err(err).Msg("")
} else {
for _, vehicle := range resp.Vehicles {
vehicles[vehicle.Id] = vehicle.ToStorageType()
}
}
return vehicles, err
}