Skip to content

Commit

Permalink
Removed duplicate code
Browse files Browse the repository at this point in the history
  • Loading branch information
sonus21 committed Apr 11, 2021
1 parent ddca41c commit 707c2f5
Show file tree
Hide file tree
Showing 5 changed files with 244 additions and 244 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public V get(String key) {
}

public boolean exist(String key) {
return redisTemplate.getExpire(key) != -2L;
return ttl(key) != -2;
}

public int ttl(String key) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,29 +18,12 @@

import com.github.sonus21.rqueue.config.RqueueConfig;
import com.github.sonus21.rqueue.config.RqueueWebConfig;
import com.github.sonus21.rqueue.models.db.QueueConfig;
import com.github.sonus21.rqueue.models.enums.AggregationType;
import com.github.sonus21.rqueue.models.enums.ChartDataType;
import com.github.sonus21.rqueue.models.enums.DataType;
import com.github.sonus21.rqueue.models.enums.NavTab;
import com.github.sonus21.rqueue.models.response.RedisDataDetail;
import com.github.sonus21.rqueue.utils.ReactiveEnabled;
import com.github.sonus21.rqueue.utils.StringUtils;
import com.github.sonus21.rqueue.web.service.RqueueQDetailService;
import com.github.sonus21.rqueue.web.service.RqueueSystemManagerService;
import com.github.sonus21.rqueue.web.service.RqueueUtilityService;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.github.sonus21.rqueue.web.service.RqueueViewControllerService;
import java.util.Locale;
import java.util.Map.Entry;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Conditional;
import org.springframework.data.util.Pair;
import org.springframework.http.HttpStatus;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
Expand All @@ -59,52 +42,22 @@
public class ReactiveRqueueViewController {

private final ViewResolver rqueueViewResolver;
private final RqueueConfig rqueueConfig;
private final RqueueViewControllerService rqueueViewControllerService;
private final RqueueWebConfig rqueueWebConfig;
private final RqueueQDetailService rqueueQDetailService;
private final RqueueUtilityService rqueueUtilityService;
private final RqueueSystemManagerService rqueueSystemManagerService;

@Autowired
public ReactiveRqueueViewController(
RqueueConfig rqueueConfig,
RqueueWebConfig rqueueWebConfig,
RqueueQDetailService rqueueQDetailService,
RqueueUtilityService rqueueUtilityService,
RqueueSystemManagerService rqueueSystemManagerService,
RqueueViewControllerService rqueueViewControllerService,
@Qualifier("reactiveRqueueViewResolver") ViewResolver rqueueViewResolver) {
this.rqueueViewResolver = rqueueViewResolver;
this.rqueueConfig = rqueueConfig;
this.rqueueViewControllerService = rqueueViewControllerService;
this.rqueueWebConfig = rqueueWebConfig;
this.rqueueQDetailService = rqueueQDetailService;
this.rqueueUtilityService = rqueueUtilityService;
this.rqueueSystemManagerService = rqueueSystemManagerService;
}

private void addNavData(Model model, NavTab tab) {
for (NavTab navTab : NavTab.values()) {
String name = navTab.name().toLowerCase() + "Active";
model.addAttribute(name, tab == navTab);
}
}

private void addBasicDetails(Model model, ServerHttpRequest request) {
Pair<String, String> releaseAndVersion = rqueueUtilityService.getLatestVersion();
model.addAttribute("releaseLink", releaseAndVersion.getFirst());
model.addAttribute("latestVersion", releaseAndVersion.getSecond());
model.addAttribute(
"time", OffsetDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
model.addAttribute("timeInMilli", System.currentTimeMillis());
model.addAttribute("version", rqueueConfig.getLibVersion());
String xForwardedPrefix = request.getHeaders().getFirst("x-forwarded-prefix");
String prefix = "/";
if (!StringUtils.isEmpty(xForwardedPrefix)) {
if (xForwardedPrefix.endsWith("/")) {
xForwardedPrefix = xForwardedPrefix.substring(0, xForwardedPrefix.length() - 1);
}
prefix = xForwardedPrefix + prefix;
}
model.addAttribute("urlPrefix", prefix);
private String xForwardedPrefix(ServerHttpRequest request) {
return request.getHeaders().getFirst("x-forwarded-prefix");
}

@GetMapping
Expand All @@ -114,11 +67,7 @@ public Mono<View> index(Model model, ServerHttpRequest request, ServerHttpRespon
response.setStatusCode(HttpStatus.SERVICE_UNAVAILABLE);
return null;
}
addBasicDetails(model, request);
addNavData(model, null);
model.addAttribute("title", "Rqueue Dashboard");
model.addAttribute("aggregatorTypes", Arrays.asList(AggregationType.values()));
model.addAttribute("typeSelectors", ChartDataType.getActiveCharts());
rqueueViewControllerService.index(model, xForwardedPrefix(request));
return rqueueViewResolver.resolveViewName("index", Locale.ENGLISH);
}

Expand All @@ -129,15 +78,7 @@ public Mono<View> queues(Model model, ServerHttpRequest request, ServerHttpRespo
response.setStatusCode(HttpStatus.SERVICE_UNAVAILABLE);
return null;
}
addBasicDetails(model, request);
addNavData(model, NavTab.QUEUES);
model.addAttribute("title", "Queues");
List<QueueConfig> queueConfigs = rqueueSystemManagerService.getSortedQueueConfigs();
List<Entry<String, List<Entry<NavTab, RedisDataDetail>>>> queueNameConfigs =
new ArrayList<>(rqueueQDetailService.getQueueDataStructureDetails(queueConfigs).entrySet());
queueNameConfigs.sort(Entry.comparingByKey());
model.addAttribute("queues", queueConfigs);
model.addAttribute("queueConfigs", queueNameConfigs);
rqueueViewControllerService.queues(model, xForwardedPrefix(request));
return rqueueViewResolver.resolveViewName("queues", Locale.ENGLISH);
}

Expand All @@ -152,19 +93,7 @@ public Mono<View> queueDetail(
response.setStatusCode(HttpStatus.SERVICE_UNAVAILABLE);
return null;
}
QueueConfig queueConfig = rqueueSystemManagerService.getQueueConfig(queueName);
List<NavTab> queueActions = rqueueQDetailService.getNavTabs(queueConfig);
List<Entry<NavTab, RedisDataDetail>> queueRedisDataDetail =
rqueueQDetailService.getQueueDataStructureDetail(queueConfig);
addBasicDetails(model, request);
addNavData(model, NavTab.QUEUES);
model.addAttribute("title", "Queue: " + queueName);
model.addAttribute("queueName", queueName);
model.addAttribute("aggregatorTypes", Arrays.asList(AggregationType.values()));
model.addAttribute("typeSelectors", ChartDataType.getActiveCharts());
model.addAttribute("queueActions", queueActions);
model.addAttribute("queueRedisDataDetails", queueRedisDataDetail);
model.addAttribute("config", queueConfig);
rqueueViewControllerService.queueDetail(model, xForwardedPrefix(request), queueName);
return rqueueViewResolver.resolveViewName("queue_detail", Locale.ENGLISH);
}

Expand All @@ -175,12 +104,7 @@ public Mono<View> running(Model model, ServerHttpRequest request, ServerHttpResp
response.setStatusCode(HttpStatus.SERVICE_UNAVAILABLE);
return null;
}
addBasicDetails(model, request);
addNavData(model, NavTab.RUNNING);
model.addAttribute("title", "Running Tasks");
List<List<Object>> l = rqueueQDetailService.getRunningTasks();
model.addAttribute("tasks", l.subList(1, l.size()));
model.addAttribute("header", l.get(0));
rqueueViewControllerService.running(model, xForwardedPrefix(request));
return rqueueViewResolver.resolveViewName("running", Locale.ENGLISH);
}

Expand All @@ -191,12 +115,7 @@ public Mono<View> scheduled(Model model, ServerHttpRequest request, ServerHttpRe
response.setStatusCode(HttpStatus.SERVICE_UNAVAILABLE);
return null;
}
addBasicDetails(model, request);
addNavData(model, NavTab.SCHEDULED);
model.addAttribute("title", "Scheduled Tasks");
List<List<Object>> l = rqueueQDetailService.getScheduledTasks();
model.addAttribute("tasks", l.subList(1, l.size()));
model.addAttribute("header", l.get(0));
rqueueViewControllerService.scheduled(model, xForwardedPrefix(request));
return rqueueViewResolver.resolveViewName("running", Locale.ENGLISH);
}

Expand All @@ -207,13 +126,7 @@ public Mono<View> dead(Model model, ServerHttpRequest request, ServerHttpRespons
response.setStatusCode(HttpStatus.SERVICE_UNAVAILABLE);
return null;
}
addBasicDetails(model, request);
addNavData(model, NavTab.DEAD);
model.addAttribute("title", "Tasks moved to dead letter queue");
List<List<Object>> l = rqueueQDetailService.getDeadLetterTasks();

model.addAttribute("tasks", l.subList(1, l.size()));
model.addAttribute("header", l.get(0));
rqueueViewControllerService.dead(model, xForwardedPrefix(request));
return rqueueViewResolver.resolveViewName("running", Locale.ENGLISH);
}

Expand All @@ -224,12 +137,7 @@ public Mono<View> pending(Model model, ServerHttpRequest request, ServerHttpResp
response.setStatusCode(HttpStatus.SERVICE_UNAVAILABLE);
return null;
}
addBasicDetails(model, request);
addNavData(model, NavTab.PENDING);
model.addAttribute("title", "Tasks waiting for execution");
List<List<Object>> l = rqueueQDetailService.getWaitingTasks();
model.addAttribute("tasks", l.subList(1, l.size()));
model.addAttribute("header", l.get(0));
rqueueViewControllerService.pending(model, xForwardedPrefix(request));
return rqueueViewResolver.resolveViewName("running", Locale.ENGLISH);
}

Expand All @@ -240,10 +148,7 @@ public Mono<View> utility(Model model, ServerHttpRequest request, ServerHttpResp
response.setStatusCode(HttpStatus.SERVICE_UNAVAILABLE);
return null;
}
addBasicDetails(model, request);
addNavData(model, NavTab.UTILITY);
model.addAttribute("title", "Utility");
model.addAttribute("supportedDataType", DataType.getEnabledDataTypes());
rqueueViewControllerService.utility(model, xForwardedPrefix(request));
return rqueueViewResolver.resolveViewName("utility", Locale.ENGLISH);
}
}

0 comments on commit 707c2f5

Please sign in to comment.