sakthivikram/geo-location
0
1package com.georeport.controller;2 3import com.georeport.dto.OtpRequest;4import com.georeport.dto.OtpResponse;5import com.georeport.dto.OtpVerificationRequest;6import com.georeport.service.OtpService;7import jakarta.validation.Valid;8import org.springframework.beans.factory.annotation.Autowired;9import org.springframework.http.ResponseEntity;10import org.springframework.web.bind.annotation.*;11 12@RestController13@RequestMapping("/api/otp")14@CrossOrigin(origins = "*")15public class OtpController {16 17 @Autowired18 private OtpService otpService;19 20 @PostMapping("/send")21 public ResponseEntity<OtpResponse> sendOtp(@Valid @RequestBody OtpRequest request) {22 if (request.getEmail() == null || request.getEmail().trim().isEmpty()) {23 return ResponseEntity.badRequest().body(OtpResponse.builder()24 .success(false)25 .message("Email is required for OTP")26 .build());27 }28 otpService.generateOtp(request.getPhoneNumber(), request.getEmail());29 return ResponseEntity.ok(OtpResponse.builder()30 .success(true)31 .message("OTP sent successfully to email")32 .build());33 }34 35 @PostMapping("/verify")36 public ResponseEntity<OtpResponse> verifyOtp(@Valid @RequestBody OtpVerificationRequest request) {37 boolean isValid = otpService.verifyOtp(request.getPhoneNumber(), request.getOtp());38 39 if (isValid) {40 return ResponseEntity.ok(OtpResponse.builder()41 .success(true)42 .message("OTP verified successfully")43 .build());44 } else {45 return ResponseEntity.badRequest().body(OtpResponse.builder()46 .success(false)47 .message("Invalid or expired OTP")48 .build());49 }50 }51}52 