source: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/controllers/JobSeekerController.java@ befb988

main
Last change on this file since befb988 was befb988, checked in by 223021 <daniel.ilievski.2@…>, 12 days ago

Added an edit profile page for both job seekers and recruiters, where they can upload profile pictures/company logos and edit their profile data. Added profile page specifically for recruiters. Refactored existing code.

  • Property mode set to 100644
File size: 2.4 KB
Line 
1package mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.controllers;
2
3
4import lombok.AllArgsConstructor;
5import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.JobSeekerEditDetailsDTO;
6import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterEditDetailsDTO;
7import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.service.intef.JobSeekerService;
8import org.springframework.core.io.Resource;
9import org.springframework.http.HttpHeaders;
10import org.springframework.http.HttpStatus;
11import org.springframework.http.MediaType;
12import org.springframework.http.ResponseEntity;
13import org.springframework.web.bind.annotation.*;
14import org.springframework.web.multipart.MultipartFile;
15
16@RestController
17@RequestMapping("/api/job-seeker")
18@AllArgsConstructor
19@CrossOrigin(origins = "*")
20public class JobSeekerController {
21 private final JobSeekerService jobSeekerService;
22
23 @GetMapping("/{id}/edit-info")
24 public ResponseEntity<?> getJobSeekerEditDetailsById(@PathVariable("id") Long id) {
25 JobSeekerEditDetailsDTO jobSeekerEditDetailsDTO = jobSeekerService.getJobSeekerEditDetailsById(id);
26 return new ResponseEntity<>(jobSeekerEditDetailsDTO, HttpStatus.OK);
27 }
28
29 @PostMapping("/{id}/edit-info")
30 public ResponseEntity<?> editRecruiterDetailsById(@PathVariable("id") Long id, @RequestBody JobSeekerEditDetailsDTO jobSeekerEditDetailsDTO) {
31 JobSeekerEditDetailsDTO jobSeekerEditDetailsDTOresp = jobSeekerService.editJobSeekerDetailsById(id, jobSeekerEditDetailsDTO);
32 return new ResponseEntity<>(jobSeekerEditDetailsDTOresp, HttpStatus.OK);
33 }
34
35 @PostMapping("/submit-profile-pic")
36 public ResponseEntity<?> submitJobSeekerProfilePic(
37 @RequestParam("jobSeekerId") Long jobSeekerId,
38 @RequestParam("profilePicFile") MultipartFile profilePicFile) {
39 jobSeekerService.submitProfilePic(jobSeekerId, profilePicFile);
40 return new ResponseEntity<>(HttpStatus.OK);
41 }
42
43 @GetMapping("/{id}/download-profile-pic")
44 public ResponseEntity<?> downloadJobSeekerProfilePic(@PathVariable("id") Long id) {
45 Resource resource = jobSeekerService.loadProfilePicAsResource(id);
46 return ResponseEntity.ok()
47 .contentType(MediaType.IMAGE_JPEG)
48 .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + resource.getFilename() + "\"")
49 .body(resource);
50 }
51}
Note: See TracBrowser for help on using the repository browser.