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 @@ + + +
+