Family-Map-Project / FamilyMapServer / FamilyMapServerStudent-master / src / services / LoadService.java
LoadService.java
Raw
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;
        }
    }
}