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

main
Last change on this file since befb988 was befb988, checked in by 223021 <daniel.ilievski.2@…>, 2 weeks 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.6 KB
RevLine 
[d8b6c91]1package mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.controllers;
2
[19398ad]3import lombok.AllArgsConstructor;
4import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterDetailsDTO;
[befb988]5import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterEditDetailsDTO;
[19398ad]6import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.service.intef.RecruiterService;
[befb988]7import org.springframework.core.io.Resource;
8import org.springframework.http.HttpHeaders;
[19398ad]9import org.springframework.http.HttpStatus;
[befb988]10import org.springframework.http.MediaType;
[d8b6c91]11import org.springframework.http.ResponseEntity;
[19398ad]12import org.springframework.web.bind.annotation.*;
[befb988]13import org.springframework.web.multipart.MultipartFile;
[d8b6c91]14
15@RestController
16@RequestMapping("/api/recruiter")
[19398ad]17@AllArgsConstructor
18@CrossOrigin(origins = "*")
[d8b6c91]19public class RecruiterController {
20
[19398ad]21 private final RecruiterService recruiterService;
22
[befb988]23 @GetMapping("/{id}/info")
[19398ad]24 public ResponseEntity<?> getRecruiterDetailsById(@PathVariable("id") Long id) {
25 RecruiterDetailsDTO recruiterDetailsDTO = recruiterService.getRecruiterDetailsById(id);
26 return new ResponseEntity<>(recruiterDetailsDTO, HttpStatus.OK);
[d8b6c91]27 }
[befb988]28
29 @GetMapping("/{id}/edit-info")
30 public ResponseEntity<?> getRecruiterEditDetailsById(@PathVariable("id") Long id) {
31 RecruiterEditDetailsDTO recruiterEditDetailsDTO = recruiterService.getRecruiterEditDetailsById(id);
32 return new ResponseEntity<>(recruiterEditDetailsDTO, HttpStatus.OK);
33 }
34
35 @PostMapping("/{id}/edit-info")
36 public ResponseEntity<?> editRecruiterDetailsById(@PathVariable("id") Long id, @RequestBody RecruiterEditDetailsDTO recruiterEditDetailsDTO) {
37 RecruiterEditDetailsDTO recruiterEditDetailsDTOresp = recruiterService.editRecruiterDetailsById(id, recruiterEditDetailsDTO);
38 return new ResponseEntity<>(recruiterEditDetailsDTOresp, HttpStatus.OK);
39 }
40
41 @PostMapping("/submit-logo")
42 public ResponseEntity<?> submitRecruiterLogo(
43 @RequestParam("recruiterId") Long recruiterId,
44 @RequestParam("logoFile") MultipartFile logoFile) {
45 recruiterService.submitLogo(recruiterId, logoFile);
46 return new ResponseEntity<>(HttpStatus.OK);
47 }
48
49 @GetMapping("/{id}/download-logo")
50 public ResponseEntity<?> downloadRecruiterLogo(@PathVariable("id") Long id) {
51 Resource resource = recruiterService.loadLogoAsResource(id);
52 return ResponseEntity.ok()
53 .contentType(MediaType.IMAGE_JPEG)
54 .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + resource.getFilename() + "\"")
55 .body(resource);
56 }
[d8b6c91]57}
Note: See TracBrowser for help on using the repository browser.