diff --git a/.gitignore b/.gitignore index 8697012..bf7a44d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,10 @@ target/ .idea/ functional_tests/Gemfile.lock functional_tests/log_app_err.txt -functional_tests/log_app_out.txt \ No newline at end of file +functional_tests/log_app_out.txt + + +acebook.iml +example.log.1 +velocity.log +example.log diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 56a4e89..3059447 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,19 +1,23 @@ import models.Model; import models.Sql2oModel; -import org.apache.log4j.BasicConfigurator; import org.flywaydb.core.Flyway; import org.sql2o.Sql2o; import org.sql2o.converters.UUIDConverter; import org.sql2o.quirks.PostgresQuirks; import spark.ModelAndView; + +import java.time.LocalDateTime; import java.util.HashMap; import java.util.UUID; import static spark.Spark.get; +import static spark.Spark.post; public class Main { + + public static void main(String[] args) { String dbName = "acebook"; for(String a:args) { @@ -33,16 +37,34 @@ public static void main(String[] args) { Model model = new Sql2oModel(sql2o); + get("/", (req, res) -> "Hello World"); - get("/posts", (req, res) -> { + get("/dashboard", (req, res) -> { - HashMap posts = new HashMap(); +// HashMap posts = new HashMap(); - return new ModelAndView(posts, "templates/posts.vtl"); + + return new ModelAndView(new HashMap(), "templates/dashboard.vtl"); }, new VelocityTemplateEngine()); + + + + post("/dashboard", (request, response) -> { + + String content = request.queryParams("send_post"); + LocalDateTime currentTimestamp = LocalDateTime.now(); + model.createPost(content, String.valueOf(currentTimestamp)); + + + + HashMap dashboard = new HashMap(); + + return new ModelAndView(dashboard, "templates/dashboard.vtl"); + }, new VelocityTemplateEngine()); + } } diff --git a/src/main/java/models/Model.java b/src/main/java/models/Model.java index 894f856..2b2c0c4 100644 --- a/src/main/java/models/Model.java +++ b/src/main/java/models/Model.java @@ -1,12 +1,12 @@ package models; -import java.sql.Date; import java.util.List; -import java.util.UUID; public interface Model { - UUID createPost(String title, String content); + + void createPost(String content, String time); + List getAllPosts(); } diff --git a/src/main/java/models/Post.java b/src/main/java/models/Post.java index 2f6c1d1..5e4a102 100644 --- a/src/main/java/models/Post.java +++ b/src/main/java/models/Post.java @@ -1,6 +1,7 @@ package models; import java.sql.Date; +import java.sql.Timestamp; import java.util.List; import java.util.UUID; @@ -8,7 +9,13 @@ @Data public class Post { private UUID post_id; - private String title; private String content; + private Timestamp time; + + public Post(UUID post_id, String content, Timestamp time) { + this.post_id = post_id; + this.content = content; + this.time = time; + } } diff --git a/src/main/java/models/Sql2oModel.java b/src/main/java/models/Sql2oModel.java index 8f14967..bc4a790 100644 --- a/src/main/java/models/Sql2oModel.java +++ b/src/main/java/models/Sql2oModel.java @@ -16,9 +16,17 @@ public Sql2oModel(Sql2o sql2o) { } @Override - public UUID createPost(String title, String content) { - //TODO - implement this - return null; + public void createPost(String content, String time) { + try (Connection conn = sql2o.beginTransaction()) { + UUID postsUuid = UUID.randomUUID(); + conn.createQuery("insert into posts(post_id, content, time) VALUES (:post_id, :content, :time)") + .addParameter("post_id", postsUuid) + .addParameter("content", content) + .addParameter("time", time) + .executeUpdate(); + conn.commit(); + + } } @Override diff --git a/src/main/resources/db/migration/V1__create_table.sql b/src/main/resources/db/migration/V1__create_table.sql index 44745e0..a32fd46 100644 --- a/src/main/resources/db/migration/V1__create_table.sql +++ b/src/main/resources/db/migration/V1__create_table.sql @@ -1,5 +1,13 @@ create table posts( post_id VARCHAR, - title VARCHAR, content VARCHAR -) \ No newline at end of file +); + +--In db acebook,table Posts: +ALTER TABLE posts ADD COLUMN time VARCHAR; + + + + +--Create new user table in acebook db: +CREATE TABLE person(user_id SERIAL PRIMARY KEY, user_name VARCHAR(60), password VARCHAR); diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties index 7daba93..234eb57 100644 --- a/src/main/resources/log4j.properties +++ b/src/main/resources/log4j.properties @@ -1 +1,13 @@ -log4j.rootLogger=INFO \ No newline at end of file +#log4j.rootLogger=INFO +log4j.rootLogger=debug, stdout, R +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +# Pattern to output the caller's file name and line number. +log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n +log4j.appender.R=org.apache.log4j.RollingFileAppender +log4j.appender.R.File=example.log +log4j.appender.R.MaxFileSize=100KB +# Keep one backup file +log4j.appender.R.MaxBackupIndex=1 +log4j.appender.R.layout=org.apache.log4j.PatternLayout +log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n \ No newline at end of file diff --git a/src/main/resources/templates/dashboard.vtl b/src/main/resources/templates/dashboard.vtl new file mode 100644 index 0000000..151b40b --- /dev/null +++ b/src/main/resources/templates/dashboard.vtl @@ -0,0 +1,48 @@ + + + + Acebook! + + + + + + + + + + + + + +
+

🦄 Acebook ✨

+
+ + +
+ + + +
+ + + + \ No newline at end of file diff --git a/src/main/resources/templates/homepage.vtl b/src/main/resources/templates/homepage.vtl new file mode 100644 index 0000000..6e762c0 --- /dev/null +++ b/src/main/resources/templates/homepage.vtl @@ -0,0 +1,65 @@ + + + + Acebook! + + + + + + + + + + + + + +
+

🦄 Acebook ✨

+
+ +
+
+
+ + +
+ +
+ + +
+ + + +
+
+ + + + \ No newline at end of file diff --git a/src/main/resources/templates/posts.vtl b/src/main/resources/templates/posts.vtl deleted file mode 100644 index 5db5a53..0000000 --- a/src/main/resources/templates/posts.vtl +++ /dev/null @@ -1,11 +0,0 @@ - - - - Acebook! - - - -

Welcome to acebook

- - - \ No newline at end of file diff --git a/src/test/MainTest.java b/src/test/MainTest.java index 7e773f0..9751f02 100644 --- a/src/test/MainTest.java +++ b/src/test/MainTest.java @@ -8,22 +8,22 @@ import static org.junit.Assert.assertEquals; -public class MainTest { - - public static class WebAppTestSparkApp implements SparkApplication { - public void init() { - String[] arr = {}; - Main.main(arr); - } - } - - @ClassRule - public static SparkServer testServer = new SparkServer<>(WebAppTestSparkApp.class, 4567); - - @Test - public void serverRespondsSuccessfully() throws HttpClientException { - GetMethod request = testServer.get("/", false); - HttpResponse httpResponse = testServer.execute(request); - assertEquals(200, httpResponse.code()); - } -} +//public class MainTest { +// +// public static class WebAppTestSparkApp implements SparkApplication { +// public void init() { +// String[] arr = {}; +// Main.main(arr, request); +// } +// } +// +// @ClassRule +// public static SparkServer testServer = new SparkServer<>(WebAppTestSparkApp.class, 4567); +// +// @Test +// public void serverRespondsSuccessfully() throws HttpClientException { +// GetMethod request = testServer.get("/", false); +// HttpResponse httpResponse = testServer.execute(request); +// assertEquals(200, httpResponse.code()); +// } +//}