| /** |
| Example Action feed for Google Order Redirect. Create "src/main/generated" directory for generated proto classes. |
| Download lastest version of protoc from https://github.com/protocolbuffers/protobuf/releases. |
| Generate proto classes with: |
| protoc --java_out=src/main/java/generated --proto_path=../proto/ ../proto/action.proto |
| |
| See https://protobuf.dev/reference/java/java-generated/ for more details. |
| **/ |
| |
| package com.example.order_redirect; |
| |
| import com.google.protobuf.InvalidProtocolBufferException; |
| import com.google.protobuf.util.JsonFormat; |
| import com.google.madden.ingestion.ActionFeed; |
| import com.google.madden.ingestion.Action; |
| import com.google.madden.ingestion.ActionDetail; |
| import com.google.madden.ingestion.FoodOrderingInfo; |
| |
| |
| public class ActionFeedExample { |
| |
| public static void main(String[] args) throws InvalidProtocolBufferException { |
| ActionFeedExample feed = new ActionFeedExample(); |
| String feedJSON = feed.createActionFeed(); |
| System.out.println(feedJSON); |
| } |
| |
| public String createActionFeed() throws InvalidProtocolBufferException { |
| |
| // Create ActionFeed |
| ActionFeed.Builder actionFeed = ActionFeed.newBuilder(); |
| |
| // Create ActionDetail using one link for both takeout and delivery |
| ActionDetail actionDetailDeliveryTakeout = ActionDetail.newBuilder() |
| .setEntityId("merchant-1") |
| .setLinkId("merchant-1-takeout-delivery-action") |
| .setUrl("http://provider.com/merchant-1") |
| .addActions( |
| Action.newBuilder().setFoodOrderingInfo( |
| FoodOrderingInfo.newBuilder().setServiceType( |
| FoodOrderingInfo.ServiceType.DELIVERY |
| ) |
| ) |
| ) |
| .addActions( |
| Action.newBuilder().setFoodOrderingInfo( |
| FoodOrderingInfo.newBuilder().setServiceType( |
| FoodOrderingInfo.ServiceType.TAKEOUT |
| ) |
| ) |
| ).build(); |
| |
| // Add to feed data |
| actionFeed.addData(actionDetailDeliveryTakeout); |
| |
| // Create ActionDetail using a separate link for delivery |
| ActionDetail actionDetailDelivery = ActionDetail.newBuilder() |
| .setEntityId("merchant-2") |
| .setLinkId("merchant-2-delivery-action") |
| .setUrl("http://provider.com/merchant-2/delivery") |
| .addActions( |
| Action.newBuilder().setFoodOrderingInfo( |
| FoodOrderingInfo.newBuilder().setServiceType( |
| FoodOrderingInfo.ServiceType.DELIVERY |
| ) |
| ) |
| ).build(); |
| |
| // Add to feed data |
| actionFeed.addData(actionDetailDelivery); |
| |
| // Serialize feed to JSON string |
| return JsonFormat.printer() |
| .omittingInsignificantWhitespace() |
| .preservingProtoFieldNames() |
| .print(actionFeed); |
| } |
| |
| } |