we do json now

This commit is contained in:
cjdenio committed 2026-05-03 19:19:53 -06:00
1 parent 71685297f7
commit f1abe3becf
1 file changed
+16 -6
+16 -6
View File
@@ -2,6 +2,7 @@ package main
import ( import (
"database/sql" "database/sql"
"encoding/json"
"fmt" "fmt"
"io" "io"
"log" "log"
@@ -117,12 +118,6 @@ func getVehicles() ([]*pb.VehiclePosition, *pb.FeedHeader, error) {
return vehicles, feed.Header, nil return vehicles, feed.Header, nil
} }
type TripInfo struct {
Line pb.VehicleFeed_Line
Direction int32
Headsign string
}
func feedifyVehicles(vehicles []*pb.VehiclePosition, header *pb.FeedHeader, routeTypes map[int]bool) pb.VehicleFeed { func feedifyVehicles(vehicles []*pb.VehiclePosition, header *pb.FeedHeader, routeTypes map[int]bool) pb.VehicleFeed {
vehicle_feed := make([]*pb.VehicleFeed_Vehicle, 0, len(vehicles)) vehicle_feed := make([]*pb.VehicleFeed_Vehicle, 0, len(vehicles))
@@ -238,6 +233,20 @@ func main() {
} }
} }
if r.Header.Get("Accept") == "application/json" {
feed := feedifyVehicles(vehicles, header, routeTypeFilter)
response, err := json.Marshal(&feed)
if err != nil {
log.Println(err)
w.WriteHeader(http.StatusInternalServerError)
return
}
w.Header().Add("Content-Type", "application/json")
w.Header().Add("Content-Length", strconv.Itoa(len(response)))
w.Write(response)
} else {
// send a protobuf
feed := feedifyVehicles(vehicles, header, routeTypeFilter) feed := feedifyVehicles(vehicles, header, routeTypeFilter)
b, err := proto.Marshal(&feed) b, err := proto.Marshal(&feed)
if err != nil { if err != nil {
@@ -248,6 +257,7 @@ func main() {
w.Header().Add("Content-Type", "application/protobuf") w.Header().Add("Content-Type", "application/protobuf")
w.Header().Add("Content-Length", strconv.Itoa(len(b))) w.Header().Add("Content-Length", strconv.Itoa(len(b)))
w.Write(b) w.Write(b)
}
}) })
port := "3000" port := "3000"