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
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ plugins {
}

group = "team.themoment.datagsm.sdk"
version = "1.1.1"
version = "1.2.0"

java {
toolchain {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class StudentRequest {
private Sex sex;
private StudentRole role;
private Integer dormitoryRoom;
private Boolean isGraduate;
private EnrollmentFilter enrollmentFilter;
private Integer page;
private Integer size;
private StudentSortBy sortBy;
Expand Down Expand Up @@ -92,8 +92,8 @@ public StudentRequest dormitoryRoom(Integer dormitoryRoom) {
return this;
}

public StudentRequest isGraduate(Boolean isGraduate) {
this.isGraduate = isGraduate;
public StudentRequest enrollmentFilter(EnrollmentFilter enrollmentFilter) {
this.enrollmentFilter = enrollmentFilter;
return this;
}

Expand Down Expand Up @@ -153,8 +153,8 @@ public Integer getDormitoryRoom() {
return dormitoryRoom;
}

public Boolean getIsGraduated() {
return isGraduate;
public EnrollmentFilter getEnrollmentFilter() {
return enrollmentFilter;
}

public Integer getPage() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@ private Map<String, String> buildStudentQueryParams(StudentRequest request) {
if (request.getDormitoryRoom() != null) {
params.put("dormitoryRoom", request.getDormitoryRoom().toString());
}
if (request.getIsGraduated() != null) {
params.put("isGraduated", request.getIsGraduated().toString());
if (request.getEnrollmentFilter() != null) {
request.getEnrollmentFilter().applyToParams(params);
}
if (request.getPage() != null) {
params.put("page", request.getPage().toString());
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package team.themoment.datagsm.sdk.openapi.model;

import java.util.Map;

public abstract class EnrollmentFilter {
EnrollmentFilter() {}

public static OnlyEnrolled onlyEnrolled() { return new OnlyEnrolled(); }
public static Detailed detailed() { return new Detailed(); }

public abstract void applyToParams(Map<String, String> params);

public static final class OnlyEnrolled extends EnrollmentFilter {
private OnlyEnrolled() {}

@Override
public void applyToParams(Map<String, String> params) {
params.put("onlyEnrolled", "true");
}
}

public static final class Detailed extends EnrollmentFilter {
private Boolean includeGraduates = false;
private Boolean includeWithdrawn = false;

private Detailed() {}

public Detailed includeGraduates(boolean include) {
this.includeGraduates = include;
return this;
}

public Detailed includeWithdrawn(boolean include) {
this.includeWithdrawn = include;
return this;
}

@Override
public void applyToParams(Map<String, String> params) {
params.put("onlyEnrolled", "false");
if (includeGraduates != null) params.put("includeGraduates", includeGraduates.toString());
if (includeWithdrawn != null) params.put("includeWithdrawn", includeWithdrawn.toString());
}
}
}