sakthivikram/geo-location
0
1package com.georeport.controller;2 3import com.georeport.dto.ApiResponse;4import com.georeport.dto.DashboardStats;5import com.georeport.service.IssueService;6import org.springframework.beans.factory.annotation.Autowired;7import org.springframework.http.ResponseEntity;8import org.springframework.web.bind.annotation.*;9 10import java.util.HashMap;11import java.util.Map;12 13/**14 * REST Controller for public endpoints.15 * Provides limited public data for unauthenticated users.16 */17@RestController18@RequestMapping("/api/public")19@CrossOrigin(origins = "*")20public class PublicController {21 22 @Autowired23 private IssueService issueService;24 25 /**26 * Get public statistics for the landing page27 * GET /api/public/stats28 */29 @GetMapping("/stats")30 public ResponseEntity<ApiResponse<Map<String, Object>>> getPublicStats() {31 DashboardStats stats = issueService.getDashboardStats();32 33 // Return limited public data only34 Map<String, Object> publicStats = new HashMap<>();35 publicStats.put("totalIssues", stats.getTotalIssues());36 publicStats.put("resolvedCount", stats.getResolvedCount());37 publicStats.put("inProgressCount", stats.getInProgressCount());38 publicStats.put("submittedCount", stats.getSubmittedCount());39 40 return ResponseEntity.ok(ApiResponse.success(publicStats));41 }42}43 