package services; import dao.*; import request.LoadRequest; import result.LoadResult; import result.RegisterResult; /** * Implementation of the /load API route */ public class LoadService { /** * Clears all data from the database, and then loads the posted user, person, and event data into the database * @param r - the loadRequest * @return the result of the load operation */ public LoadResult load(LoadRequest r) throws DataAccessException { Database db = new Database(); LoadResult result = new LoadResult(); try { db.openConnection(); db.clearTables(); for (int i = 0; i < r.getUsers().size(); i++) { new UserDAO(db.getConnection()).createUser(r.getUsers().get(i)); } for (int i = 0; i < r.getPersons().size(); i++) { new PersonDAO(db.getConnection()).createPerson(r.getPersons().get(i)); } for (int i = 0; i < r.getEvents().size(); i++) { new EventDAO(db.getConnection()).createEvent(r.getEvents().get(i)); } db.closeConnection(true); result.setMessage("Successfully added " + r.getUsers().size() + " users, " + r.getPersons().size() + " persons, and " + r.getEvents().size() + " events to the database"); result.setSuccess(true); return result; } catch (Exception e) { e.printStackTrace(); db.closeConnection(false); result.setMessage("Error: " + e.getMessage()); result.setSuccess(false); return result; } } }