// Path: el-bombillo-ui-gateway/src/main/java/org/bitionaire/elbombillo/ui/gateway/core/User.java
// public class User {
// 
//     private long id;
// 
//     @NotBlank
//     private String name;
// 
//     @NotBlank
//     private String firstname;
// 
//     @NotBlank
//     private String lastname;
// 
//     @NotBlank
//     private String email;
// 
//     public User(
//             long id,
//             String name,
//             String firstname,
//             String lastname,
//             String email
//     ) {
//         this.id = id;
//         this.name = name;
//         this.firstname = firstname;
//         this.lastname = lastname;
//         this.email = email;
//     }
// 
//     @JsonProperty
//     public long getId() {
//         return id;
//     }
// 
//     public void setId(long id) {
//         this.id = id;
//     }
// 
//     @JsonProperty
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     @JsonProperty
//     public String getFirstname() {
//         return firstname;
//     }
// 
//     public void setFirstname(String firstname) {
//         this.firstname = firstname;
//     }
// 
//     @JsonProperty
//     public String getLastname() {
//         return lastname;
//     }
// 
//     public void setLastname(String lastname) {
//         this.lastname = lastname;
//     }
// 
//     @JsonProperty
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// }
// 
// Path: el-bombillo-ui-gateway/src/main/java/org/bitionaire/elbombillo/ui/gateway/services/MockIdeas.java
// public class MockIdeas {
// 
//     private Idea[] ideas;
//     private User[] users;
// 
//     public MockIdeas() {
//         users = new User[]{
//                 new User(
//                         1,
//                         "JohnDoe",
//                         "John",
//                         "Doe",
//                         "john.doe@bombillo.el"
//                 ),
//                 new User(
//                         2,
//                         "Mamu",
//                         "Max",
//                         "Mustermann",
//                         "max.mustermann@bombillo.el"
//                 )
//         };
//         ideas = new Idea[]{
//                 new Idea(
//                         1,
//                         "Idea 1",
//                         "This is just some example idea, so no need for an awesome description.",
//                         users[0],
//                         new Date(),
//                         new Date(),
//                         IdeaStatus.NEW,
//                         new User[]{users[0]},
//                         new User[]{users[0], users[1]},
//                         new Tag[0]
//                 ),
//                 new Idea(
//                         2,
//                         "Idea 2",
//                         "This is just some example idea, so no need for an awesome description.",
//                         users[1],
//                         new Date(),
//                         new Date(),
//                         IdeaStatus.NEW,
//                         new User[]{users[0]},
//                         new User[]{users[0]},
//                         new Tag[0]
//                 )
//         };
//     }
// 
//     public Idea[] getAllIdeas() {
//         return this.ideas;
//     }
// 
//     public User[] getAllUsers() {
//         return this.users;
//     }
// 
//     public Idea getIdeaById(long id) {
//         Idea[] ideas = getAllIdeas();
//         for (Idea idea: ideas) {
//             if (idea.getId() == id) {
//                 return idea;
//             }
//         }
//         return null;
//     }
// 
//     public User getUserById(long id) {
//         User[] users = getAllUsers();
//         for (User user: users) {
//             if (user.getId() == id) {
//                 return user;
//             }
//         }
//         return null;
//     }
// 
// }


import org.bitionaire.elbombillo.ui.gateway.core.User;
import org.bitionaire.elbombillo.ui.gateway.services.MockIdeas;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

package org.bitionaire.elbombillo.ui.gateway.resources;


/**
 * Created by jzinnau on 12.06.2015.
 */
@Path("/users")
@Produces(MediaType.APPLICATION_JSON)

// Path: el-bombillo-ui-gateway/src/main/java/org/bitionaire/elbombillo/ui/gateway/core/User.java
// public class User {
// 
//     private long id;
// 
//     @NotBlank
//     private String name;
// 
//     @NotBlank
//     private String firstname;
// 
//     @NotBlank
//     private String lastname;
// 
//     @NotBlank
//     private String email;
// 
//     public User(
//             long id,
//             String name,
//             String firstname,
//             String lastname,
//             String email
//     ) {
//         this.id = id;
//         this.name = name;
//         this.firstname = firstname;
//         this.lastname = lastname;
//         this.email = email;
//     }
// 
//     @JsonProperty
//     public long getId() {
//         return id;
//     }
// 
//     public void setId(long id) {
//         this.id = id;
//     }
// 
//     @JsonProperty
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     @JsonProperty
//     public String getFirstname() {
//         return firstname;
//     }
// 
//     public void setFirstname(String firstname) {
//         this.firstname = firstname;
//     }
// 
//     @JsonProperty
//     public String getLastname() {
//         return lastname;
//     }
// 
//     public void setLastname(String lastname) {
//         this.lastname = lastname;
//     }
// 
//     @JsonProperty
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// }
// 
// Path: el-bombillo-ui-gateway/src/main/java/org/bitionaire/elbombillo/ui/gateway/services/MockIdeas.java
// public class MockIdeas {
// 
//     private Idea[] ideas;
//     private User[] users;
// 
//     public MockIdeas() {
//         users = new User[]{
//                 new User(
//                         1,
//                         "JohnDoe",
//                         "John",
//                         "Doe",
//                         "john.doe@bombillo.el"
//                 ),
//                 new User(
//                         2,
//                         "Mamu",
//                         "Max",
//                         "Mustermann",
//                         "max.mustermann@bombillo.el"
//                 )
//         };
//         ideas = new Idea[]{
//                 new Idea(
//                         1,
//                         "Idea 1",
//                         "This is just some example idea, so no need for an awesome description.",
//                         users[0],
//                         new Date(),
//                         new Date(),
//                         IdeaStatus.NEW,
//                         new User[]{users[0]},
//                         new User[]{users[0], users[1]},
//                         new Tag[0]
//                 ),
//                 new Idea(
//                         2,
//                         "Idea 2",
//                         "This is just some example idea, so no need for an awesome description.",
//                         users[1],
//                         new Date(),
//                         new Date(),
//                         IdeaStatus.NEW,
//                         new User[]{users[0]},
//                         new User[]{users[0]},
//                         new Tag[0]
//                 )
//         };
//     }
// 
//     public Idea[] getAllIdeas() {
//         return this.ideas;
//     }
// 
//     public User[] getAllUsers() {
//         return this.users;
//     }
// 
//     public Idea getIdeaById(long id) {
//         Idea[] ideas = getAllIdeas();
//         for (Idea idea: ideas) {
//             if (idea.getId() == id) {
//                 return idea;
//             }
//         }
//         return null;
//     }
// 
//     public User getUserById(long id) {
//         User[] users = getAllUsers();
//         for (User user: users) {
//             if (user.getId() == id) {
//                 return user;
//             }
//         }
//         return null;
//     }
// 
// }


// Path: el-bombillo-ui-gateway/src/main/java/org/bitionaire/elbombillo/ui/gateway/resources/UserResource.java
import org.bitionaire.elbombillo.ui.gateway.core.User;
import org.bitionaire.elbombillo.ui.gateway.services.MockIdeas;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

package org.bitionaire.elbombillo.ui.gateway.resources;


/**
 * Created by jzinnau on 12.06.2015.
 */
@Path("/users")
@Produces(MediaType.APPLICATION_JSON)

public class UserResource {
