package budgetforce.control.resources;
// <editor-fold defaultstate="collapsed" desc="imports">
import budgetforce.model.Income;
import budgetforce.model.DatabaseManager;
import budgetforce.model.EPeriod;
import javax.ws.rs.core.Response;
import javax.ws.rs.PathParam;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.DELETE;
import javax.ws.rs.Produces;
import javax.ws.rs.Consumes;
import java.util.ArrayList;
import java.util.List;
// </editor-fold>
/**
* REST Web Service
*
* @author David König
*
* i could write some things in one row, or without creating new variables, but i do it for a clear view / for better understanding my code
*/
@Path("/income")
public class IncomeResource
{
public IncomeResource()
{
}
@GET
@Path("{id}")
@Produces("application/json")
public Income getIncomeById(@PathParam("id") Integer _Id)
{
return DatabaseManager.getDatabaseManager().getIncomeByID(_Id);
}
@GET
@Path("/person/{id}")
@Produces("application/json")
public ArrayList<Income> getIncomeByPersonId(@PathParam("id") Integer _Id)
{
return DatabaseManager.getDatabaseManager().getIncomeByPersonID(_Id);
}
@GET
@Path("/subincome/{id}")
@Produces("application/json")
public ArrayList<Income> getIncomeByIncomeId(@PathParam("id") Integer _Id)
{
return DatabaseManager.getDatabaseManager().getIncomeByIncomeID(_Id);
}
//post for a new entry
@POST
@Consumes("application/json")
@Produces("application/json")
public Response postIncome(Income _Income)
{
//insert and get ID
int id = DatabaseManager.getDatabaseManager().insertIncome(_Income);
//insert and set ID to the instance
_Income.setId(id);
return Response.status(201).entity(_Income).build();
}
//put for updating an entry
@PUT
@Path("{id}")
@Consumes("application/json")
@Produces("application/json")
public Response putIncome(@PathParam("id") Integer _Id, Income _Income)
{
_Income.setId(_Id);
DatabaseManager.getDatabaseManager().updateIncome(_Income);
return Response.status(201).entity(_Income).build();
}
@DELETE
@Path("{id}")
@Consumes("application/json")
@Produces("application/json")
public Response deleteIncome(@PathParam("id") Integer _Id)
{
boolean successful = DatabaseManager.getDatabaseManager().deleteIncome(_Id);
return Response.status(201).entity(successful).build();
}
}