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/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.