private MetadataRestInfo addQueueGroups( List<OpenAcdQueueGroupRestInfoFull> queueGroupsRestInfo, List<OpenAcdQueueGroup> queueGroups) { List<OpenAcdSkillRestInfo> skillsRestInfo; List<OpenAcdAgentGroupRestInfo> agentGroupRestInfo; List<OpenAcdRecipeStepRestInfo> recipeStepRestInfo; // determine pagination PaginationInfo paginationInfo = RestUtilities.calculatePagination(m_form, queueGroups.size()); // create list of group restinfos for (int index = paginationInfo.startIndex; index <= paginationInfo.endIndex; index++) { OpenAcdQueueGroup queueGroup = queueGroups.get(index); skillsRestInfo = createSkillsRestInfo(queueGroup.getSkills()); agentGroupRestInfo = createAgentGroupsRestInfo(queueGroup); recipeStepRestInfo = createRecipeStepsRestInfo(queueGroup); OpenAcdQueueGroupRestInfoFull queueGroupRestInfo = new OpenAcdQueueGroupRestInfoFull( queueGroup, skillsRestInfo, agentGroupRestInfo, recipeStepRestInfo); queueGroupsRestInfo.add(queueGroupRestInfo); } // create metadata about agent groups MetadataRestInfo metadata = new MetadataRestInfo(paginationInfo); return metadata; }
private OpenAcdQueueGroupRestInfoFull createQueueGroupRestInfo(int id) throws ResourceException { OpenAcdQueueGroupRestInfoFull queueGroupRestInfo; List<OpenAcdSkillRestInfo> skillsRestInfo; List<OpenAcdAgentGroupRestInfo> agentGroupRestInfo; List<OpenAcdRecipeStepRestInfo> recipeStepRestInfo; OpenAcdQueueGroup queueGroup = m_openAcdContext.getQueueGroupById(id); skillsRestInfo = createSkillsRestInfo(queueGroup.getSkills()); agentGroupRestInfo = createAgentGroupsRestInfo(queueGroup); recipeStepRestInfo = createRecipeStepsRestInfo(queueGroup); queueGroupRestInfo = new OpenAcdQueueGroupRestInfoFull( queueGroup, skillsRestInfo, agentGroupRestInfo, recipeStepRestInfo); return queueGroupRestInfo; }
private void addLists( OpenAcdQueueGroup queueGroup, OpenAcdQueueGroupRestInfoFull queueGroupRestInfo) { // remove all skills queueGroup.getSkills().clear(); // set skills OpenAcdSkill skill; List<OpenAcdSkillRestInfo> skillsRestInfo = queueGroupRestInfo.getSkills(); for (OpenAcdSkillRestInfo skillRestInfo : skillsRestInfo) { skill = m_openAcdContext.getSkillById(skillRestInfo.getId()); queueGroup.addSkill(skill); } // remove all agent groups queueGroup.getAgentGroups().clear(); // set agent groups OpenAcdAgentGroup agentGroup; List<OpenAcdAgentGroupRestInfo> agentGroupsRestInfo = queueGroupRestInfo.getAgentGroups(); for (OpenAcdAgentGroupRestInfo agentGroupRestInfo : agentGroupsRestInfo) { agentGroup = m_openAcdContext.getAgentGroupById(agentGroupRestInfo.getId()); queueGroup.addAgentGroup(agentGroup); } // remove all current steps queueGroup.getSteps().clear(); // set steps OpenAcdRecipeStep step; OpenAcdRecipeCondition condition; OpenAcdRecipeAction action; OpenAcdRecipeActionRestInfo actionRestInfo; List<OpenAcdRecipeStepRestInfo> recipeStepsRestInfo = queueGroupRestInfo.getSteps(); for (OpenAcdRecipeStepRestInfo recipeStepRestInfo : recipeStepsRestInfo) { step = new OpenAcdRecipeStep(); step.setFrequency(recipeStepRestInfo.getFrequency()); // add conditions step.getConditions().clear(); for (OpenAcdRecipeConditionRestInfo recipeConditionRestInfo : recipeStepRestInfo.getConditions()) { condition = new OpenAcdRecipeCondition(); condition.setCondition(recipeConditionRestInfo.getCondition()); condition.setRelation(recipeConditionRestInfo.getRelation()); condition.setValueCondition(recipeConditionRestInfo.getValueCondition()); step.addCondition(condition); } // add action action = new OpenAcdRecipeAction(); actionRestInfo = recipeStepRestInfo.getAction(); action.setAction(actionRestInfo.getAction()); action.setActionValue(actionRestInfo.getActionValue()); // set action skills (separate from skills assigned to queue for (OpenAcdSkillRestInfo skillRestInfo : actionRestInfo.getSkills()) { skill = m_openAcdContext.getSkillById(skillRestInfo.getId()); action.addSkill(skill); } step.setAction(action); queueGroup.addStep(step); } }