summaryrefslogtreecommitdiff
path: root/app/api/nonsap-sync/cron/route.ts
blob: 809442800701b9afd5f606bb1c391e08af4552da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { NextRequest, NextResponse } from 'next/server';

export async function GET(request: NextRequest) {
  try {
    // 인증 확인 (선택적)
    const authToken = process.env.CRON_AUTH_TOKEN;
    if (authToken) {
      const providedToken = new URL(request.url).searchParams.get('token');
      if (providedToken !== authToken) {
        return NextResponse.json({ error: 'Unauthorized' }, { status: 401 });
      }
    }

    // 동적 import로 cron 스케줄러 호출
    const { triggerEnhancedSync } = await import('../../../../lib/nonsap-sync/enhanced-sync-service');
    
    // 백그라운드에서 동기화 실행
    triggerEnhancedSync().catch(error => {
      console.error('Cron sync failed:', error);
    });
    
    return NextResponse.json({
      success: true,
      message: 'NONSAP sync triggered via cron endpoint',
      timestamp: new Date().toISOString()
    });
  } catch (error) {
    console.error('Cron endpoint error:', error);
    
    return NextResponse.json({
      success: false,
      error: 'Failed to trigger sync',
      timestamp: new Date().toISOString()
    }, { status: 500 });
  }
}

export async function POST() {
  // POST 요청도 동일하게 처리
  return GET();
}