package com.ibm.personafusion.controller;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import com.ibm.personafusion.Config;
import com.ibm.personafusion.Constants;
import com.ibm.personafusion.model.AddPersonRequest;
import com.ibm.personafusion.model.Person;
/** Handles the POST /api/add endpoint.
* Returns status 204 if a person was successfully added.
* @author Sean Welleck **/
@Path("/add")
public class AddController
{
/** Create a new Person. **/
@POST
@Consumes(MediaType.TEXT_PLAIN)
public Response handle(String json)
{
System.out.println(json);
Person p = personFromRequest(json);
System.out.println(p);
Config.cc.putPerson(p);
addToGlobalList(p);
return Response.ok(p.toString()).header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT")
.build();
}
protected static Person personFromRequest(String json)
{
AddPersonRequest apr = JsonUtils.getAPRFromJson(json);
Person p = AddPersonRequest.toPerson(apr);
return p;
}
protected static void addToGlobalList(Person p)
{
if (p == null || p.group == null) return;
if (p.group.equals(Constants.CURRENT_EMPLOYEES_GROUP))
{
PeopleController.people.add(p);
}
else
{
SearchController.people.add(p);
}
}
}