77 lines
No EOL
2.3 KiB
JavaScript
77 lines
No EOL
2.3 KiB
JavaScript
// Test minimal subscription creation to understand required fields
|
|
const HELCIM_API_BASE = 'https://api.helcim.com/v2'
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
try {
|
|
const config = useRuntimeConfig(event)
|
|
const helcimToken = config.public.helcimToken || process.env.NUXT_PUBLIC_HELCIM_TOKEN
|
|
|
|
// Generate a 25-character idempotency key
|
|
const idempotencyKey = `${Date.now()}-${Math.random().toString(36).substring(2, 15)}`.substring(0, 25)
|
|
|
|
// Test with minimal fields first
|
|
const testRequest1 = {
|
|
customerCode: 'CST1020', // Use a recent customer code
|
|
planId: 20162
|
|
}
|
|
|
|
console.log('Testing subscription with minimal fields:', testRequest1)
|
|
|
|
try {
|
|
const response1 = await fetch(`${HELCIM_API_BASE}/subscriptions`, {
|
|
method: 'POST',
|
|
headers: {
|
|
'accept': 'application/json',
|
|
'content-type': 'application/json',
|
|
'api-token': helcimToken,
|
|
'idempotency-key': idempotencyKey + 'a'
|
|
},
|
|
body: JSON.stringify(testRequest1)
|
|
})
|
|
|
|
const result1 = await response1.text()
|
|
console.log('Test 1 - Status:', response1.status)
|
|
console.log('Test 1 - Response:', result1)
|
|
|
|
if (!response1.ok) {
|
|
// Try with paymentPlanId instead
|
|
const testRequest2 = {
|
|
customerCode: 'CST1020',
|
|
paymentPlanId: 20162
|
|
}
|
|
|
|
console.log('Testing subscription with paymentPlanId:', testRequest2)
|
|
|
|
const response2 = await fetch(`${HELCIM_API_BASE}/subscriptions`, {
|
|
method: 'POST',
|
|
headers: {
|
|
'accept': 'application/json',
|
|
'content-type': 'application/json',
|
|
'api-token': helcimToken,
|
|
'idempotency-key': idempotencyKey + 'b'
|
|
},
|
|
body: JSON.stringify(testRequest2)
|
|
})
|
|
|
|
const result2 = await response2.text()
|
|
console.log('Test 2 - Status:', response2.status)
|
|
console.log('Test 2 - Response:', result2)
|
|
}
|
|
|
|
} catch (error) {
|
|
console.error('Test error:', error)
|
|
}
|
|
|
|
return {
|
|
success: true,
|
|
message: 'Check server logs for test results'
|
|
}
|
|
|
|
} catch (error) {
|
|
console.error('Error in test endpoint:', error)
|
|
throw createError({
|
|
statusCode: 500,
|
|
statusMessage: error.message
|
|
})
|
|
}
|
|
}) |