package com.example.helloendpoints;

import com.google.api.server.spi.config.Api;
import com.google.api.server.spi.config.ApiMethod;
import com.google.api.server.spi.response.NotFoundException;
import com.google.appengine.api.users.User;

import java.util.ArrayList;

import javax.inject.Named;

/**
 * Defines v1 of a helloworld API, which provides simple "greeting" methods.
 */
@Api(
    name = "helloworld",
    version = "v1",
    scopes = {Constants.EMAIL_SCOPE},
    clientIds = {Constants.WEB_CLIENT_ID, Constants.ANDROID_CLIENT_ID, Constants.IOS_CLIENT_ID},
    audiences = {Constants.ANDROID_AUDIENCE}
)
public class Greetings {

  public static ArrayList<HelloGreeting> greetings = new ArrayList<HelloGreeting>();

  static {
    greetings.add(new HelloGreeting("hello world!"));
    greetings.add(new HelloGreeting("goodbye world!"));
  }

  public HelloGreeting getGreeting(@Named("id") Integer id) throws NotFoundException {
    try {
      return greetings.get(id);
    } catch (IndexOutOfBoundsException e) {
      throw new NotFoundException("Greeting not found with an index: " + id);
    }
  }

  public ArrayList<HelloGreeting> listGreeting() {
    return greetings;
  }

  @ApiMethod(name = "greetings.multiply", httpMethod = "post")
  public HelloGreeting insertGreeting(@Named("times") Integer times, HelloGreeting greeting) {
    HelloGreeting response = new HelloGreeting();
    StringBuilder responseBuilder = new StringBuilder();
    for (int i = 0; i < times; i++) {
      responseBuilder.append(greeting.getMessage());
    }
    response.setMessage(responseBuilder.toString());
    return response;
  }

  @ApiMethod(name = "greetings.authed", path = "hellogreeting/authed")
  public HelloGreeting authedGreeting(User user) {
    HelloGreeting response = new HelloGreeting("hello " + user.getEmail());
    return response;
  }
}

@@ -1,8 +1,27 @@
+//%5BSTART imports%5D%0A%0A
 package 
@@ -306,16 +306,51 @@
 t.Named;
+%0A//%5BEND imports%5D%0A //%5BSTART api_def%5D
 %0A%0A/**%0A *
@@ -433,21 +433,16 @@
 */%0A@Api(
-%0A    
 name = %22
@@ -888,24 +888,63 @@
 rld!%22));%0A  %7D
+%0A//%5BEND api_def%5D%0A//%5BSTART getgreetings%5D
 %0A%0A  public H
@@ -1267,24 +1267,73 @@
 eetings;%0A  %7D
+%0A//%5BEND getgreetings%5D%0A//%5BSTART multiplygreetings%5D
 %0A%0A  @ApiMeth
@@ -1757,24 +1757,66 @@
 esponse;%0A  %7D
+%0A//%5BEND multiplygreetings%5D%0A//%5BSTART auth%5D 
 %0A%0A  @ApiMeth
@@ -2024,14 +2024,27 @@
 sponse;%0A
-
   %7D%0A
+//%5BEND auth%5D%0A
 %7D%0A

Update Greetings.java