133 lines
4.2 KiB
Java
133 lines
4.2 KiB
Java
package search.helpers;
|
|
|
|
import client.communication.Communicator;
|
|
import client.communication.errors.RemoteServerErrorException;
|
|
import client.communication.errors.UnauthorizedAccessException;
|
|
import search.helpers.dataModels.ProjectContainer;
|
|
import shared.communication.common.Fields;
|
|
import shared.communication.common.Project_Res;
|
|
import shared.communication.params.Fields_Param;
|
|
import shared.communication.params.Projects_Param;
|
|
import shared.communication.params.Search_Param;
|
|
import shared.communication.responses.Fields_Res;
|
|
import shared.communication.responses.Projects_Res;
|
|
import shared.communication.responses.Search_Res;
|
|
|
|
import javax.imageio.ImageIO;
|
|
import java.awt.*;
|
|
import java.awt.image.BufferedImage;
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.IOException;
|
|
import java.net.URL;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
public class Networking {
|
|
|
|
public static int DEFAULT = 1;
|
|
|
|
private String serverPath;
|
|
|
|
public Networking(String host, int port) {
|
|
serverPath = "http://"+host+":"+port+"/";
|
|
this.communicator = new Communicator(serverPath);
|
|
}
|
|
|
|
public Networking(int startCode) {
|
|
if(startCode == 1) {
|
|
serverPath = "http://localhost:39640/";
|
|
this.communicator = new Communicator(serverPath);
|
|
}
|
|
}
|
|
|
|
private Communicator communicator;
|
|
|
|
public Projects_Res getProjects(String username, String password) {
|
|
Projects_Param projectsParam = new Projects_Param();
|
|
|
|
projectsParam.setUsername(username);
|
|
projectsParam.setPassword(password);
|
|
|
|
try {
|
|
return communicator.getProjects(projectsParam);
|
|
} catch (UnauthorizedAccessException e) {
|
|
return null;
|
|
} catch (RemoteServerErrorException e) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public Fields_Res getFields(String username, String password, int projectId) {
|
|
Fields_Param fieldsParam = new Fields_Param();
|
|
|
|
fieldsParam.setUsername(username);
|
|
fieldsParam.setPassword(password);
|
|
fieldsParam.setProjectId(projectId);
|
|
|
|
try {
|
|
return communicator.getFields(fieldsParam);
|
|
} catch (UnauthorizedAccessException e) {
|
|
return null;
|
|
} catch (RemoteServerErrorException e) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public List<ProjectContainer> getProjectsWithFields(String username, String password) {
|
|
Projects_Res projectsRes = getProjects(username, password);
|
|
Fields_Res allFieldsRes = getFields(username, password, -1);
|
|
if(projectsRes == null || allFieldsRes == null) return null;
|
|
List<ProjectContainer> projectContainerList = new ArrayList<ProjectContainer>();
|
|
for(Project_Res projectRes : projectsRes.getProjectsList()) {
|
|
ProjectContainer projectContainer = new ProjectContainer(projectRes);
|
|
for(Fields field : allFieldsRes.getFields()) {
|
|
if(field.getProjectId() == projectRes.getId()) {
|
|
projectContainer.addField(field);
|
|
}
|
|
}
|
|
projectContainerList.add(projectContainer);
|
|
}
|
|
|
|
return projectContainerList;
|
|
}
|
|
|
|
public Search_Res search(String username, String password, String fieldIds, String queryWords) {
|
|
Search_Param searchParam = new Search_Param();
|
|
searchParam.setUsername(username);
|
|
searchParam.setPassword(password);
|
|
// Add FieldIds
|
|
for(String fieldId : parseCommaString(fieldIds)) {
|
|
searchParam.addFieldId(Integer.parseInt(fieldId));
|
|
}
|
|
// Add Query Strings
|
|
for(String query : parseCommaString(queryWords)) {
|
|
searchParam.addSearchParam(query);
|
|
}
|
|
|
|
try {
|
|
return communicator.search(searchParam);
|
|
} catch (UnauthorizedAccessException e) {
|
|
return null;
|
|
} catch (RemoteServerErrorException e) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public BufferedImage getImage(String imageUrl) {
|
|
|
|
try {
|
|
return ImageIO.read(new URL(serverPath+imageUrl));
|
|
} catch (IOException e) {
|
|
return null;
|
|
}
|
|
|
|
}
|
|
|
|
// For search
|
|
private String[] parseCommaString(String stringWithCommas) {
|
|
return stringWithCommas.split(",");
|
|
}
|
|
|
|
|
|
}
|