Skip to content

Commit 1877ea5

Browse files
committed
create page layout and main page template
1 parent 2f93a6a commit 1877ea5

38 files changed

+44373
-2
lines changed

app/src/main/java/hexlet/code/App.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
package hexlet.code;
22

3+
import gg.jte.ContentType;
4+
import gg.jte.TemplateEngine;
5+
import gg.jte.resolve.ResourceCodeResolver;
6+
import hexlet.code.dto.MainPage;
37
import hexlet.code.repository.BaseRepository;
48

59
import hexlet.code.util.NamedRoutes;
@@ -16,8 +20,11 @@
1620
import java.nio.charset.StandardCharsets;
1721
import java.sql.SQLException;
1822
import java.time.Instant;
23+
import java.util.Objects;
1924
import java.util.stream.Collectors;
2025

26+
import static io.javalin.rendering.template.TemplateUtil.model;
27+
2128
public class App {
2229
private static final Logger LOG = LoggerFactory.getLogger(App.class);
2330

@@ -43,6 +50,13 @@ private static String getDatabaseUrl() {
4350
"jdbc:h2:mem:project;DB_CLOSE_DELAY=-1;");
4451
}
4552

53+
private static TemplateEngine createTemplateEngine() {
54+
ClassLoader classLoader = App.class.getClassLoader();
55+
ResourceCodeResolver codeResolver = new ResourceCodeResolver("templates", classLoader);
56+
TemplateEngine templateEngine = TemplateEngine.create(codeResolver, ContentType.Html);
57+
return templateEngine;
58+
}
59+
4660
private static Javalin getApp() throws SQLException, IOException {
4761
var hikariConfig = new HikariConfig();
4862
hikariConfig.setJdbcUrl(getDatabaseUrl());
@@ -62,12 +76,18 @@ private static Javalin getApp() throws SQLException, IOException {
6276

6377
var app = Javalin.create(config -> {
6478
config.bundledPlugins.enableDevLogging();
65-
config.fileRenderer(new JavalinJte());
79+
config.fileRenderer(new JavalinJte(createTemplateEngine()));
6680
});
6781

6882
app.before(ctx -> LOG.info(Instant.now().toString()));
6983

70-
app.get(NamedRoutes.rootPath(), ctx -> ctx.result("Hello World"));
84+
app.get(NamedRoutes.rootPath(), ctx -> {
85+
String currentUser = Objects.requireNonNullElse(
86+
ctx.sessionAttribute("currentUser"),"Гость"
87+
);
88+
var page = MainPage.of(currentUser);
89+
ctx.render("index.jte", model("page", page));
90+
});
7191

7292
return app;
7393
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package hexlet.code.dto;
2+
3+
import lombok.Getter;
4+
import lombok.Setter;
5+
6+
@Getter
7+
@Setter
8+
public class BasePage {
9+
private String flash;
10+
private String flashType;
11+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package hexlet.code.dto;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Getter;
5+
import lombok.Setter;
6+
7+
@Getter
8+
@Setter
9+
@AllArgsConstructor(staticName = "of")
10+
public class MainPage extends BasePage {
11+
private String currentUser;
12+
}

0 commit comments

Comments
 (0)