-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #10 from rainestormee/devHelp
Initial Inception of Accounts
- Loading branch information
Showing
17 changed files
with
526 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" | ||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | ||
<modelVersion>4.0.0</modelVersion> | ||
<groupId>com.hackthemidlands.processblinders</groupId> | ||
<artifactId>HackTheMidlands</artifactId> | ||
<version>0.0.1</version> | ||
<build> | ||
<plugins> | ||
<plugin> | ||
<artifactId>maven-compiler-plugin</artifactId> | ||
<version>3.5.1</version> | ||
<configuration> | ||
<source>1.8</source> | ||
<target>1.8</target> | ||
</configuration> | ||
</plugin> | ||
<plugin> | ||
<artifactId>maven-jar-plugin</artifactId> | ||
<version>3.1.0</version> | ||
<configuration> | ||
<archive> | ||
<manifest> | ||
<addClasspath>true</addClasspath> | ||
<classpathPrefix>lib/</classpathPrefix> | ||
<mainClass>com.hackthemidlands.processblinders.Main</mainClass> | ||
</manifest> | ||
</archive> | ||
</configuration> | ||
</plugin> | ||
<plugin> | ||
<artifactId>maven-shade-plugin</artifactId> | ||
<version>2.4.3</version> | ||
<executions> | ||
<execution> | ||
<phase>package</phase> | ||
<goals> | ||
<goal>shade</goal> | ||
</goals> | ||
<configuration> | ||
<transformers> | ||
<transformer> | ||
<mainClass>com.hackthemidlands.processblinders.Main</mainClass> | ||
</transformer> | ||
</transformers> | ||
</configuration> | ||
</execution> | ||
</executions> | ||
</plugin> | ||
</plugins> | ||
</build> | ||
</project> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
110 changes: 108 additions & 2 deletions
110
src/main/java/com/hackthemidlands/processblinders/Main.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,116 @@ | ||
package com.hackthemidlands.processblinders; | ||
|
||
import com.hackthemidlands.processblinders.api.User; | ||
import lombok.Getter; | ||
import org.slf4j.Logger; | ||
import org.slf4j.LoggerFactory; | ||
import spark.Filter; | ||
import spark.Request; | ||
import spark.Response; | ||
import spark.Spark; | ||
import spark.template.thymeleaf.ThymeleafTemplateEngine; | ||
|
||
import java.util.ArrayList; | ||
import java.util.HashMap; | ||
import java.util.List; | ||
import java.util.Map; | ||
|
||
import static spark.Spark.*; | ||
|
||
public class Main { | ||
public final class Main { | ||
|
||
private static final Logger logger = LoggerFactory.getLogger(Main.class); | ||
private static final Map<String, User> loggedInUsers = new HashMap<>(); | ||
|
||
@Getter | ||
private static final List<User> allValidUsers = new ArrayList<>(); | ||
|
||
public static Filter setSession = (Request request, Response response) -> { | ||
if (hasCookie(request)) { | ||
String cookie = getCookie(request); | ||
System.out.println(cookie); | ||
User user = getUserFromEmail(cookie); | ||
if (user != null) { | ||
loggedInUsers.put(user.getEmail(), user); | ||
} else { | ||
response.redirect("/dev/fuck-off"); | ||
} | ||
} | ||
}; | ||
|
||
public static boolean addNewUserToDatabase(User user) { | ||
if (findUserFromDatabase(user.getEmail()) != null) { | ||
return false; | ||
} | ||
allValidUsers.add(user); | ||
return true; | ||
} | ||
|
||
public static User findUserFromDatabase(String email) { | ||
return allValidUsers.stream().filter(u -> u.getEmail().equalsIgnoreCase(email)).findFirst().orElse(null); | ||
} | ||
|
||
public static boolean isLoggedIn(User user) { | ||
return loggedInUsers.containsValue(user); | ||
} | ||
|
||
public static void main(String[] args) { | ||
Spark.exception(Exception.class, (exception, request, response) -> exception.printStackTrace()); // allow spark to internally handle exceptions | ||
staticFileLocation("/public"); | ||
port(8080); | ||
|
||
allValidUsers.add(new User()); | ||
allValidUsers.add(new User("test", "admin", "admin@admin.com", "pass")); | ||
|
||
get("/test/test", new TestViewRoute(), new ThymeleafTemplateEngine()); | ||
get("/hello", (req, res) -> "Hello World"); | ||
get("/test", (req, res) -> "timer"); | ||
get("/goodbye/:name", (req, res) -> "See ya, " + req.params(":name")); | ||
get("/thyme", new TestViewRoute(), new ThymeleafTemplateEngine()); | ||
get("/support", new SupportViewRoute(), new ThymeleafTemplateEngine()); | ||
get("/login/volunteer", new VolunteerViewRoute(), new ThymeleafTemplateEngine()); | ||
get("/login/makeAccount", new MakeAccountViewRoute(), new ThymeleafTemplateEngine()); | ||
path("/register", () -> { | ||
post("", (re, rs) -> { | ||
if (re.queryParams("validate").equalsIgnoreCase("Volunteer")) { | ||
|
||
return "volunteer"; | ||
} | ||
return "not volunteer"; | ||
}); | ||
|
||
get("", (re, rs) -> "I got a GET request silly"); | ||
}); | ||
path("/dev", () -> { | ||
before("/protected", setSession); | ||
get("/protected", (req, res) -> { | ||
User u = getUserFromEmail(getCookie(req)); | ||
return "Your name is " + u.getFirstName() + " " + u.getLastName(); | ||
}); | ||
get("/fuck-off", (req, res) -> "You have been fucked off"); | ||
get("/login", (req, res) -> { | ||
loggedInUsers.put(new User().getEmail(), new User()); | ||
System.err.println("YOU ARE SUPPOSED TO BE LOGGED IN HERE"); | ||
setCookie(res, new User()); | ||
return "You have been logged in."; | ||
}); | ||
}); | ||
} | ||
|
||
public static void setCookie(Response response, User user) { | ||
response.cookie("/", "email", user.getEmail(), -1, false); | ||
} | ||
|
||
public static boolean hasCookie(Request request) { | ||
return request.cookie("email") != null; | ||
} | ||
|
||
public static String getCookie(Request request) { | ||
return request.cookie("email"); | ||
} | ||
} | ||
|
||
public static User getUserFromEmail(String email) { | ||
return findUserFromDatabase(email); | ||
} | ||
|
||
} |
16 changes: 16 additions & 0 deletions
16
src/main/java/com/hackthemidlands/processblinders/MakeAccountViewRoute.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package com.hackthemidlands.processblinders; | ||
|
||
import spark.ModelAndView; | ||
import spark.Request; | ||
import spark.Response; | ||
import spark.TemplateViewRoute; | ||
|
||
import java.util.HashMap; | ||
|
||
public class MakeAccountViewRoute implements TemplateViewRoute { | ||
|
||
@Override | ||
public ModelAndView handle(Request request, Response response) throws Exception { | ||
return new ModelAndView(new HashMap<>(), "makeAccount"); | ||
} | ||
} |
16 changes: 16 additions & 0 deletions
16
src/main/java/com/hackthemidlands/processblinders/SupportViewRoute.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package com.hackthemidlands.processblinders; | ||
|
||
import spark.ModelAndView; | ||
import spark.Request; | ||
import spark.Response; | ||
import spark.TemplateViewRoute; | ||
|
||
import java.util.HashMap; | ||
|
||
public class SupportViewRoute implements TemplateViewRoute { | ||
|
||
@Override | ||
public ModelAndView handle(Request request, Response response) { | ||
return new ModelAndView(new HashMap<>(), "support"); | ||
} | ||
} |
29 changes: 29 additions & 0 deletions
29
src/main/java/com/hackthemidlands/processblinders/TestViewRoute.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
package com.hackthemidlands.processblinders; | ||
|
||
import spark.ModelAndView; | ||
import spark.Request; | ||
import spark.Response; | ||
import spark.TemplateViewRoute; | ||
|
||
import java.time.Instant; | ||
import java.time.LocalDateTime; | ||
import java.time.ZoneId; | ||
import java.time.temporal.ChronoUnit; | ||
import java.util.HashMap; | ||
import java.util.Map; | ||
|
||
public class TestViewRoute implements TemplateViewRoute { | ||
|
||
private int drones = 0; | ||
|
||
public ModelAndView handle(Request request, Response response) { | ||
Map<String, Object> model = new HashMap<>(); | ||
drones++; | ||
model.put("drones", drones); | ||
LocalDateTime dateTime = Instant.ofEpochMilli(System.currentTimeMillis()).atZone(ZoneId.systemDefault()).toLocalDateTime(); | ||
dateTime = dateTime.plus(1, ChronoUnit.HOURS); | ||
model.put("startTime", dateTime.toString()); | ||
|
||
return new ModelAndView(model, "main"); | ||
} | ||
} |
16 changes: 16 additions & 0 deletions
16
src/main/java/com/hackthemidlands/processblinders/VolunteerViewRoute.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package com.hackthemidlands.processblinders; | ||
|
||
import spark.ModelAndView; | ||
import spark.Request; | ||
import spark.Response; | ||
import spark.TemplateViewRoute; | ||
|
||
import java.util.HashMap; | ||
|
||
public class VolunteerViewRoute implements TemplateViewRoute { | ||
|
||
@Override | ||
public ModelAndView handle(Request request, Response response) throws Exception { | ||
return new ModelAndView(new HashMap<>(), "volunteer"); | ||
} | ||
} |
15 changes: 15 additions & 0 deletions
15
src/main/java/com/hackthemidlands/processblinders/api/Order.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
package com.hackthemidlands.processblinders.api; | ||
|
||
import lombok.Data; | ||
|
||
import java.util.ArrayList; | ||
import java.util.List; | ||
|
||
@Data | ||
public class Order { | ||
private List<String> shopList = new ArrayList<>(); | ||
private double maxPrice; | ||
private String location; | ||
private OrderStatus status; | ||
//time window? | ||
} |
25 changes: 25 additions & 0 deletions
25
src/main/java/com/hackthemidlands/processblinders/api/OrderStatus.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
package com.hackthemidlands.processblinders.api; | ||
|
||
public enum OrderStatus { | ||
PENDING(0), ACCEPTED(1), COMPLETED(2), CANCELLED(3); | ||
int i; | ||
|
||
OrderStatus(int i) { | ||
this.i = i; | ||
} | ||
|
||
public OrderStatus getFromCode(int j) { | ||
switch (j) { | ||
case 0: | ||
return PENDING; | ||
case 1: | ||
return ACCEPTED; | ||
case 2: | ||
return COMPLETED; | ||
case 3: | ||
return CANCELLED; | ||
default: | ||
return null; | ||
} | ||
} | ||
} |
Oops, something went wrong.