package com.heaerie.server.auth201.Auth201Server.controller;
import com.heaerie.server.auth201.Auth201Server.dto.ClientRegistrationRequest;
import com.heaerie.server.auth201.Auth201Server.dto.ClientRegistrationResponse;
import com.heaerie.server.auth201.Auth201Server.service.ClientRegistrationService;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping("/oauth")
public class ClientRegistrationController {
private final ClientRegistrationService clientRegistrationService;
public ClientRegistrationController(ClientRegistrationService clientRegistrationService) {
this.clientRegistrationService = clientRegistrationService;
}
@GetMapping("/register")
public String showRegistrationForm() {
return "register-client";
}
@PostMapping("/register")
@ResponseBody
public ResponseEntity<?> registerClient(@RequestBody ClientRegistrationRequest request) {
try {
ClientRegistrationResponse response = clientRegistrationService.registerClient(request);
return ResponseEntity.ok(response);
} catch (IllegalArgumentException e) {
return ResponseEntity.badRequest().body(e.getMessage());
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body("Registration failed: " + e.getMessage());
}
}
}