package application import ( "context" "fmt" "net/http" "time" solidarity_service "git.coopgo.io/sbouaram/solidarity-service/servers/grpc/proto" geojson "github.com/paulmach/go.geojson" "google.golang.org/protobuf/types/known/timestamppb" ) func (h *ApplicationHandler) DriversJourney(w http.ResponseWriter, r *http.Request) { if r.Method == "POST" { // firstname := r.FormValue("first_name") // lastname := r.FormValue("last_name") departure := r.FormValue("departure") destination := r.FormValue("destination") //date := r.FormValue("date") var ( departuregeo *geojson.Feature destinationgeo *geojson.Feature ) departureTime := time.Now() timestamp := timestamppb.New(departureTime) if departure != "" && destination != "" { // searched = true var err error departuregeo, err = geojson.UnmarshalFeature([]byte(departure)) if err != nil { fmt.Println(err) w.WriteHeader(http.StatusBadRequest) return } destinationgeo, err = geojson.UnmarshalFeature([]byte(destination)) if err != nil { fmt.Println(err) w.WriteHeader(http.StatusBadRequest) return } fmt.Println(departuregeo, destinationgeo, "departuregeo") } request := &solidarity_service.DriverJourneysRequest{ DepartureDate: timestamp, Departure: &solidarity_service.Feature{ Lat: departuregeo.Geometry.Point[0], Long: departuregeo.Geometry.Point[1], Address: departure, }, } drivers, err := h.services.GRPC.SolidarityService.DriverJourneys(context.TODO(), request) if err != nil { fmt.Println(err) w.WriteHeader(http.StatusInternalServerError) return } fmt.Println("drivers: ", drivers) h.Renderer.SolidarityServiceBookingList(w, r, drivers) } else { departureTime := time.Now() timestamp := timestamppb.New(departureTime) request := &solidarity_service.DriverJourneysRequest{ DepartureDate: timestamp, Departure: &solidarity_service.Feature{ Lat: 0, Long: 0, Address: "Null Island (default)", }, } drivers, err := h.services.GRPC.SolidarityService.DriverJourneys(context.TODO(), request) if err != nil { fmt.Println(err) w.WriteHeader(http.StatusInternalServerError) return } h.Renderer.SolidarityServiceBookingList(w, r, drivers) } }