Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

public class BookmarkConverter {

public static BookmarkRequestDTO.BookmarkDetailDTO toDetailDTO(Bookmark bookmark) {
return BookmarkRequestDTO.BookmarkDetailDTO.builder()
public static BookmarkRequestDTO.SaveBookmarkDTO toSaveBookmarkDTO(Bookmark bookmark) {
return BookmarkRequestDTO.SaveBookmarkDTO.builder()
.id(bookmark.getId())
.jobId(bookmark.getJobId())
.companyName(bookmark.getCompanyName())
Expand All @@ -20,6 +20,21 @@ public static BookmarkRequestDTO.BookmarkDetailDTO toDetailDTO(Bookmark bookmark
.location(bookmark.getLocation())
.deadline(bookmark.getDeadline())
.registrationDate(bookmark.getRegistrationDate())
.detailUrl(bookmark.getDetailUrl())
.build();
}

public static BookmarkResponseDTO.BookmarkDetailInfoDTO toDetailDTO(Bookmark bookmark) {
return BookmarkResponseDTO.BookmarkDetailInfoDTO.builder()
.id(bookmark.getId())
.jobTitle(bookmark.getJobTitle())
.companyName(bookmark.getCompanyName())
.pay(bookmark.getPay())
.time(bookmark.getTime())
.location(bookmark.getLocation())
.deadline(bookmark.getDeadline())
.registrationDate(bookmark.getRegistrationDate())
.detailUrl(bookmark.getDetailUrl())
.build();
}

Expand All @@ -36,6 +51,7 @@ public static List<BookmarkResponseDTO.BookmarkListDTO> getBookmarkListDTO(List<
.location(bookmark.getLocation())
.deadline(bookmark.getDeadline())
.registrationDate(bookmark.getRegistrationDate())
.detailUrl(bookmark.getDetailUrl())
.build())
.collect(Collectors.toList());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,10 @@ public List<JobCrawlingDTO.JobInfoDTO> crawlJobs(int page) {
List<WebElement> jobCards = driver.findElements(By.cssSelector("tr[id^='list']"));

for (WebElement card : jobCards) {
WebElement titleElement = card.findElement(By.cssSelector("a.t3_sb"));
String title = titleElement.getText();
String detailUrl = titleElement.getAttribute("href");
String company = card.findElement(By.cssSelector("a.cp_name")).getText();
String title = card.findElement(By.cssSelector("a.t3_sb")).getText();
String pay = card.findElement(By.cssSelector("li.dollar span.item")).getText();
String time = card.findElement(By.cssSelector("li.time span.item.sm:nth-of-type(1)")).getText();
String location = card.findElement(By.cssSelector("li.site p")).getText();
Expand All @@ -54,8 +56,6 @@ public List<JobCrawlingDTO.JobInfoDTO> crawlJobs(int page) {
registrationDate = dateElements.get(1).getText();
}

System.out.println(company + " / " + title + " / " + pay + " / " + time + " / " + location + " / " + deadline + " / " + registrationDate);

jobs.add(
JobCrawlingDTO.JobInfoDTO.builder()
.companyName(company)
Expand All @@ -65,6 +65,7 @@ public List<JobCrawlingDTO.JobInfoDTO> crawlJobs(int page) {
.location(location)
.deadline(deadline)
.registrationDate(registrationDate)
.detailUrl(detailUrl)
.build()
);
}
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/com/parentsgowork/server/domain/Bookmark.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,7 @@ public class Bookmark extends BaseEntity {
@Column
private String registrationDate;

@Column(columnDefinition = "TEXT")
private String detailUrl;

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.parentsgowork.server.web.dto.BookmarkDTO.BookmarkResponseDTO;

public interface BookmarkCommandService {
BookmarkRequestDTO.BookmarkDetailDTO bookmarkJob(Long userId, Long jobId, int page);
BookmarkRequestDTO.SaveBookmarkDTO bookmarkJob(Long userId, Long jobId, int page);

BookmarkResponseDTO.DeleteBookmarkDTO delete(Long userId, Long bookmarkId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public class BookmarkCommandServiceImpl implements BookmarkCommandService {
private final UserRepository userRepository;

@Override
public BookmarkRequestDTO.BookmarkDetailDTO bookmarkJob(Long userId, Long jobId, int page) {
public BookmarkRequestDTO.SaveBookmarkDTO bookmarkJob(Long userId, Long jobId, int page) {

// 해당 페이지의 크롤링 결과 불러오기
List<JobInfoDTO> crawledJobs = crawlingService.getSeniorJobs(page);
Expand All @@ -50,10 +50,11 @@ public BookmarkRequestDTO.BookmarkDetailDTO bookmarkJob(Long userId, Long jobId,
.location(job.getLocation())
.deadline(job.getDeadline())
.registrationDate(job.getRegistrationDate())
.detailUrl(job.getDetailUrl())
.build();

Bookmark savedBookmark = bookmarkRepository.save(bookmark);
return BookmarkConverter.toDetailDTO(savedBookmark);
return BookmarkConverter.toSaveBookmarkDTO(savedBookmark);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@
public interface BookmarkQueryService {
List<BookmarkResponseDTO.BookmarkListDTO> getBookmarkList(Long userId);

BookmarkRequestDTO.BookmarkDetailDTO getBookmarkDetails(Long userId, Long bookmarkId);
BookmarkResponseDTO.BookmarkDetailInfoDTO getBookmarkDetails(Long userId, Long bookmarkId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public List<BookmarkResponseDTO.BookmarkListDTO> getBookmarkList(Long userId) {
}

@Override
public BookmarkRequestDTO.BookmarkDetailDTO getBookmarkDetails(Long userId, Long bookmarkId) {
public BookmarkResponseDTO.BookmarkDetailInfoDTO getBookmarkDetails(Long userId, Long bookmarkId) {

Bookmark bookmark = bookmarkRepository.findByIdAndUserId(bookmarkId, userId)
.orElseThrow(() -> new BookmarkHandler(ErrorStatus.BOOKMARK_NOT_FOUND));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ public class BookmarkController implements BookmarkSpecification {
private final BookmarkQueryService bookmarkQueryService;

@PostMapping("")
public ApiResponse<BookmarkRequestDTO.BookmarkDetailDTO> bookmarkJob(@RequestBody BookmarkRequestDTO.jobInfoBookmarkDTO request) {
public ApiResponse<BookmarkRequestDTO.SaveBookmarkDTO> bookmarkJob(@RequestBody BookmarkRequestDTO.jobInfoBookmarkDTO request) {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
Long userId = (Long) authentication.getPrincipal();

BookmarkRequestDTO.BookmarkDetailDTO response = bookmarkCommandService.bookmarkJob(userId, request.getJobId(), request.getPage());
BookmarkRequestDTO.SaveBookmarkDTO response = bookmarkCommandService.bookmarkJob(userId, request.getJobId(), request.getPage());
return ApiResponse.onSuccess(response);
}

Expand All @@ -42,11 +42,11 @@ public ApiResponse<List<BookmarkResponseDTO.BookmarkListDTO>> getBookmarkList()
}

@GetMapping("{bookmarkId}")
public ApiResponse<BookmarkRequestDTO.BookmarkDetailDTO> getBookmarkDetails(@PathVariable Long bookmarkId) {
public ApiResponse<BookmarkResponseDTO.BookmarkDetailInfoDTO> getBookmarkDetails(@PathVariable Long bookmarkId) {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
Long userId = (Long) authentication.getPrincipal();

BookmarkRequestDTO.BookmarkDetailDTO response = bookmarkQueryService.getBookmarkDetails(userId, bookmarkId);
BookmarkResponseDTO.BookmarkDetailInfoDTO response = bookmarkQueryService.getBookmarkDetails(userId, bookmarkId);
return ApiResponse.onSuccess(response);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public interface BookmarkSpecification {
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "COMMON200", description = "⭕ SUCCESS, 성공"),
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "COMMON400", description = "❌ BAD, 잘못된 요청", content = @Content(schema = @Schema(implementation = ApiResponse.class)))
})
ApiResponse<BookmarkRequestDTO.BookmarkDetailDTO> bookmarkJob(@RequestBody BookmarkRequestDTO.jobInfoBookmarkDTO request);
ApiResponse<BookmarkRequestDTO.SaveBookmarkDTO> bookmarkJob(@RequestBody BookmarkRequestDTO.jobInfoBookmarkDTO request);

@GetMapping("/")
@Operation(summary = "내가 저장한 북마크 리스트 조회", description = "내가 저장한 북마크 리스트를 조회합니다.")
Expand All @@ -36,7 +36,7 @@ public interface BookmarkSpecification {
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "COMMON200", description = "⭕ SUCCESS, 성공"),
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "COMMON400", description = "❌ BAD, 잘못된 요청", content = @Content(schema = @Schema(implementation = ApiResponse.class)))
})
ApiResponse<BookmarkRequestDTO.BookmarkDetailDTO> getBookmarkDetails(@PathVariable Long bookmarkId);
ApiResponse<BookmarkResponseDTO.BookmarkDetailInfoDTO> getBookmarkDetails(@PathVariable Long bookmarkId);

@DeleteMapping("{bookmarkId}")
@Operation(summary = "내가 저장한 북마크 삭제", description = "내가 저장한 북마크 리스트를 삭제합니다.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public static class jobInfoBookmarkDTO {
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class BookmarkDetailDTO {
public static class SaveBookmarkDTO {
private Long id;
private Long jobId;
private String companyName;
Expand All @@ -29,6 +29,7 @@ public static class BookmarkDetailDTO {
private String location;
private String deadline;
private String registrationDate;
private String detailUrl;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,23 @@ public static class BookmarkListDTO {
private String location;
private String deadline;
private String registrationDate;
private String detailUrl;
}

@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class BookmarkDetailInfoDTO {
private Long id;
private String jobTitle;
private String companyName;
private String pay;
private String time;
private String location;
private String deadline;
private String registrationDate;
private String detailUrl;
}

@Getter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public static class JobInfoDTO {
private String location;
private String deadline;
private String registrationDate;
private String detailUrl;
}

}