// Path: app/src/main/java/com/ghostflying/portalwaitinglist/model/Message.java
// public class Message {
//     private static final String SUBJECT_NAME = "Subject";
//     private static final String SUBJECT_DATE = "Date";
// 
//     Payload payload;
//     String id;
// 
//     public String getId(){
//         return id;
//     }
// 
//     public String getSubject(){
//         for(Header header : payload.headers){
//             if (header.name.equals(SUBJECT_NAME))
//                 return header.value;
//         }
//         return null;
//     }
// 
//     public Date getDate(){
//         for(Header header : payload.headers){
//             if (header.name.equals(SUBJECT_DATE)){
//                 Date date = null;
//                 try{
//                     date = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.US).parse(header.value);
//                 }
//                 catch (ParseException e){
//                     e.printStackTrace();
//                 }
//                 return date;
//             }
//         }
//         return null;
//     }
// 
//     public String getMessageHtml(){
//         return payload.parts[1].body.data;
//     }
// 
//     private class Payload{
//         Header[] headers;
//         MimePart[] parts;
//     }
// 
//     private class Header{
//         String name;
//         String value;
//     }
// 
//     private class MimePart{
//         String mimeType;
//         MimeBody body;
//     }
// 
//     private class MimeBody{
//         String data;
//     }
// }
// 
// Path: app/src/main/java/com/ghostflying/portalwaitinglist/model/MessageList.java
// public class MessageList {
//     public ArrayList<MessageId> getMessages() {
//         if (messages == null)
//             messages = new ArrayList<MessageId>();
//         return messages;
//     }
// 
//     public String getNextPageToken() {
//         return nextPageToken;
//     }
// 
//     ArrayList<MessageId> messages;
//     String nextPageToken;
//     //long resultSizeEstimate;
// 
//     /**
//      * Return if there is already next page in the query.
//      * @return  true if there is next page, otherwise false.
//      */
//     public boolean hasNextPage(){
//         return (nextPageToken != null);
//     }
// 
//     /**
//      * The data in messages, only contain id and threadId
//      */
//     public class MessageId {
//         public String getId() {
//             return id;
//         }
// 
//         String id;
//         //String threadId;
//     }
// }


import com.ghostflying.portalwaitinglist.model.Message;
import com.ghostflying.portalwaitinglist.model.MessageList;
import retrofit.http.GET;
import retrofit.http.Path;
import retrofit.http.Query;
package com.ghostflying.portalwaitinglist.util;



/**
 * Created by ghostflying on 11/19/14.
 * <br>
 * GMail API interface, used by retrofit to achieve.
 */
public interface GMailService {
    @GET("/users/me/messages")
    public MessageList getMessages(@Query("q") String query, @Query("pageToken") String pageToken);

    @GET("/users/me/messages/{id}")
// Path: app/src/main/java/com/ghostflying/portalwaitinglist/model/Message.java
// public class Message {
//     private static final String SUBJECT_NAME = "Subject";
//     private static final String SUBJECT_DATE = "Date";
// 
//     Payload payload;
//     String id;
// 
//     public String getId(){
//         return id;
//     }
// 
//     public String getSubject(){
//         for(Header header : payload.headers){
//             if (header.name.equals(SUBJECT_NAME))
//                 return header.value;
//         }
//         return null;
//     }
// 
//     public Date getDate(){
//         for(Header header : payload.headers){
//             if (header.name.equals(SUBJECT_DATE)){
//                 Date date = null;
//                 try{
//                     date = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.US).parse(header.value);
//                 }
//                 catch (ParseException e){
//                     e.printStackTrace();
//                 }
//                 return date;
//             }
//         }
//         return null;
//     }
// 
//     public String getMessageHtml(){
//         return payload.parts[1].body.data;
//     }
// 
//     private class Payload{
//         Header[] headers;
//         MimePart[] parts;
//     }
// 
//     private class Header{
//         String name;
//         String value;
//     }
// 
//     private class MimePart{
//         String mimeType;
//         MimeBody body;
//     }
// 
//     private class MimeBody{
//         String data;
//     }
// }
// 
// Path: app/src/main/java/com/ghostflying/portalwaitinglist/model/MessageList.java
// public class MessageList {
//     public ArrayList<MessageId> getMessages() {
//         if (messages == null)
//             messages = new ArrayList<MessageId>();
//         return messages;
//     }
// 
//     public String getNextPageToken() {
//         return nextPageToken;
//     }
// 
//     ArrayList<MessageId> messages;
//     String nextPageToken;
//     //long resultSizeEstimate;
// 
//     /**
//      * Return if there is already next page in the query.
//      * @return  true if there is next page, otherwise false.
//      */
//     public boolean hasNextPage(){
//         return (nextPageToken != null);
//     }
// 
//     /**
//      * The data in messages, only contain id and threadId
//      */
//     public class MessageId {
//         public String getId() {
//             return id;
//         }
// 
//         String id;
//         //String threadId;
//     }
// }


// Path: app/src/main/java/com/ghostflying/portalwaitinglist/util/GMailService.java
import com.ghostflying.portalwaitinglist.model.Message;
import com.ghostflying.portalwaitinglist.model.MessageList;
import retrofit.http.GET;
import retrofit.http.Path;
import retrofit.http.Query;

package com.ghostflying.portalwaitinglist.util;



/**
 * Created by ghostflying on 11/19/14.
 * <br>
 * GMail API interface, used by retrofit to achieve.
 */
public interface GMailService {
    @GET("/users/me/messages")
    public MessageList getMessages(@Query("q") String query, @Query("pageToken") String pageToken);

    @GET("/users/me/messages/{id}")
    public Message getMessage(@Path("id") String id, @Query("format")String format, @Query("metadataHeaders") String[] metadataHeaders);