add config line for users files path

This commit is contained in:
Francois G 2023-04-08 10:22:12 +02:00
parent 9c98ca573a
commit e5794f382d
5 changed files with 21 additions and 14 deletions

View file

@ -19,6 +19,8 @@ public class Configuration {
private boolean use_ssl; private boolean use_ssl;
private String ssl_keystore; private String ssl_keystore;
private String ssl_keystorePasswd; private String ssl_keystorePasswd;
private String users_files;
private String token_issuer; private String token_issuer;
private int token_expiration; private int token_expiration;
@ -143,4 +145,10 @@ public class Configuration {
public boolean useSsl(){ public boolean useSsl(){
return this.use_ssl; return this.use_ssl;
} }
public String getUsersFiles(){
if (users_files == null || users_files.trim().isEmpty())
users_files = "/tmp/users_files";
return users_files;
}
} }

View file

@ -63,19 +63,19 @@ public class Main {
} }
}); });
initRoutes(router); initRoutes(router, config);
startWebServer(config, router); startWebServer(config, router);
} }
private static void initRoutes(Router router) { private static void initRoutes(Router router, Configuration config) {
router.register(new ChapterElement(router.getDataBase())); router.register(new ChapterElement(router.getDataBase()));
router.register(new ChapterList(router.getDataBase())); router.register(new ChapterList(router.getDataBase()));
router.register(new PuzzleElement(router.getDataBase())); router.register(new PuzzleElement(router.getDataBase()));
router.register(new Register(router.getDataBase(), router)); router.register(new Register(router.getDataBase(), router, config.getUsersFiles()));
router.register(new Login(router.getDataBase(), router)); router.register(new Login(router.getDataBase(), router));
router.register(new Result(router.getDataBase())); router.register(new Result(router.getDataBase()));
router.register(new PuzzleResponse(router.getDataBase())); router.register(new PuzzleResponse(router.getDataBase(), config.getUsersFiles()));
router.register(new Leaderboard(router.getDataBase())); router.register(new Leaderboard(router.getDataBase()));
router.register(new PlayerDetails(router.getDataBase())); router.register(new PlayerDetails(router.getDataBase()));
router.register(new BadgeDetails(router.getDataBase())); router.register(new BadgeDetails(router.getDataBase()));

View file

@ -16,8 +16,6 @@ import org.json.simple.JSONArray;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
public class Player implements Comparable<Player> { public class Player implements Comparable<Player> {
public static final String PATH_TO_CODE = "/home/%s/peer-at-source/";
private String pseudo; private String pseudo;
private String email; private String email;
private String firstname; private String firstname;
@ -101,10 +99,6 @@ public class Player implements Comparable<Player> {
avatar = newAvatar; avatar = newAvatar;
} }
public String getPathToSourceCode() {
return String.format(PATH_TO_CODE, pseudo);
}
public int getRank() { public int getRank() {
return rank; return rank;
} }

View file

@ -22,9 +22,11 @@ import be.jeffcheasey88.peeratcode.webserver.User;
public class PuzzleResponse implements Response { public class PuzzleResponse implements Response {
private final DatabaseRepository databaseRepo; private final DatabaseRepository databaseRepo;
private final String usersFilesPath;
public PuzzleResponse(DatabaseRepository databaseRepo) { public PuzzleResponse(DatabaseRepository databaseRepo, String initUsersFilesPath) {
this.databaseRepo = databaseRepo; this.databaseRepo = databaseRepo;
usersFilesPath = initUsersFilesPath;
} }
@Route(path = "^\\/puzzleResponse\\/([0-9]+)$", type = "POST", needLogin = true) @Route(path = "^\\/puzzleResponse\\/([0-9]+)$", type = "POST", needLogin = true)
@ -52,7 +54,7 @@ public class PuzzleResponse implements Response {
} }
private void saveSourceCode(ReceivedResponse received, Player player) throws IOException { private void saveSourceCode(ReceivedResponse received, Player player) throws IOException {
Path path = Paths.get(String.format("%s/puz%04d-%s", player.getPathToSourceCode(), received.getPuzzleId(), received.getFileName())); Path path = Paths.get(String.format("%s/%s/puz%04d-%s", usersFilesPath, player.getPseudo(), received.getPuzzleId(), received.getFileName()));
Files.write(path, received.getSourceCode()); Files.write(path, received.getSourceCode());
} }

View file

@ -22,10 +22,12 @@ public class Register implements Response {
private DatabaseRepository databaseRepo; private DatabaseRepository databaseRepo;
private Router router; private Router router;
private String usersFilesPath;
public Register(DatabaseRepository databaseRepo, Router router) { public Register(DatabaseRepository databaseRepo, Router router, String initUsersFilesPath) {
this.databaseRepo = databaseRepo; this.databaseRepo = databaseRepo;
this.router = router; this.router = router;
usersFilesPath = initUsersFilesPath;
} }
@Route(path = "^\\/register$", type = "POST") @Route(path = "^\\/register$", type = "POST")
@ -80,7 +82,8 @@ public class Register implements Response {
} }
private void createFolderToSaveSourceCode(String pseudo) throws IOException { private void createFolderToSaveSourceCode(String pseudo) throws IOException {
Files.createDirectories(Paths.get(String.format(Player.PATH_TO_CODE, pseudo)));
Files.createDirectories(Paths.get(String.format("%s/%s", usersFilesPath, pseudo)));
} }
} }