Skip to content
Snippets Groups Projects
Verified Commit feda079e authored by Otto Visser's avatar Otto Visser
Browse files

Attempt at refactoring/bugfixing for #264

parent d87a4299
No related branches found
No related tags found
2 merge requests!201Development,!195Resolve "ArrayIndexOutOfBoundsException with incorrect CSV input"
...@@ -15,8 +15,7 @@ ...@@ -15,8 +15,7 @@
*/ */
package nl.tudelft.ewi.queue.helper; package nl.tudelft.ewi.queue.helper;
import java.io.IOException; import java.io.*;
import java.io.InputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Scanner; import java.util.Scanner;
...@@ -45,20 +44,18 @@ public class CsvUserHelper { ...@@ -45,20 +44,18 @@ public class CsvUserHelper {
} }
public static ArrayList<CsvUserHelper> readCsv(MultipartFile csvFile) throws IOException { public static ArrayList<CsvUserHelper> readCsv(MultipartFile csvFile) throws IOException {
if (csvFile.isEmpty())
return null;
InputStream content = csvFile.getInputStream(); InputStream content = csvFile.getInputStream();
Scanner scanner = new Scanner(content).useDelimiter("\\A"); BufferedReader reader = new BufferedReader(new InputStreamReader(content));
ArrayList<CsvUserHelper> csvUserHelpersSet = new ArrayList<>(); ArrayList<CsvUserHelper> csvUserHelpersSet = new ArrayList<>();
String csv = ""; String line;
if (scanner.hasNext()) { while((line = reader.readLine()) != null) {
csv = scanner.next(); // not accepting comma as we have students with a comma in their last name...
} String[] currLine = line.split("[;\t]");
String[] lines = csv.split("\n");
for (String line : lines) {
String[] currLine = line.split(",");
if (currLine[1].contains("\r")) {
currLine[1] = currLine[1].substring(0, currLine[1].length() - 1);
}
csvUserHelpersSet.add(new CsvUserHelper(currLine[0], csvUserHelpersSet.add(new CsvUserHelper(currLine[0],
DefaultRole.valueOfExt(currLine[1]))); DefaultRole.valueOfExt(currLine[1])));
} }
......
...@@ -95,6 +95,9 @@ public class CourseService { ...@@ -95,6 +95,9 @@ public class CourseService {
public void addCourseStaff(MultipartFile csv, Course course) throws IOException { public void addCourseStaff(MultipartFile csv, Course course) throws IOException {
ArrayList<CsvUserHelper> users = CsvUserHelper.readCsv(csv); ArrayList<CsvUserHelper> users = CsvUserHelper.readCsv(csv);
if (null == users)
return;
for (CsvUserHelper csvUser : users) { for (CsvUserHelper csvUser : users) {
User staff = findUser(csvUser.getNetId()); User staff = findUser(csvUser.getNetId());
Optional<Role> oldRole = staff.getRole(course); Optional<Role> oldRole = staff.getRole(course);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment