- Add MyBatis Spring Boot Starter with XML mappers and domain classes - Create 9 mapper interfaces + XML: Restaurant, Video, Channel, Review, User, Stats, DaemonConfig, Search, Vector - Create 10 domain classes with Lombok: Restaurant, VideoSummary, VideoDetail, VideoRestaurantLink, Channel, Review, UserInfo, DaemonConfig, SiteVisitStats, VectorSearchResult - Create 7 new service classes: RestaurantService, VideoService, ChannelService, ReviewService, UserService, StatsService, DaemonConfigService - Refactor all controllers to be thin (HTTP + auth only), delegating business logic to services - Refactor SearchService, PipelineService, DaemonScheduler, AuthService, YouTubeService to use mappers/services instead of JDBC/repositories - Add Jackson SNAKE_CASE property naming for consistent API responses - Add ClobTypeHandler for Oracle CLOB→String in MyBatis - Add IdGenerator utility for centralized UUID generation - Delete old repository/ package (6 files), JdbcConfig, LowerCaseKeyAdvice - VectorService retains JDBC for Oracle VECTOR type support Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
32 lines
811 B
Java
32 lines
811 B
Java
package com.tasteby.controller;
|
|
|
|
import com.tasteby.domain.UserInfo;
|
|
import com.tasteby.security.AuthUtil;
|
|
import com.tasteby.service.AuthService;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import java.util.Map;
|
|
|
|
@RestController
|
|
@RequestMapping("/api/auth")
|
|
public class AuthController {
|
|
|
|
private final AuthService authService;
|
|
|
|
public AuthController(AuthService authService) {
|
|
this.authService = authService;
|
|
}
|
|
|
|
@PostMapping("/google")
|
|
public Map<String, Object> loginGoogle(@RequestBody Map<String, String> body) {
|
|
String idToken = body.get("id_token");
|
|
return authService.loginGoogle(idToken);
|
|
}
|
|
|
|
@GetMapping("/me")
|
|
public UserInfo me() {
|
|
String userId = AuthUtil.getUserId();
|
|
return authService.getCurrentUser(userId);
|
|
}
|
|
}
|