// Path: el-bombillo-ui-gateway/src/main/java/org/bitionaire/elbombillo/ui/gateway/resources/IdeaResource.java
// @Path("/ideas")
// @Produces(MediaType.APPLICATION_JSON)
// public class IdeaResource {
// 
//     private MockIdeas ideaService;
// 
//     public IdeaResource(MockIdeas ideaService) {
//         this.ideaService = ideaService;
//     }
// 
//     @PUT
//     public Response createIdea(@Valid Idea idea) {
//         return null;
//     }
// 
//     @POST
//     @Path("/{ideaId}")
//     public Response updateIdea(@PathParam("ideaId") long ideaId, @Valid Idea idea) {
//         return null;
//     }
// 
//     @GET
//     public Idea[] getAllIdeas() {
//         return ideaService.getAllIdeas();
//     }
// 
//     @GET
//     @Path("/{ideaId}")
//     public Idea getIdeaById(@PathParam("ideaId") long ideaId) {
//         final Idea idea = ideaService.getIdeaById(ideaId);
//         if (idea == null) {
//             throw new WebApplicationException(Response.Status.NOT_FOUND);
//         }
//         return idea;
//     }
// 
//     @DELETE
//     @Path("/{ideaId}")
//     public void deleteIdea(@PathParam("ideaId") long ideaId) {
// 
//     }
// 
// 
// }
// 
// Path: el-bombillo-ui-gateway/src/main/java/org/bitionaire/elbombillo/ui/gateway/resources/UserResource.java
// @Path("/users")
// @Produces(MediaType.APPLICATION_JSON)
// public class UserResource {
// 
//     private MockIdeas ideaService;
// 
//     public UserResource(MockIdeas ideaService) {
//         this.ideaService = ideaService;
//     }
// 
//     @GET
//     public User[] getAllUsers() {
//         return ideaService.getAllUsers();
//     }
// 
//     @GET
//     @Path("/{userId}")
//     public User getUserById(@PathParam("userId") long userId) {
//         final User user = ideaService.getUserById(userId);
//         if (user == null) {
//             throw new WebApplicationException(Response.Status.NOT_FOUND);
//         }
//         return user;
//     }
// 
// }
// 
// 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 io.dropwizard.Application;
import io.dropwizard.setup.Environment;
import lombok.extern.slf4j.Slf4j;
import org.bitionaire.elbombillo.ui.gateway.resources.IdeaResource;
import org.bitionaire.elbombillo.ui.gateway.resources.UserResource;
import org.bitionaire.elbombillo.ui.gateway.services.MockIdeas;
import java.util.Arrays;
package org.bitionaire.elbombillo.ui.gateway;



/**
 * Created by jzinnau on 10.06.2015.
 */
public class GatewayApplication extends Application<GatewayConfiguration> {

    public static void main(final String... args) throws Exception {
        new GatewayApplication().run(args);
    }

    @Override
// Path: el-bombillo-ui-gateway/src/main/java/org/bitionaire/elbombillo/ui/gateway/resources/IdeaResource.java
// @Path("/ideas")
// @Produces(MediaType.APPLICATION_JSON)
// public class IdeaResource {
// 
//     private MockIdeas ideaService;
// 
//     public IdeaResource(MockIdeas ideaService) {
//         this.ideaService = ideaService;
//     }
// 
//     @PUT
//     public Response createIdea(@Valid Idea idea) {
//         return null;
//     }
// 
//     @POST
//     @Path("/{ideaId}")
//     public Response updateIdea(@PathParam("ideaId") long ideaId, @Valid Idea idea) {
//         return null;
//     }
// 
//     @GET
//     public Idea[] getAllIdeas() {
//         return ideaService.getAllIdeas();
//     }
// 
//     @GET
//     @Path("/{ideaId}")
//     public Idea getIdeaById(@PathParam("ideaId") long ideaId) {
//         final Idea idea = ideaService.getIdeaById(ideaId);
//         if (idea == null) {
//             throw new WebApplicationException(Response.Status.NOT_FOUND);
//         }
//         return idea;
//     }
// 
//     @DELETE
//     @Path("/{ideaId}")
//     public void deleteIdea(@PathParam("ideaId") long ideaId) {
// 
//     }
// 
// 
// }
// 
// Path: el-bombillo-ui-gateway/src/main/java/org/bitionaire/elbombillo/ui/gateway/resources/UserResource.java
// @Path("/users")
// @Produces(MediaType.APPLICATION_JSON)
// public class UserResource {
// 
//     private MockIdeas ideaService;
// 
//     public UserResource(MockIdeas ideaService) {
//         this.ideaService = ideaService;
//     }
// 
//     @GET
//     public User[] getAllUsers() {
//         return ideaService.getAllUsers();
//     }
// 
//     @GET
//     @Path("/{userId}")
//     public User getUserById(@PathParam("userId") long userId) {
//         final User user = ideaService.getUserById(userId);
//         if (user == null) {
//             throw new WebApplicationException(Response.Status.NOT_FOUND);
//         }
//         return user;
//     }
// 
// }
// 
// 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/GatewayApplication.java
import io.dropwizard.Application;
import io.dropwizard.setup.Environment;
import lombok.extern.slf4j.Slf4j;
import org.bitionaire.elbombillo.ui.gateway.resources.IdeaResource;
import org.bitionaire.elbombillo.ui.gateway.resources.UserResource;
import org.bitionaire.elbombillo.ui.gateway.services.MockIdeas;
import java.util.Arrays;

package org.bitionaire.elbombillo.ui.gateway;



/**
 * Created by jzinnau on 10.06.2015.
 */
public class GatewayApplication extends Application<GatewayConfiguration> {

    public static void main(final String... args) throws Exception {
        new GatewayApplication().run(args);
    }

    @Override
    public void run(final GatewayConfiguration gatewayConfiguration, final Environment environment) throws Exception {