EOD
This commit is contained in:
parent
dbb1ede1f0
commit
3943528d2c
@ -29,6 +29,7 @@ public class JSONLoader {
|
|||||||
writer = new FileWriter(jsonFile);
|
writer = new FileWriter(jsonFile);
|
||||||
writer.write(GSON.toJson(json));
|
writer.write(GSON.toJson(json));
|
||||||
writer.flush();
|
writer.flush();
|
||||||
|
writer.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
LOGGER.error("Error saving jsonFile...");
|
LOGGER.error("Error saving jsonFile...");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -7,6 +7,8 @@ import spark.Request;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Timer;
|
||||||
|
import java.util.TimerTask;
|
||||||
|
|
||||||
import static spark.Spark.*;
|
import static spark.Spark.*;
|
||||||
|
|
||||||
@ -33,9 +35,12 @@ public class Server {
|
|||||||
return "To Do List Item: " + req.params("itemId");
|
return "To Do List Item: " + req.params("itemId");
|
||||||
});
|
});
|
||||||
|
|
||||||
post("/create/:listId", (req, res) -> {
|
post("/create", (req, res) -> {
|
||||||
checkAuth(req);
|
checkAuth(req);
|
||||||
|
|
||||||
|
ToDoList toDoList = new ToDoList();
|
||||||
|
toDoList.setId(ToDoListManager.getLastIndex());
|
||||||
|
|
||||||
return "Create To Do List";
|
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) {
|
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