Ignore:
Timestamp:
06/17/24 21:59:14 (2 weeks 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.

Location:
jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/controllers
Files:
3 edited

Legend:

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

    rb248810 rbefb988  
    22
    33import lombok.RequiredArgsConstructor;
     4import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterAdminDetailsDTO;
    45import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterDetailsDTO;
    56import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.service.intef.AdminService;
     
    2021    @PostMapping("/change-access/{recruiter_id}")
    2122    public ResponseEntity<?> changeAccess(@PathVariable("recruiter_id") Long recruiterId, @RequestBody boolean access) {
    22         RecruiterDetailsDTO recruiterDetailsDTO = adminService.changeAccess(recruiterId, access);
    23         return new ResponseEntity<>(recruiterDetailsDTO, HttpStatus.OK);
     23        RecruiterAdminDetailsDTO recruiterAdminDetailsDTO = adminService.changeAccess(recruiterId, access);
     24        return new ResponseEntity<>(recruiterAdminDetailsDTO, HttpStatus.OK);
    2425    }
    2526
    2627    @GetMapping("/recruiters")
    2728    public ResponseEntity<?> findAllRecruiters() {
    28         List<RecruiterDetailsDTO> recruiterDetailsDTOList = adminService.findAllRecruiters();
    29         return new ResponseEntity<>(recruiterDetailsDTOList, HttpStatus.OK);
     29        List<RecruiterAdminDetailsDTO> recruiterAdminDetailsDTOList = adminService.findAllRecruiters();
     30        return new ResponseEntity<>(recruiterAdminDetailsDTOList, HttpStatus.OK);
    3031    }
    3132}
  • 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}
  • jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/controllers/RecruiterController.java

    rb248810 rbefb988  
    33import lombok.AllArgsConstructor;
    44import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterDetailsDTO;
     5import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterEditDetailsDTO;
    56import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.service.intef.RecruiterService;
     7import org.springframework.core.io.Resource;
     8import org.springframework.http.HttpHeaders;
    69import org.springframework.http.HttpStatus;
     10import org.springframework.http.MediaType;
    711import org.springframework.http.ResponseEntity;
    812import org.springframework.web.bind.annotation.*;
     13import org.springframework.web.multipart.MultipartFile;
    914
    1015@RestController
     
    1621    private final RecruiterService recruiterService;
    1722
    18     @GetMapping("/info/{id}")
     23    @GetMapping("/{id}/info")
    1924    public ResponseEntity<?> getRecruiterDetailsById(@PathVariable("id") Long id) {
    2025        RecruiterDetailsDTO recruiterDetailsDTO = recruiterService.getRecruiterDetailsById(id);
    2126        return new ResponseEntity<>(recruiterDetailsDTO, HttpStatus.OK);
    2227    }
     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    }
    2357}
Note: See TracChangeset for help on using the changeset viewer.