Commit 9baea84e authored by Radheshhathwar's avatar Radheshhathwar
Browse files

Bulk upload for exam cycle

Showing with 115 additions and 49 deletions
+115 -49
package com.tarento.upsmf.examsAndAdmissions.controller;
import com.tarento.upsmf.examsAndAdmissions.service.CsvDataImporterService;
import com.tarento.upsmf.examsAndAdmissions.util.Constants;
import org.codehaus.jettison.json.JSONArray;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import java.util.HashMap;
import java.util.Map;
@Controller
public class FileUploadController {
@Autowired
private CsvDataImporterService csvDataImporterService;
@PostMapping("/fileTest")
public ResponseEntity<Map<String, Object>> handleFileUploads(@RequestParam("file") MultipartFile file, @RequestParam("fileType") String fileType) {
Map<String, Object> response = new HashMap<>();
JSONArray jsonArray = null;
try {
switch (fileType.toLowerCase()) {
case Constants.CSV:
jsonArray = csvDataImporterService.csvToJson(file);
break;
case Constants.EXCEL:
jsonArray = csvDataImporterService.excelToJson(file);
break;
default:
// Handle unsupported file type
response.put("error", "Unsupported file type");
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(response);
}
response.put("data", jsonArray.toString());
return ResponseEntity.ok(response);
} catch (Exception e) {
response.put("error", "An error occurred while processing the file");
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(response);
}
}
}
\ No newline at end of file
package com.tarento.upsmf.examsAndAdmissions.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.tarento.upsmf.examsAndAdmissions.util.LocalDateDeserializer;
import com.tarento.upsmf.examsAndAdmissions.util.LocalTimeDeserializer;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.time.LocalDate;
import java.time.LocalTime;
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "examUpload") // Define the table name
public class ExamUploadData {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "examcycle_name")
@JsonProperty("Examcycle Name")
private String examcycleName;
@Column(name = "course")
@JsonProperty("Course")
private String course;
@Column(name = "start_date")
@JsonProperty("Start Date")
@JsonFormat(pattern = "dd.MM.yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate startDate;
@Column(name = "end_date")
@JsonProperty("End Date")
@JsonFormat(pattern = "dd.MM.yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate endDate;
@Column(name = "exam_name")
@JsonProperty("Exam Name")
private String examName;
@Column(name = "date")
@JsonProperty("Date")
@JsonFormat(pattern = "dd.MM.yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate date;
@Column(name = "start_time")
@JsonProperty("Start Time")
@JsonDeserialize(using = LocalTimeDeserializer.class)
private LocalTime startTime;
@Column(name = "end_time")
@JsonProperty("End Time")
@JsonDeserialize(using = LocalTimeDeserializer.class)
private LocalTime endTime;
@Column(name = "maximum_marks")
@JsonProperty("Maximum Marks")
private Integer maximumMarks;
}
package com.tarento.upsmf.examsAndAdmissions.repository;
import com.tarento.upsmf.examsAndAdmissions.model.ExamUploadData;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ExamEntityRepository extends JpaRepository<ExamUploadData, Long>{
}
package com.tarento.upsmf.examsAndAdmissions.util;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import java.io.IOException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class LocalDateDeserializer extends JsonDeserializer<LocalDate> {
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy");
@Override
public LocalDate deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
String dateText = p.getText();
return LocalDate.parse(dateText, DATE_FORMATTER);
}
}
package com.tarento.upsmf.examsAndAdmissions.util;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import java.io.IOException;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class LocalTimeDeserializer extends JsonDeserializer<LocalTime> {
private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
@Override
public LocalTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
String timeText = p.getText();
return LocalTime.parse(timeText, TIME_FORMATTER);
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment