Ignore:
Timestamp:
06/17/24 21:59:14 (12 days ago)
Author:
223021 <daniel.ilievski.2@…>
Branches:
main
Children:
08f82ec
Parents:
b248810
Message:

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.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/controllers/JobSeekerController.java

    rb248810 rbefb988  
    33
    44import lombok.AllArgsConstructor;
    5 import org.springframework.web.bind.annotation.CrossOrigin;
    6 import org.springframework.web.bind.annotation.RequestMapping;
    7 import org.springframework.web.bind.annotation.RestController;
     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;
    815
    916@RestController
     
    1219@CrossOrigin(origins = "*")
    1320public 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    }
    1451}
Note: See TracChangeset for help on using the changeset viewer.