Skip to content

Commit

Permalink
Merge pull request #10 from rainestormee/devHelp
Browse files Browse the repository at this point in the history
Initial Inception of Accounts
  • Loading branch information
andreeaivancu authored Oct 24, 2020
2 parents ff0c4d9 + 623b118 commit 84bc92c
Show file tree
Hide file tree
Showing 17 changed files with 526 additions and 11 deletions.
14 changes: 7 additions & 7 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Build with Maven
run: mvn -B package --file pom.xml
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Build with Maven
run: mvn -B package --file pom.xml
53 changes: 53 additions & 0 deletions dependency-reduced-pom.xml
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>

48 changes: 46 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

Expand All @@ -15,13 +14,36 @@
<artifactId>spark-core</artifactId>
<version>2.9.3</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-template-thymeleaf</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
<scope>provided</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<!-- Compile to Java 1.8 -->
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
Expand All @@ -42,6 +64,28 @@
</archive>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.hackthemidlands.processblinders.Main</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
110 changes: 108 additions & 2 deletions src/main/java/com/hackthemidlands/processblinders/Main.java
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);
}

}
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");
}
}
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");
}
}
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");
}
}
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 src/main/java/com/hackthemidlands/processblinders/api/Order.java
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?
}
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;
}
}
}
Loading

0 comments on commit 84bc92c

Please sign in to comment.