Files
snap-admin/src/main/java/tech/ailef/dbadmin/external/dto/LogsSearchRequest.java
Francesco cdbad51641 0.1.0
2023-09-25 10:10:30 +02:00

99 lines
2.1 KiB
Java

package tech.ailef.dbadmin.external.dto;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
public class LogsSearchRequest {
private String table;
private String actionType;
private String itemId;
private int page;
private int pageSize;
private String sortKey;
private String sortOrder;
public String getTable() {
return table == null || table.isBlank() || table.equalsIgnoreCase("Any") ? null : table;
}
public void setTable(String table) {
this.table = table;
}
public String getActionType() {
return actionType == null || actionType.isBlank() || actionType.equalsIgnoreCase("Any") ? null : actionType;
}
public void setActionType(String actionType) {
this.actionType = actionType;
}
public String getItemId() {
return itemId == null || itemId.isBlank() ? null : itemId;
}
public void setItemId(String itemId) {
this.itemId = itemId;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public String getSortKey() {
return sortKey;
}
public void setSortKey(String sortKey) {
this.sortKey = sortKey;
}
public String getSortOrder() {
return sortOrder;
}
public void setSortOrder(String sortOrder) {
this.sortOrder = sortOrder;
}
@Override
public String toString() {
return "LogsSearchRequest [table=" + table + ", actionType=" + actionType + ", itemId=" + itemId + ", page="
+ page + ", pageSize=" + pageSize + ", sortKey=" + sortKey + ", sortOrder=" + sortOrder + "]";
}
public PageRequest toPageRequest() {
int actualPage = page - 1 < 0 ? 0 : page - 1;
int actualPageSize = pageSize <= 0 ? 50 : pageSize;
if (sortKey == null)
return PageRequest.of(actualPage, actualPageSize);
if (sortOrder == null) sortOrder = "ASC";
if (sortOrder.equals("DESC")) {
return PageRequest.of(actualPage, actualPageSize, Sort.by(sortKey).descending());
} else {
return PageRequest.of(actualPage, actualPageSize, Sort.by(sortKey).ascending());
}
}
}