示例#1
0
func (srv *CityService) GetAll(p RouteArgs) {
	user_id, err := strconv.ParseInt(p.Vars["user"], 10, 64)
	if err != nil {
		fmt.Fprintf(p.Writer, "no such player %s", p.Vars["user"])
		return
	}
	player := srv.World.Players[core.PlayerId(user_id)]

	response := make([]CityResponse, len(core.Cities))
	i := 0
	for _, city := range core.Cities {
		response[i] = CityResponse{
			Id:    int64(city.Id),
			Name:  city.Name,
			Stock: make([]CrateResponse, 0),
		}

		/* Player stock */
		if crates, ok := city.Stock.Crates[player]; ok {
			for _, crate := range crates {
				response[i].Stock = append(response[i].Stock, CrateResponse{
					Type:      crate.Type.Type(),
					Commodity: crate.Type.Name,
					Quantity:  crate.Qty,
					Owner:     crate.Owner.Name,
					Weight:    crate.Weight().String(),
				})
			}

			sort.Sort(CrateByType(response[i].Stock))
		}

		i++
	}

	/* Sort responses by City Id */
	sort.Sort(CityById(response))

	p.Writer.Header().Set("Content-Type", "application/json")
	json, err := json.Marshal(response)
	if err == nil {
		p.Writer.Write(json)
	}
}
示例#2
0
func (srv *VehicleService) GetAll(p RouteArgs) {
	user_id, err := strconv.ParseInt(p.Vars["user"], 10, 64)
	if err != nil {
		fmt.Fprintf(p.Writer, "no such player %s", p.Vars["user"])
		return
	}
	player := srv.World.Players[core.PlayerId(user_id)]

	response := make([]VehicleResponse, len(player.Vehicles))
	i := 0
	for _, v := range player.Vehicles {
		response[i] = NewVehicleResponse(v, player)
		i++
	}

	p.Writer.Header().Set("Content-Type", "application/json")
	js, _ := json.Marshal(response)
	p.Writer.Write(js)
}
示例#3
0
func (srv *VehicleService) Get(p RouteArgs) {
	user_id, err := strconv.ParseInt(p.Vars["user"], 10, 64)
	if err != nil {
		fmt.Fprintf(p.Writer, "no player id")
		return
	}
	player := srv.World.Players[core.PlayerId(user_id)]

	vehicle_id, err := strconv.ParseInt(p.Vars["vehicle"], 10, 64)
	if err != nil {
		fmt.Fprintf(p.Writer, "no vehicle id")
		return
	}
	exists, vehicle := core.World.Vehicles.Find(core.VehicleId(vehicle_id))
	if exists {
		response := NewVehicleResponse(vehicle, player)

		p.Writer.Header().Set("Content-Type", "application/json")
		js, _ := json.Marshal(response)
		p.Writer.Write(js)
	} else {
		fmt.Fprintf(p.Writer, "Vehicle %d not found", vehicle_id)
	}
}