sakthivikram/geo-location
0
1package com.georeport.controller;2 3import com.georeport.dto.*;4import com.georeport.service.AuthService;5import jakarta.validation.Valid;6import org.springframework.beans.factory.annotation.Autowired;7import org.springframework.http.ResponseEntity;8import org.springframework.web.bind.annotation.*;9 10/**11 * REST Controller for authentication endpoints.12 * Handles user registration and login.13 */14@RestController15@RequestMapping("/api/auth")16@CrossOrigin(origins = "*")17public class AuthController {18 19 @Autowired20 private AuthService authService;21 22 /**23 * Register a new citizen user24 * POST /api/auth/register25 */26 @PostMapping("/register")27 public ResponseEntity<ApiResponse<AuthResponse>> register(@Valid @RequestBody RegisterRequest request) {28 AuthResponse response = authService.register(request);29 return ResponseEntity.ok(ApiResponse.success("Registration successful", response));30 }31 32 /**33 * Login user and return JWT token34 * POST /api/auth/login35 */36 @PostMapping("/login")37 public ResponseEntity<ApiResponse<AuthResponse>> login(@Valid @RequestBody LoginRequest request) {38 AuthResponse response = authService.login(request);39 return ResponseEntity.ok(ApiResponse.success("Login successful", response));40 }41 42 /**43 * Login user via Google Auth and return JWT token44 * POST /api/auth/google-login45 */46 @PostMapping("/google-login")47 public ResponseEntity<ApiResponse<AuthResponse>> googleLogin(@Valid @RequestBody GoogleLoginRequest request) {48 AuthResponse response = authService.googleLogin(request);49 return ResponseEntity.ok(ApiResponse.success("Google Login successful", response));50 }51 52 /**53 * Verify JWT token validity54 * GET /api/auth/verify55 */56 @GetMapping("/verify")57 public ResponseEntity<ApiResponse<String>> verifyToken() {58 return ResponseEntity.ok(ApiResponse.success("Token is valid", "authenticated"));59 }60}61 