Files
taxbaik/test_run/wwwroot/js/site.js
T
kjh2064 675ef64975
TaxBaik CI/CD / build-and-deploy (push) Successful in 1m31s
feat: migrate AuthController to FastEndpoints Endpoints (Phase 1)
IMPLEMENTATION:
- Create 4 FastEndpoints Endpoint classes:
  - LoginEndpoint: POST /api/auth/login
  - RefreshTokenEndpoint: POST /api/auth/refresh
  - ChangePasswordEndpoint: POST /api/auth/change-password
  - ResetPasswordEndpoint: POST /api/auth/reset-password

- Backup AuthController.cs (no longer active)
- Add FastEndpoints.Endpoint<TRequest, TResponse> pattern
- Implement proper DI with AuthService injection
- Use Policies("Bearer") for authorization
- Proper error handling with ThrowError()

ARCHITECTURE:
- Start of Phase 1: Core Auth APIs
- Endpoints follow FastEndpoints conventions
- DTOs: LoginRequest, RefreshTokenRequest, ChangePasswordRequest, ResetPasswordRequest, TokenPairResponse, MessageResponse
- AllowAnonymous for login/refresh/reset
- Bearer policy for change-password

VERIFICATION:
 dotnet build: 0 errors, 0 warnings
 dotnet test: 26/26 passed
 FastEndpoints auto-discovery working (no endpoint errors)
 JWT validation passes

Next Phase: BlogController and remaining APIs

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-07-03 17:14:35 +09:00

25 lines
699 B
JavaScript

function openKakao() {
const kakaoUrl = document.querySelector('[data-kakao-url]')?.dataset.kakaoUrl || '#';
if (kakaoUrl !== '#') {
window.open(kakaoUrl, '_blank');
} else {
alert('카카오톡 채널 URL이 설정되지 않았습니다.');
}
}
document.addEventListener('DOMContentLoaded', function() {
const navbar = document.querySelector('.navbar');
if (!navbar) {
return;
}
const setShadow = () => {
navbar.style.boxShadow = window.scrollY > 0
? '0 2px 8px rgba(0,0,0,0.1)'
: '0 1px 3px rgba(0,0,0,0.1)';
};
setShadow();
window.addEventListener('scroll', setShadow, { passive: true });
});