package com.mossle.internal.whitelist.rs; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import javax.annotation.Resource; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import com.mossle.core.util.BaseDTO; import com.mossle.internal.whitelist.persistence.domain.WhitelistApp; import com.mossle.internal.whitelist.persistence.domain.WhitelistHost; import com.mossle.internal.whitelist.persistence.domain.WhitelistIp; import com.mossle.internal.whitelist.persistence.domain.WhitelistType; import com.mossle.internal.whitelist.persistence.manager.WhitelistTypeManager; import org.springframework.stereotype.Component; @Component @Path("whitelist") public class WhitelistResource { private WhitelistTypeManager whitelistTypeManager; @Path("get") @GET @Produces(MediaType.APPLICATION_JSON) public BaseDTO getWhitelist(@QueryParam("code") String code, @QueryParam("tenantId") String tenantId) { BaseDTO baseDto = new BaseDTO(); WhitelistType whitelistType = whitelistTypeManager.findUnique( "from WhitelistType where code=? and tenantId=?", code, tenantId); if (whitelistType == null) { baseDto.setCode(404); baseDto.setMessage("cannot find by code : " + code); return baseDto; } List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); for (WhitelistApp whitelistApp : whitelistType.getWhitelistApps()) { Map<String, Object> map = new HashMap<String, Object>(); map.put("id", Long.toString(whitelistApp.getId())); map.put("name", whitelistApp.getName()); map.put("description", whitelistApp.getDescription()); map.put("host", this.processHost(whitelistApp.getWhitelistHosts())); map.put("ip", this.processIp(whitelistApp.getWhitelistIps())); map.put("forceRelogin", Integer.valueOf(1).equals(whitelistApp.getForceRelogin())); map.put("code", whitelistApp.getCode()); map.put("username", whitelistApp.getUsername()); map.put("password", whitelistApp.getPassword()); map.put("level", whitelistApp.getLevel()); list.add(map); } baseDto.setCode(200); baseDto.setData(list); return baseDto; } public List<String> processHost(Set<WhitelistHost> whitelistHosts) { List<String> list = new ArrayList<String>(); for (WhitelistHost whitelistHost : whitelistHosts) { list.add(whitelistHost.getValue()); } return list; } public List<String> processIp(Set<WhitelistIp> whitelistIps) { List<String> list = new ArrayList<String>(); for (WhitelistIp whitelistIp : whitelistIps) { list.add(whitelistIp.getValue()); } return list; } @Resource public void setWhitelistTypeManager( WhitelistTypeManager whitelistTypeManager) { this.whitelistTypeManager = whitelistTypeManager; } }