Skip to content
This repository has been archived by the owner on Sep 1, 2024. It is now read-only.

Feature/js develop/private course query controller 1 #212

Merged
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 @@ -64,7 +64,8 @@ public Boolean isInLimit(Long limit,ResumeID resumeId) {

@Override
public List<CourseRoot> fetchAllCourses(CourseCriteria criteria, SimplePageableRequest pageableRequest) {
var courseComposeExample = CourseComposeExample.of(criteria,"order_number",pageableDataAccessMapper.toBatisPageable(pageableRequest));
var pageable = pageableDataAccessMapper.toBatisPageable(pageableRequest).changeLimit(pageableRequest.getSize()+1);
var courseComposeExample = CourseComposeExample.of(criteria,"order_number",pageable);
return courseQueryBatisRepository.selectByExample(courseComposeExample)
.stream()
.map(courseDataAccessMapper::toRoot)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package az.rock.flyjob.js.domain.presentation.handler.concretes;

import az.rock.flyjob.js.domain.core.exception.course.CourseNotFoundException;
import az.rock.flyjob.js.domain.core.root.detail.CourseRoot;
import az.rock.flyjob.js.domain.presentation.dto.criteria.CourseCriteria;
import az.rock.flyjob.js.domain.presentation.dto.response.resume.course.AnyCourseResponseModel;
import az.rock.flyjob.js.domain.presentation.dto.response.resume.course.MyCourseResponseModel;
Expand All @@ -18,8 +19,10 @@
import com.intellibucket.lib.payload.payload.query.CourseFetchPayload;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;


@Component
Expand All @@ -44,8 +47,8 @@ public SimplePageableResponse<MyCourseResponseModel> allMyCourses(SimplePageable
var courses = courseQueryRepositoryAdapter.fetchAllCourses(criteria,pageableRequest)
.stream()
.map(MyCourseResponseModel::of)
.toList();
var payload = SimplePageableResponse.ofNoMore(pageableRequest.getSize(), pageableRequest.getPage(),courses);
.collect(Collectors.toList());
var payload = convertSimplePageableResponse(courses,pageableRequest);
return payload;

}
Expand All @@ -56,11 +59,10 @@ public SimplePageableResponse<AnyCourseResponseModel> allAnyCourses(UUID targetR
var courses = courseQueryRepositoryAdapter.fetchAllCourses(criteria,pageableRequest)
.stream()
.map(AnyCourseResponseModel::of)
.toList();
var payload = SimplePageableResponse.ofNoMore(pageableRequest.getSize(), pageableRequest.getPage(),courses);
.collect(Collectors.toList());
var payload = convertSimplePageableResponse(courses,pageableRequest);
return payload;
}

@Override
public MyCourseResponseModel myCourseById(UUID id) throws CourseNotFoundException {
var resumeId = securityContextHolder.availableResumeID();
Expand All @@ -87,8 +89,8 @@ public SimplePageableResponse<SimpleMyCourseResponseModel> allMySimpleCourses(Si
var courses = courseQueryRepositoryAdapter.fetchAllCourses(criteria,simplePageableRequest)
.stream()
.map(SimpleMyCourseResponseModel::of)
.toList();
var payload = SimplePageableResponse.ofNoMore(simplePageableRequest.getSize(), simplePageableRequest.getPage(),courses);
.collect(Collectors.toList());
var payload = convertSimplePageableResponse(courses,simplePageableRequest);
return payload;
}

Expand All @@ -98,8 +100,15 @@ public SimplePageableResponse<SimpleAnyCourseResponseModel> allAnySimpleCourses(
var courses = courseQueryRepositoryAdapter.fetchAllCourses(criteria,pageableRequest)
.stream()
.map(SimpleAnyCourseResponseModel::of)
.toList();
var payload = SimplePageableResponse.ofNoMore(pageableRequest.getSize(), pageableRequest.getPage(),courses);
.collect(Collectors.toList());
var payload = convertSimplePageableResponse(courses,pageableRequest);
return payload;
}

private SimplePageableResponse convertSimplePageableResponse(List courses,SimplePageableRequest simplePageableRequest){
Boolean hasMore = courses.size() > simplePageableRequest.getSize();
if(hasMore)courses.remove(courses.size()-1);
return SimplePageableResponse.of(simplePageableRequest.getSize(), simplePageableRequest.getPage(),hasMore,courses);
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,7 @@ public Integer getOffset() {
return offset;
}

public BatisPageable changeLimit(Integer limit){
return new BatisPageable(limit,this.offset);
}
}
Loading