EOD
This commit is contained in:
parent
dbb1ede1f0
commit
3943528d2c
@ -29,6 +29,7 @@ public class JSONLoader {
|
||||
writer = new FileWriter(jsonFile);
|
||||
writer.write(GSON.toJson(json));
|
||||
writer.flush();
|
||||
writer.close();
|
||||
} catch (IOException e) {
|
||||
LOGGER.error("Error saving jsonFile...");
|
||||
e.printStackTrace();
|
||||
|
@ -7,6 +7,8 @@ import spark.Request;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
import static spark.Spark.*;
|
||||
|
||||
@ -33,9 +35,12 @@ public class Server {
|
||||
return "To Do List Item: " + req.params("itemId");
|
||||
});
|
||||
|
||||
post("/create/:listId", (req, res) -> {
|
||||
post("/create", (req, res) -> {
|
||||
checkAuth(req);
|
||||
|
||||
ToDoList toDoList = new ToDoList();
|
||||
toDoList.setId(ToDoListManager.getLastIndex());
|
||||
|
||||
return "Create To Do List";
|
||||
});
|
||||
|
||||
@ -69,6 +74,13 @@ public class Server {
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
new Timer().schedule(new TimerTask() {
|
||||
@Override
|
||||
public void run() {
|
||||
ToDoListManager.saveToDoLists();
|
||||
}
|
||||
}, 0, 14400000);
|
||||
}
|
||||
|
||||
private static void checkAuth(Request req) {
|
||||
|
96
src/main/java/tech/nevets/todoserver/ToDoListManager.java
Normal file
96
src/main/java/tech/nevets/todoserver/ToDoListManager.java
Normal file
@ -0,0 +1,96 @@
|
||||
package tech.nevets.todoserver;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ToDoListManager {
|
||||
public static final List<ToDoList> TO_DO_LISTS = new ArrayList<>();
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(ToDoListManager.class);
|
||||
private static final Gson GSON = new Gson();
|
||||
private static boolean isListChanged = false;
|
||||
private static int lastIndex = 0;
|
||||
|
||||
public static int getLastIndex() {
|
||||
return lastIndex;
|
||||
}
|
||||
|
||||
public static List<ToDoList> getToDoListsByOwner(String authKey) { // Again, this is terrible security wise, TODO Change with account system
|
||||
List<ToDoList> listList = new ArrayList<>();
|
||||
for (ToDoList toDoList : TO_DO_LISTS) {
|
||||
if (toDoList.getOwnerAuthKey().equals(authKey)) {
|
||||
listList.add(toDoList);
|
||||
}
|
||||
}
|
||||
return listList;
|
||||
}
|
||||
|
||||
public static void addToDoList(ToDoList toDoList) {
|
||||
TO_DO_LISTS.add(toDoList);
|
||||
isListChanged = true;
|
||||
}
|
||||
|
||||
public static void updateToDoList(ToDoList toDoList) {
|
||||
for (int i = 0; i < TO_DO_LISTS.size(); i++) {
|
||||
if (TO_DO_LISTS.get(i).getId() == toDoList.getId()) {
|
||||
TO_DO_LISTS.set(i, toDoList);
|
||||
}
|
||||
}
|
||||
isListChanged = true;
|
||||
}
|
||||
|
||||
public static void loadToDoLists() {
|
||||
File listDirs = new File("./lists/");
|
||||
if (!listDirs.exists()) {
|
||||
listDirs.mkdirs();
|
||||
}
|
||||
|
||||
File[] listFiles = listDirs.listFiles();
|
||||
if (listFiles == null) {
|
||||
LOGGER.info("Lists Directory is empty");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
for (File listFile : listFiles) {
|
||||
TO_DO_LISTS.add(GSON.fromJson(new FileReader(listFile), ToDoList.class));
|
||||
}
|
||||
lastIndex = listFiles.length + 1;
|
||||
} catch (IOException e) {
|
||||
LOGGER.error("Error reading todo lists");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static void saveToDoLists() {
|
||||
if (!isListChanged) {
|
||||
return;
|
||||
}
|
||||
|
||||
File listDirs = new File("./lists/");
|
||||
if (!listDirs.exists()) {
|
||||
listDirs.mkdirs();
|
||||
}
|
||||
|
||||
for (ToDoList toDoList : TO_DO_LISTS) {
|
||||
File toDoFile = new File(listDirs.getAbsolutePath() + "/" + toDoList.getId() + ".json");
|
||||
FileWriter writer;
|
||||
try {
|
||||
writer = new FileWriter(toDoFile);
|
||||
writer.write(GSON.toJson(toDoList));
|
||||
writer.flush();
|
||||
writer.close();
|
||||
} catch (IOException e) {
|
||||
LOGGER.error("Error writing todo list to file");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
isListChanged = false;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user