Merge remote-tracking branch 'origin/csv-import' into feature-orga-csv
# Conflicts: # src/main/java/mops/gruppen2/controller/APIController.java # src/main/resources/templates/create.html
This commit is contained in:
@ -68,6 +68,7 @@ dependencies {
|
||||
implementation 'io.springfox:springfox-swagger2:2.9.2'
|
||||
implementation 'io.springfox:springfox-swagger-ui:2.9.2'
|
||||
implementation 'com.github.javafaker:javafaker:1.0.2'
|
||||
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.10.2'
|
||||
|
||||
compileOnly 'org.projectlombok:lombok'
|
||||
annotationProcessor 'org.projectlombok:lombok'
|
||||
|
@ -13,7 +13,10 @@ import mops.gruppen2.service.GroupService;
|
||||
import mops.gruppen2.service.SerializationService;
|
||||
import org.springframework.security.access.annotation.Secured;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -59,4 +62,14 @@ public class APIController {
|
||||
List<Group> groups = groupService.projectEventList(eventList);
|
||||
return groups.get(0);
|
||||
}
|
||||
|
||||
@PostMapping(value = "/uploadcsv", consumes = "text/csv")
|
||||
public void uploadCsv(@RequestBody InputStream body) throws IOException {
|
||||
System.out.println(CsvService.read(body));
|
||||
}
|
||||
|
||||
@PostMapping(value = "/uploadcsv", consumes = "multipart/form-data")
|
||||
public void uploadMultipart(@RequestParam("file") MultipartFile file) throws IOException {
|
||||
System.out.println(CsvService.read(file.getInputStream()));
|
||||
}
|
||||
}
|
||||
|
@ -3,10 +3,11 @@ package mops.gruppen2.domain;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Value;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Value
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@EqualsAndHashCode(exclude = {"givenname", "familyname", "email"})
|
||||
public class User {
|
||||
String user_id;
|
||||
|
22
src/main/java/mops/gruppen2/service/CsvService.java
Normal file
22
src/main/java/mops/gruppen2/service/CsvService.java
Normal file
@ -0,0 +1,22 @@
|
||||
package mops.gruppen2.service;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectReader;
|
||||
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
|
||||
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
|
||||
import mops.gruppen2.domain.User;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.List;
|
||||
|
||||
public class CsvService {
|
||||
|
||||
public static List<User> read(InputStream stream) throws IOException {
|
||||
CsvMapper mapper = new CsvMapper();
|
||||
|
||||
CsvSchema schema = mapper.schemaFor(User.class).withHeader().withColumnReordering(true);
|
||||
ObjectReader reader = mapper.readerFor(User.class).with(schema);
|
||||
|
||||
return reader.<User>readValues(stream).readAll();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user