mirror of
https://github.com/cjdenio/uta-trax-api.git
synced 2026-08-04 22:06:34 +00:00
we do json now
This commit is contained in:
+25
-15
@@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
@@ -117,12 +118,6 @@ func getVehicles() ([]*pb.VehiclePosition, *pb.FeedHeader, error) {
|
||||
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 {
|
||||
vehicle_feed := make([]*pb.VehicleFeed_Vehicle, 0, len(vehicles))
|
||||
|
||||
@@ -238,16 +233,31 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
feed := feedifyVehicles(vehicles, header, routeTypeFilter)
|
||||
b, err := proto.Marshal(&feed)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
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)
|
||||
b, err := proto.Marshal(&feed)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
w.Header().Add("Content-Type", "application/protobuf")
|
||||
w.Header().Add("Content-Length", strconv.Itoa(len(b)))
|
||||
w.Write(b)
|
||||
}
|
||||
w.Header().Add("Content-Type", "application/protobuf")
|
||||
w.Header().Add("Content-Length", strconv.Itoa(len(b)))
|
||||
w.Write(b)
|
||||
})
|
||||
|
||||
port := "3000"
|
||||
|
||||
Reference in New Issue
Block a user