Skip to content

Commit 4fb0945

Browse files
committed
Refactor WAN implementation to streamline port retrieval; update routes and requests endpoints to return structured data including port information
1 parent 23c3561 commit 4fb0945

5 files changed

Lines changed: 88 additions & 102 deletions

File tree

src/main/java/fr/sandro642/github/ConnectLib.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,6 @@ public void webServices(int port, String nameDashboard) {
158158
/**
159159
* Implement WAN connection to retrieve the port from the server.
160160
* @param urlServ the server URL
161-
* @param codeWan the WAN code
162-
* @return the port as a String
163161
*/
164162
public void wanImplement(String urlServ) {
165163
try {

src/main/java/fr/sandro642/github/spring/controller/DataController.java

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import fr.sandro642.github.ConnectLib;
44
import fr.sandro642.github.spring.dto.Request;
5-
import fr.sandro642.github.spring.dto.RouteInfo;
65
import org.springframework.web.bind.annotation.*;
76

87
import java.util.*;
@@ -64,29 +63,41 @@ public Map<String, Object> getStatus() {
6463
return status;
6564
}
6665

67-
/**
68-
* Endpoint to get the available routes from ConnectLib.
69-
* @return a list of RouteInfo objects representing the routes
70-
*/
7166
@GetMapping("/routes")
72-
public List<RouteInfo> getRoutes() {
67+
public Map<String, Object> getRoutes() {
7368
Map<String, String> map = connectLib.getRoutesMap();
74-
List<RouteInfo> result = new ArrayList<>();
69+
Map<String, Object> result = new HashMap<>();
70+
71+
// portInfo
72+
result.put("portInfo", connectLib.StoreAndRetrieve().get(connectLib.StoreAndRetrieve().DYNAMIC_PORT).toString());
73+
74+
List<Map<String, String>> routes = new ArrayList<>();
7575
if (map != null) {
7676
for (Map.Entry<String, String> e : map.entrySet()) {
77-
result.add(new RouteInfo(connectLib.StoreAndRetrieve().get(connectLib.StoreAndRetrieve().DYNAMIC_PORT).toString(), e.getKey(), e.getValue()));
77+
Map<String, String> route = new HashMap<>();
78+
route.put("name", e.getKey());
79+
route.put("url", e.getValue());
80+
routes.add(route);
7881
}
7982
}
83+
result.put("routes", routes);
8084
return result;
8185
}
8286

87+
8388
/**
8489
* Endpoint to get all requests.
8590
* @return a list of Request objects
8691
*/
8792
@GetMapping("/requests")
88-
public List<Request> getRequests() {
89-
List<Request> result = new ArrayList<>(requestsMap.values());
93+
public Map<String, Object> getRequests() {
94+
Map<String, Object> result = new HashMap<>();
95+
96+
result.put("portInfo", connectLib.StoreAndRetrieve().get(connectLib.StoreAndRetrieve().DYNAMIC_PORT).toString());
97+
98+
List<Request> requests = new ArrayList<>(requestsMap.values());
99+
result.put("requests", requests);
100+
90101
return result;
91102
}
92103

src/main/java/fr/sandro642/github/spring/dto/RouteInfo.java

Lines changed: 0 additions & 63 deletions
This file was deleted.

src/main/resources/static/index.html

Lines changed: 63 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,7 @@ <h2 class="section-title">Requests</h2>
505505
}
506506
} catch (error) {
507507
console.error('Error loading config:', error);
508+
document.getElementById('navbar-title').textContent = 'ConnectLib Dashboard';
508509
}
509510
}
510511

@@ -522,43 +523,75 @@ <h2 class="section-title">Requests</h2>
522523
statusBadge.className = 'status-badge error';
523524
}
524525

525-
document.getElementById('resource-type').textContent = data.resourceType;
526+
document.getElementById('resource-type').textContent = data.resourceType || 'N/A';
526527
} catch (error) {
527528
console.error('Error loading status:', error);
529+
document.getElementById('connectlib-status').textContent = 'Error';
530+
document.getElementById('connectlib-status').className = 'status-badge error';
531+
}
532+
}
533+
534+
async function loadPortInfo() {
535+
try {
536+
const response = await fetch(`${API_BASE_URL}/requests`);
537+
const data = await response.json();
538+
539+
const portElement = document.getElementById('port-info');
540+
if (data.portInfo) {
541+
portElement.textContent = data.portInfo;
542+
} else {
543+
portElement.textContent = 'N/A';
544+
}
545+
} catch (error) {
546+
console.error('Error loading port info:', error);
547+
document.getElementById('port-info').textContent = 'N/A';
528548
}
529549
}
530550

531551
async function loadRoutes() {
532552
try {
533553
const response = await fetch(`${API_BASE_URL}/routes`);
534-
const routes = await response.json();
554+
const data = await response.json();
535555

536556
const tbody = document.getElementById('routes-tbody');
537557
tbody.innerHTML = '';
538558

559+
// Handle both array and object with routes property
560+
const routes = Array.isArray(data) ? data : (data.routes || []);
561+
562+
if (routes.length === 0) {
563+
tbody.innerHTML = '<tr><td colspan="3" style="text-align: center; color: #94a3b8;">No routes available</td></tr>';
564+
return;
565+
}
566+
539567
routes.forEach((route, index) => {
540568
const row = document.createElement('tr');
541569

542570
row.innerHTML = `
543-
<td>${index + 1}</td>
544-
<td><span class="route-badge">${route.name}</span></td>
545-
<td><span class="route-badge">${route.url}</span></td>
546-
`;
571+
<td>${index + 1}</td>
572+
<td><span class="route-badge">${route.name}</span></td>
573+
<td><span class="route-badge">${route.url}</span></td>
574+
`;
547575
tbody.appendChild(row);
548576
});
549577
} catch (error) {
550578
console.error('Error loading routes:', error);
579+
const tbody = document.getElementById('routes-tbody');
580+
tbody.innerHTML = '<tr><td colspan="3" style="text-align: center; color: #ef4444;">Error loading routes</td></tr>';
551581
}
552582
}
553583

554584
async function loadRequests() {
555585
try {
556586
const response = await fetch(`${API_BASE_URL}/requests`);
557-
const requests = await response.json();
587+
const data = await response.json();
558588

559589
const container = document.getElementById('requests-container');
560590
container.innerHTML = '';
561591

592+
// Handle both array and object with requests property
593+
const requests = Array.isArray(data) ? data : (data.requests || []);
594+
562595
if (requests.length === 0) {
563596
container.innerHTML = '<p style="text-align: center; color: #94a3b8;">No requests</p>';
564597
return;
@@ -574,30 +607,32 @@ <h2 class="section-title">Requests</h2>
574607
request.status === 'success' ? 'Success' : 'Failed';
575608

576609
requestItem.innerHTML = `
577-
<div class="request-flow">
578-
<div class="request-node">
579-
<div class="node-dot ${statusClass}"></div>
580-
<div class="node-label">Route</div>
581-
<div class="node-value">${request.route}</div>
582-
</div>
583-
<div class="connector"></div>
584-
<div class="request-node">
585-
<div class="node-dot ${statusClass}"></div>
586-
<div class="node-label">URL Branch</div>
587-
<div class="node-value">${request.branch}</div>
588-
</div>
589-
<div class="connector"></div>
590-
<div class="request-node">
591-
<div class="node-dot ${statusClass}"></div>
592-
<div class="node-label">Status</div>
593-
<div class="node-value">${statusText}</div>
594-
</div>
610+
<div class="request-flow">
611+
<div class="request-node">
612+
<div class="node-dot ${statusClass}"></div>
613+
<div class="node-label">Route</div>
614+
<div class="node-value">${request.route}</div>
615+
</div>
616+
<div class="connector"></div>
617+
<div class="request-node">
618+
<div class="node-dot ${statusClass}"></div>
619+
<div class="node-label">URL Branch</div>
620+
<div class="node-value">${request.branch}</div>
595621
</div>
596-
`;
622+
<div class="connector"></div>
623+
<div class="request-node">
624+
<div class="node-dot ${statusClass}"></div>
625+
<div class="node-label">Status</div>
626+
<div class="node-value">${statusText}</div>
627+
</div>
628+
</div>
629+
`;
597630
container.appendChild(requestItem);
598631
});
599632
} catch (error) {
600633
console.error('Error loading requests:', error);
634+
const container = document.getElementById('requests-container');
635+
container.innerHTML = '<p style="text-align: center; color: #ef4444;">Error loading requests</p>';
601636
}
602637
}
603638

@@ -617,10 +652,12 @@ <h2 class="section-title">Requests</h2>
617652
loadRoutes();
618653
loadRequests();
619654
loadConfig();
655+
loadPortInfo();
620656

621657
setInterval(() => {
622658
loadStatus();
623659
loadRoutes();
660+
loadPortInfo();
624661
}, 5000);
625662
});
626663
</script>

src/test/java/fr/sandro642/github/test/MainTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,8 @@ public void testLangType() {
162162
public void testSpecData() {
163163
try {
164164

165-
connectLib.init(ResourceType.MAIN_RESOURCES, LangType.ENGLISH, TestRoutes.class);
165+
connectLib.init(ResourceType.MAIN_RESOURCES, LangType.ENGLISH, TestRoutes.class)
166+
.wanImplement("http://localhost:8080");
166167

167168
CompletableFuture<ApiFactory> apiFactoryCompletableFuture = connectLib.JobGetInfos()
168169
.getRoutes(TestCustomVersion.V1_API, MethodType.GET, TestRoutes.REQUEST_TOKEN)
@@ -177,6 +178,8 @@ public void testSpecData() {
177178

178179
System.out.println(apiFactory.getSpecData("data", "accessToken"));
179180

181+
Thread.sleep(20000);
182+
180183
} catch (Exception e) {
181184
e.printStackTrace();
182185
}

0 commit comments

Comments
 (0)