blob: e60cefd22b40931db6a8ddbd57a482b0e9ac482e [file] [log] [blame]
/**
Example Action feed for Google Order Redirect.
**/
package main
import (
pb "feed/app/generated/google/madden/ingestion"
"fmt"
"google.golang.org/protobuf/encoding/protojson"
)
func main() {
feedJSON := createFeed()
fmt.Println(feedJSON)
}
func createFeed() string {
// Create ActionDetail
// Example using one link for both delivery and takeout
merchantNameCombined := "merchant-1"
linkIDCombined := "merchant-1-takeout-delivery-action"
urlCombined := "http://provider.com/merchant-1"
actionCombined := &pb.ActionDetail{
EntityId: &merchantNameCombined,
LinkId: &linkIDCombined,
Url: &urlCombined,
Actions: []*pb.Action{{
ActionInfo: &pb.Action_FoodOrderingInfo{
FoodOrderingInfo: &pb.FoodOrderingInfo{
ServiceType: pb.FoodOrderingInfo_DELIVERY,
},
}}, {
ActionInfo: &pb.Action_FoodOrderingInfo{
FoodOrderingInfo: &pb.FoodOrderingInfo{
ServiceType: pb.FoodOrderingInfo_TAKEOUT,
},
}},
},
}
// Example using a separate link for delivery
merchantNameDelivery := "merchant-2"
linkIDDelivery := "merchant-2-delivery-action"
urlDelivery := "http://provider.com/merchant-2/delivery"
actionDelivery := &pb.ActionDetail{
EntityId: &merchantNameDelivery,
LinkId: &linkIDDelivery,
Url: &urlDelivery,
Actions: []*pb.Action{{
ActionInfo: &pb.Action_FoodOrderingInfo{
FoodOrderingInfo: &pb.FoodOrderingInfo{
ServiceType: pb.FoodOrderingInfo_DELIVERY,
},
}},
},
}
// Create ActionFeed
feed := &pb.ActionFeed{
Data: []*pb.ActionDetail{
actionCombined,
actionDelivery,
},
}
// Serialize to JSON string
marshalOptions := protojson.MarshalOptions{
UseProtoNames: true,
}
jsonBytes, _ := marshalOptions.Marshal(feed)
return string(jsonBytes)
}
// [END create_feed]