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@…>, 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.6 KB
Line 
1package mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.controllers;
2
3import lombok.AllArgsConstructor;
4import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterDetailsDTO;
5import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterEditDetailsDTO;
6import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.service.intef.RecruiterService;
7import org.springframework.core.io.Resource;
8import org.springframework.http.HttpHeaders;
9import org.springframework.http.HttpStatus;
10import org.springframework.http.MediaType;
11import org.springframework.http.ResponseEntity;
12import org.springframework.web.bind.annotation.*;
13import org.springframework.web.multipart.MultipartFile;
14
15@RestController
16@RequestMapping("/api/recruiter")
17@AllArgsConstructor
18@CrossOrigin(origins = "*")
19public class RecruiterController {
20
21 private final RecruiterService recruiterService;
22
23 @GetMapping("/{id}/info")
24 public ResponseEntity<?> getRecruiterDetailsById(@PathVariable("id") Long id) {
25 RecruiterDetailsDTO recruiterDetailsDTO = recruiterService.getRecruiterDetailsById(id);
26 return new ResponseEntity<>(recruiterDetailsDTO, HttpStatus.OK);
27 }
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 }
57}
Note: See TracBrowser for help on using the repository browser.