You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.6 KiB
84 lines
2.6 KiB
package de.fd.fh;
|
|
|
|
import de.fd.fh.server.access.AccessContextEventListener;
|
|
import de.fd.fh.server.access.AccessRepository;
|
|
import de.fd.fh.server.access.AccessService;
|
|
import de.fd.fh.server.access.web.AccessController;
|
|
import de.fd.fh.server.user.UserContextEventListener;
|
|
import de.fd.fh.server.user.web.UserController;
|
|
import de.fd.fh.server.user.UserRepository;
|
|
import de.fd.fh.server.user.UserService;
|
|
|
|
|
|
import java.util.HashSet;
|
|
import java.util.Observable;
|
|
import java.util.Observer;
|
|
import java.util.Set;
|
|
|
|
import static spark.Spark.*;
|
|
|
|
public class ServerApp
|
|
{
|
|
private static AccessRepository accessRepository;
|
|
private static UserRepository userRepository;
|
|
|
|
private static AccessController accessController;
|
|
private static UserController userController;
|
|
|
|
private static final Set<Observer> listeners = new HashSet<>();
|
|
|
|
public static void main(String[] args)
|
|
{
|
|
initListeners();
|
|
|
|
if (accessController == null && userController == null)
|
|
{
|
|
initRepositories();
|
|
accessController = new AccessController((AccessService)
|
|
addListeners(new AccessService(accessRepository)));
|
|
userController = new UserController((UserService)
|
|
addListeners(new UserService(userRepository)));
|
|
}
|
|
|
|
before("/*", (req, res) -> accessController.before(req));
|
|
post("/accounts/registrate", accessController::registrate);
|
|
post("/accounts/login", accessController::login);
|
|
post("/accounts/logout", accessController::logout);
|
|
delete("/accounts/:player_id", accessController::deletePlayer);
|
|
|
|
post("/users", userController::updateUser);
|
|
get("/users", userController::getCompleteUser);
|
|
get("/users/:user_id", userController::getUser);
|
|
|
|
get("/hello", (req, res) -> "Hello World");
|
|
|
|
}
|
|
|
|
public static void initController(
|
|
final AccessController accessController,
|
|
final UserController userController
|
|
)
|
|
{
|
|
ServerApp.userController = userController;
|
|
ServerApp.accessController = accessController;
|
|
}
|
|
|
|
private static Object addListeners(Observable service)
|
|
{
|
|
listeners.forEach(service::addObserver);
|
|
|
|
return service;
|
|
}
|
|
|
|
private static void initListeners()
|
|
{
|
|
listeners.add(new AccessContextEventListener(accessRepository));
|
|
listeners.add(new UserContextEventListener(userRepository));
|
|
}
|
|
|
|
private static void initRepositories()
|
|
{
|
|
accessRepository = new AccessRepository();
|
|
userRepository = new UserRepository();
|
|
}
|
|
}
|