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 (
|
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,16 +233,31 @@ func main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
feed := feedifyVehicles(vehicles, header, routeTypeFilter)
|
if r.Header.Get("Accept") == "application/json" {
|
||||||
b, err := proto.Marshal(&feed)
|
feed := feedifyVehicles(vehicles, header, routeTypeFilter)
|
||||||
if err != nil {
|
response, err := json.Marshal(&feed)
|
||||||
log.Println(err)
|
if err != nil {
|
||||||
w.WriteHeader(http.StatusInternalServerError)
|
log.Println(err)
|
||||||
return
|
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"
|
port := "3000"
|
||||||
|
|||||||
Reference in New Issue
Block a user