refactor, some fixes
This commit is contained in:
parent
67af13530b
commit
6f8f28fc28
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver;
|
||||
package cz.kamma.fabka.app;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver;
|
||||
package cz.kamma.fabka.app;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.InetSocketAddress;
|
||||
@ -16,41 +16,41 @@ import java.util.stream.Collectors;
|
||||
|
||||
import com.sun.net.httpserver.HttpServer;
|
||||
|
||||
import cz.kamma.fabka.httpserver.auth.AuthService;
|
||||
import cz.kamma.fabka.httpserver.auth.AuthenticatedUser;
|
||||
import cz.kamma.fabka.httpserver.auth.DatabaseAuthService;
|
||||
import cz.kamma.fabka.httpserver.http.ClasspathStaticFileHandler;
|
||||
import cz.kamma.fabka.httpserver.http.MultipartFormData;
|
||||
import cz.kamma.fabka.httpserver.http.RequestContext;
|
||||
import cz.kamma.fabka.httpserver.http.Responses;
|
||||
import cz.kamma.fabka.httpserver.http.Router;
|
||||
import cz.kamma.fabka.httpserver.repository.AttachmentData;
|
||||
import cz.kamma.fabka.httpserver.repository.ChatLine;
|
||||
import cz.kamma.fabka.httpserver.repository.ChatRepository;
|
||||
import cz.kamma.fabka.httpserver.repository.ChatVoteStats;
|
||||
import cz.kamma.fabka.httpserver.repository.ForumAttachment;
|
||||
import cz.kamma.fabka.httpserver.repository.ForumDetail;
|
||||
import cz.kamma.fabka.httpserver.repository.ForumDisplayView;
|
||||
import cz.kamma.fabka.httpserver.repository.ForumMessage;
|
||||
import cz.kamma.fabka.httpserver.repository.ForumRepository;
|
||||
import cz.kamma.fabka.httpserver.repository.ForumSummary;
|
||||
import cz.kamma.fabka.httpserver.repository.MemberProfile;
|
||||
import cz.kamma.fabka.httpserver.repository.MemberRepository;
|
||||
import cz.kamma.fabka.httpserver.repository.MessageRenderSettings;
|
||||
import cz.kamma.fabka.httpserver.repository.MysqlClientRepository;
|
||||
import cz.kamma.fabka.httpserver.repository.PrivateMessageItem;
|
||||
import cz.kamma.fabka.httpserver.repository.PrivateMessageRepository;
|
||||
import cz.kamma.fabka.httpserver.repository.PrivateMessageStats;
|
||||
import cz.kamma.fabka.httpserver.repository.PrivateThreadRoot;
|
||||
import cz.kamma.fabka.httpserver.repository.PrivateThreadSummary;
|
||||
import cz.kamma.fabka.httpserver.repository.QuotedTextItem;
|
||||
import cz.kamma.fabka.httpserver.repository.SettingsRepository;
|
||||
import cz.kamma.fabka.httpserver.repository.UserIcon;
|
||||
import cz.kamma.fabka.httpserver.repository.UserIconRepository;
|
||||
import cz.kamma.fabka.httpserver.repository.VoteStats;
|
||||
import cz.kamma.fabka.httpserver.session.SessionData;
|
||||
import cz.kamma.fabka.httpserver.session.SessionManager;
|
||||
import cz.kamma.fabka.httpserver.web.Pages;
|
||||
import cz.kamma.fabka.auth.AuthService;
|
||||
import cz.kamma.fabka.auth.AuthenticatedUser;
|
||||
import cz.kamma.fabka.auth.DatabaseAuthService;
|
||||
import cz.kamma.fabka.http.ClasspathStaticFileHandler;
|
||||
import cz.kamma.fabka.http.MultipartFormData;
|
||||
import cz.kamma.fabka.http.RequestContext;
|
||||
import cz.kamma.fabka.http.Responses;
|
||||
import cz.kamma.fabka.http.Router;
|
||||
import cz.kamma.fabka.repository.model.AttachmentData;
|
||||
import cz.kamma.fabka.repository.model.ChatLine;
|
||||
import cz.kamma.fabka.repository.ChatRepository;
|
||||
import cz.kamma.fabka.repository.model.ChatVoteStats;
|
||||
import cz.kamma.fabka.repository.model.ForumAttachment;
|
||||
import cz.kamma.fabka.repository.model.ForumDetail;
|
||||
import cz.kamma.fabka.repository.model.ForumDisplayView;
|
||||
import cz.kamma.fabka.repository.model.ForumMessage;
|
||||
import cz.kamma.fabka.repository.ForumRepository;
|
||||
import cz.kamma.fabka.repository.model.ForumSummary;
|
||||
import cz.kamma.fabka.repository.model.MemberProfile;
|
||||
import cz.kamma.fabka.repository.MemberRepository;
|
||||
import cz.kamma.fabka.repository.model.MessageRenderSettings;
|
||||
import cz.kamma.fabka.repository.MysqlClientRepository;
|
||||
import cz.kamma.fabka.repository.model.PrivateMessageItem;
|
||||
import cz.kamma.fabka.repository.PrivateMessageRepository;
|
||||
import cz.kamma.fabka.repository.model.PrivateMessageStats;
|
||||
import cz.kamma.fabka.repository.model.PrivateThreadRoot;
|
||||
import cz.kamma.fabka.repository.model.PrivateThreadSummary;
|
||||
import cz.kamma.fabka.repository.model.QuotedTextItem;
|
||||
import cz.kamma.fabka.repository.SettingsRepository;
|
||||
import cz.kamma.fabka.repository.model.UserIcon;
|
||||
import cz.kamma.fabka.repository.UserIconRepository;
|
||||
import cz.kamma.fabka.repository.model.VoteStats;
|
||||
import cz.kamma.fabka.session.SessionData;
|
||||
import cz.kamma.fabka.session.SessionManager;
|
||||
import cz.kamma.fabka.web.Pages;
|
||||
|
||||
|
||||
public class HttpServerApplication {
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.auth;
|
||||
package cz.kamma.fabka.auth;
|
||||
|
||||
public interface AuthService {
|
||||
AuthenticatedUser authenticate(String username, String password);
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.auth;
|
||||
package cz.kamma.fabka.auth;
|
||||
|
||||
public class AuthenticatedUser {
|
||||
private final long userId;
|
||||
@ -1,6 +1,6 @@
|
||||
package cz.kamma.fabka.httpserver.auth;
|
||||
package cz.kamma.fabka.auth;
|
||||
|
||||
import cz.kamma.fabka.httpserver.crypto.Md5;
|
||||
import cz.kamma.fabka.crypto.Md5;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.auth;
|
||||
package cz.kamma.fabka.auth;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.crypto;
|
||||
package cz.kamma.fabka.crypto;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.MessageDigest;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.http;
|
||||
package cz.kamma.fabka.http;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.http;
|
||||
package cz.kamma.fabka.http;
|
||||
|
||||
import com.sun.net.httpserver.HttpExchange;
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
package cz.kamma.fabka.httpserver.http;
|
||||
package cz.kamma.fabka.http;
|
||||
|
||||
import com.sun.net.httpserver.Headers;
|
||||
import com.sun.net.httpserver.HttpExchange;
|
||||
import cz.kamma.fabka.httpserver.session.SessionData;
|
||||
import cz.kamma.fabka.httpserver.session.SessionManager;
|
||||
import cz.kamma.fabka.session.SessionData;
|
||||
import cz.kamma.fabka.session.SessionManager;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URLDecoder;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.http;
|
||||
package cz.kamma.fabka.http;
|
||||
|
||||
import com.sun.net.httpserver.HttpExchange;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.http;
|
||||
package cz.kamma.fabka.http;
|
||||
|
||||
@FunctionalInterface
|
||||
public interface RouteHandler {
|
||||
@ -1,8 +1,8 @@
|
||||
package cz.kamma.fabka.httpserver.http;
|
||||
package cz.kamma.fabka.http;
|
||||
|
||||
import com.sun.net.httpserver.HttpExchange;
|
||||
import com.sun.net.httpserver.HttpHandler;
|
||||
import cz.kamma.fabka.httpserver.session.SessionManager;
|
||||
import cz.kamma.fabka.session.SessionManager;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.http;
|
||||
package cz.kamma.fabka.http;
|
||||
|
||||
import com.sun.net.httpserver.HttpExchange;
|
||||
import com.sun.net.httpserver.HttpHandler;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
@ -10,6 +10,9 @@ import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import cz.kamma.fabka.repository.model.ChatLine;
|
||||
import cz.kamma.fabka.repository.model.ChatVoteStats;
|
||||
|
||||
public class ChatRepository {
|
||||
private static final DateTimeFormatter TIME_FORMAT = DateTimeFormatter.ofPattern("HH:mm:ss");
|
||||
private static final ZoneId APP_ZONE = ZoneId.of("Europe/Prague");
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import java.awt.image.BufferedImage;
|
||||
@ -17,6 +17,14 @@ import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import cz.kamma.fabka.repository.model.AttachmentData;
|
||||
import cz.kamma.fabka.repository.model.ForumAttachment;
|
||||
import cz.kamma.fabka.repository.model.ForumDetail;
|
||||
import cz.kamma.fabka.repository.model.ForumMessage;
|
||||
import cz.kamma.fabka.repository.model.ForumSummary;
|
||||
import cz.kamma.fabka.repository.model.QuotedTextItem;
|
||||
import cz.kamma.fabka.repository.model.VoteStats;
|
||||
|
||||
public class ForumRepository {
|
||||
private static final DateTimeFormatter DATETIME_FORMAT = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm");
|
||||
private static final ZoneId APP_ZONE = ZoneId.of("Europe/Prague");
|
||||
@ -1,6 +1,6 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository;
|
||||
|
||||
import cz.kamma.fabka.httpserver.crypto.Md5;
|
||||
import cz.kamma.fabka.crypto.Md5;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
@ -10,6 +10,8 @@ import java.sql.Timestamp;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
import cz.kamma.fabka.repository.model.MemberProfile;
|
||||
|
||||
public class MemberRepository {
|
||||
private static final DateTimeFormatter DATETIME_FORMAT = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm");
|
||||
private static final ZoneId APP_ZONE = ZoneId.of("Europe/Prague");
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
@ -11,6 +11,11 @@ import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import cz.kamma.fabka.repository.model.PrivateMessageItem;
|
||||
import cz.kamma.fabka.repository.model.PrivateMessageStats;
|
||||
import cz.kamma.fabka.repository.model.PrivateThreadRoot;
|
||||
import cz.kamma.fabka.repository.model.PrivateThreadSummary;
|
||||
|
||||
public class PrivateMessageRepository {
|
||||
private static final DateTimeFormatter DATE_TIME = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm");
|
||||
private static final ZoneId APP_ZONE = ZoneId.of("Europe/Prague");
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
@ -7,6 +7,8 @@ import java.sql.ResultSet;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import cz.kamma.fabka.repository.model.MessageRenderSettings;
|
||||
|
||||
public class SettingsRepository {
|
||||
private static final String SETTING_SQL = "SELECT value FROM settings WHERE name=? LIMIT 1";
|
||||
private static final String USER_SETTINGS_SQL = "SELECT name, value FROM settings WHERE userid=?";
|
||||
@ -1,10 +1,12 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
|
||||
import cz.kamma.fabka.repository.model.UserIcon;
|
||||
|
||||
public class UserIconRepository {
|
||||
private static final String USER_ICON_SQL = "SELECT data, mimetype FROM user_icon WHERE userid=? ORDER BY id DESC LIMIT 1";
|
||||
private static final String INSERT_USER_ICON_SQL = "INSERT INTO user_icon (userid, data, mimetype) VALUES (?,?,?)";
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository.model;
|
||||
|
||||
public class AttachmentData {
|
||||
private final String name;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository.model;
|
||||
|
||||
public class ChatLine {
|
||||
private final long id;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository.model;
|
||||
|
||||
public class ChatVoteStats {
|
||||
private final String thumbUpUsers;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository.model;
|
||||
|
||||
public class ForumAttachment {
|
||||
private final long id;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository.model;
|
||||
|
||||
public class ForumDetail {
|
||||
private final long id;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository.model;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository.model;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository.model;
|
||||
|
||||
public class ForumSummary {
|
||||
private final long id;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository.model;
|
||||
|
||||
public class MemberProfile {
|
||||
private final long id;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository.model;
|
||||
|
||||
public class MessageRenderSettings {
|
||||
private final String youtubeSnippet;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository.model;
|
||||
|
||||
public class PrivateMessageItem {
|
||||
private final long id;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository.model;
|
||||
|
||||
public class PrivateMessageStats {
|
||||
private final int unread;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository.model;
|
||||
|
||||
public class PrivateThreadRoot {
|
||||
private final long rootId;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository.model;
|
||||
|
||||
public class PrivateThreadSummary {
|
||||
private final long id;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository.model;
|
||||
|
||||
public class QuotedTextItem {
|
||||
private final String author;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository.model;
|
||||
|
||||
public class UserIcon {
|
||||
private final byte[] data;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.repository;
|
||||
package cz.kamma.fabka.repository.model;
|
||||
|
||||
public class VoteStats {
|
||||
private final int yes;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.session;
|
||||
package cz.kamma.fabka.session;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.session;
|
||||
package cz.kamma.fabka.session;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.ArrayList;
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.web;
|
||||
package cz.kamma.fabka.web;
|
||||
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package cz.kamma.fabka.httpserver.web;
|
||||
package cz.kamma.fabka.web;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@ -8,19 +8,21 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import cz.kamma.fabka.httpserver.repository.ForumAttachment;
|
||||
import cz.kamma.fabka.httpserver.repository.ForumDetail;
|
||||
import cz.kamma.fabka.httpserver.repository.ForumDisplayView;
|
||||
import cz.kamma.fabka.httpserver.repository.ForumMessage;
|
||||
import cz.kamma.fabka.httpserver.repository.ForumSummary;
|
||||
import cz.kamma.fabka.httpserver.repository.MemberProfile;
|
||||
import cz.kamma.fabka.httpserver.repository.MessageRenderSettings;
|
||||
import cz.kamma.fabka.httpserver.repository.MysqlClientRepository;
|
||||
import cz.kamma.fabka.httpserver.repository.PrivateMessageItem;
|
||||
import cz.kamma.fabka.httpserver.repository.PrivateMessageStats;
|
||||
import cz.kamma.fabka.httpserver.repository.PrivateThreadRoot;
|
||||
import cz.kamma.fabka.httpserver.repository.PrivateThreadSummary;
|
||||
import cz.kamma.fabka.httpserver.repository.QuotedTextItem;
|
||||
import cz.kamma.fabka.repository.MysqlClientRepository;
|
||||
import cz.kamma.fabka.repository.model.AttachmentData;
|
||||
import cz.kamma.fabka.repository.model.ForumAttachment;
|
||||
import cz.kamma.fabka.repository.model.ForumDetail;
|
||||
import cz.kamma.fabka.repository.model.ForumDisplayView;
|
||||
import cz.kamma.fabka.repository.model.ForumMessage;
|
||||
import cz.kamma.fabka.repository.model.ForumSummary;
|
||||
import cz.kamma.fabka.repository.model.MemberProfile;
|
||||
import cz.kamma.fabka.repository.model.MessageRenderSettings;
|
||||
import cz.kamma.fabka.repository.model.PrivateMessageItem;
|
||||
import cz.kamma.fabka.repository.model.PrivateMessageStats;
|
||||
import cz.kamma.fabka.repository.model.PrivateThreadRoot;
|
||||
import cz.kamma.fabka.repository.model.PrivateThreadSummary;
|
||||
import cz.kamma.fabka.repository.model.QuotedTextItem;
|
||||
import cz.kamma.fabka.repository.model.UserIcon;
|
||||
|
||||
public final class Pages {
|
||||
private static final String LOGIN_TEMPLATE = readTemplate("webapp/login.html");
|
||||
Loading…
x
Reference in New Issue
Block a user