package com.ibm.personafusion.model; import java.util.ArrayList; import java.util.List; import java.util.Map; import com.ibm.personafusion.infogen.QuestionResponse; import com.ibm.personafusion.model.Person.Role; import com.ibm.personafusion.service.WatsonUserModeller; /** Models the JSON received from an POST /api/add request. **/ public class AddPersonRequest { public String firstName; public String lastName; public String role; public Map<String, List<String>> resumeInfo; public List<String> responses; public String imageUrl; public String group; public static Person toPerson(AddPersonRequest apr) { String fullName = apr.firstName + " " + apr.lastName; Role r = apr.role.equals("DEV") ? Role.DEV : Role.Manager; Person p = new Person(fullName, getTraits(apr), apr.imageUrl, constructResumeInfo(apr), r, new ArrayList<String>()); p.qaResponses = apr.responses; p.group = apr.group; p.keyWords = p.getKeyWords(10); return p; } private static List<Trait> getTraits(AddPersonRequest apr) { // get traits WatsonUserModeller WUM = new WatsonUserModeller(); String response = QuestionResponse.convertToFullString(apr.responses); List<Trait> traits = WUM.getTraitsList(response); return traits; } private static ResumeInfo constructResumeInfo(AddPersonRequest apr) { // construct ResumeInfo ResumeInfo ri = new ResumeInfo(); ri.pastEmployers = apr.resumeInfo.get("pastEmployers"); ri.techSkills = apr.resumeInfo.get("techSkills"); return ri; } }