package org.hadatac.console.controllers.dataacquisitionsearch; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.io.IOException; import play.*; import play.mvc.*; import play.mvc.Http.MultipartFormData; import play.mvc.Http.MultipartFormData.FilePart; import play.libs.*; import org.apache.commons.csv.CSVRecord; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.hadatac.console.controllers.annotator.AnnotationLog; import org.hadatac.console.views.html.dataacquisitionsearch.*; import org.hadatac.data.loader.ccsv.Parser; import org.hadatac.data.loader.util.Arguments; import org.hadatac.data.loader.util.FileFactory; import org.hadatac.entity.pojo.Credential; import org.hadatac.metadata.loader.LabkeyDataHandler; import org.hadatac.utils.ConfigProp; import org.hadatac.utils.Feedback; import org.kohsuke.args4j.Option; import org.labkey.remoteapi.CommandException; public class ImportSDD extends Controller { static FileFactory files; public static final String UPLOAD_NAME = "uploads/sdd.csv"; public static Result importSDD(String oper) { return ok(importSDD.render(oper, "")); } // public static Result postLoadSDD(String oper) { // return ok(importSDD.render(oper, "")); // } // public Map<String, Object> createRow() { // Map<String, Object> row = new HashMap<String, Object>(); // row.put("hasURI", getUri()); // row.put("a", getType()); // row.put("rdfs:label", getTitle()); // row.put("skos:definition", getAims()); // row.put("rdfs:comment", getSignificance()); // row.put("hasco:hasAgent", getAgent()); // row.put("hasco:hasInstitution", getInstitution()); // counter++; // // return row; // } // // public List< Map<String, Object> > createRows() { // for (CSVRecord record : records) { // rec = record; // rows.add(createRow()); // } // // return rows; // } public static void playLoadSDD() throws IOException, CommandException { BufferedReader reader = new BufferedReader(new FileReader(UPLOAD_NAME)); List<List<String>> lines = new ArrayList<>(); String line = null; while ((line = reader.readLine()) != null) { List<String> elephantList = Arrays.asList(line.split(",")); lines.add(elephantList); } Map<String, List<String>> sddMap = new HashMap<String, List<String>>(); for (int i = 0; i < lines.size(); i++){ sddMap.put("i", lines.get(i)); } // System.out.println(lines.get(0).get(0)); Map<String, Object> row = new HashMap<String, Object>(); List< Map<String, Object> > rows = null; String site = ConfigProp.getPropertyValue("labkey.config", "site"); String path = "/SIDPIDTEST"; Credential cred = Credential.find(); LabkeyDataHandler labkeyDataHandler = new LabkeyDataHandler( site, cred.getUserName(), cred.getPassword(), path); int nRows = labkeyDataHandler.updateRows("DASchemaAttribute", rows); reader.close(); } @BodyParser.Of(value = BodyParser.MultipartFormData.class, maxLength = 500 * 1024 * 1024) public static Result uploadFile() { MultipartFormData body = request().body().asMultipartFormData(); FilePart uploadedfile = body.getFile("sddsheet"); if (uploadedfile != null) { File file = uploadedfile.getFile(); File newFile = new File(UPLOAD_NAME); InputStream isFile; try { isFile = new FileInputStream(file); byte[] byteFile; try { byteFile = IOUtils.toByteArray(isFile); try { FileUtils.writeByteArrayToFile(newFile, byteFile); } catch (Exception e) { e.printStackTrace(); } try { isFile.close(); } catch (Exception e) { return ok (importSDD.render("fail", "Could not save uploaded file.")); } } catch (Exception e) { return ok (importSDD.render("fail", "Could not process uploaded file.")); } } catch (FileNotFoundException e1) { return ok (importSDD.render("fail", "Could not find uploaded file")); } return ok(importSDD.render("loaded", "File uploaded successfully.")); } else { return ok (importSDD.render("fail", "Error uploading file. Please try again.")); } } }