Init commit!

This commit is contained in:
Jennie Robinson Faber 2025-08-22 18:36:16 +01:00
commit 086d682592
34 changed files with 19249 additions and 0 deletions

View file

@ -0,0 +1,70 @@
export default defineEventHandler(async (event) => {
const profile = getRouterParam(event, 'profile') // 'jennie' or 'henry'
// Get API token from environment variables
const apiToken = profile === 'jennie'
? process.env.WISE_API_KEY_JENNIE
: process.env.WISE_API_KEY_HENRY
if (!apiToken) {
throw createError({
statusCode: 400,
statusMessage: `Wise API token not configured for ${profile}`
})
}
try {
// First, get the profile ID
const profileResponse = await fetch('https://api.wise.com/v1/profiles', {
headers: {
'Authorization': `Bearer ${apiToken}`,
'Content-Type': 'application/json'
}
})
if (!profileResponse.ok) {
throw new Error(`Profile fetch failed: ${profileResponse.statusText}`)
}
const profiles = await profileResponse.json()
const personalProfile = profiles.find(p => p.type === 'personal')
if (!personalProfile) {
throw new Error('Personal profile not found')
}
// Get balances for the profile
const balancesResponse = await fetch(`https://api.wise.com/v4/profiles/${personalProfile.id}/balances?types=STANDARD`, {
headers: {
'Authorization': `Bearer ${apiToken}`,
'Content-Type': 'application/json'
}
})
if (!balancesResponse.ok) {
throw new Error(`Balances fetch failed: ${balancesResponse.statusText}`)
}
const balances = await balancesResponse.json()
// Filter and format the balances - include all currencies
const formattedBalances = balances
.filter(balance => balance.amount) // Only filter out balances without amount data
.map(balance => ({
currency: balance.amount.currency,
value: {
value: balance.amount.value
}
}))
return formattedBalances
} catch (error) {
console.error(`Wise API error for ${profile}:`, error)
throw createError({
statusCode: 500,
statusMessage: `Failed to fetch Wise balances: ${error.message}`
})
}
})