Init commit!
This commit is contained in:
commit
086d682592
34 changed files with 19249 additions and 0 deletions
69
server/api/migrate/localStorage.post.js
Normal file
69
server/api/migrate/localStorage.post.js
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
import { getCollection } from '../../utils/db.js'
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
try {
|
||||
const data = await readBody(event)
|
||||
|
||||
// Migrate transactions
|
||||
if (data.transactions && data.transactions.length > 0) {
|
||||
const transactionsCollection = await getCollection('transactions')
|
||||
|
||||
// Clear existing transactions
|
||||
await transactionsCollection.deleteMany({})
|
||||
|
||||
// Convert and insert transactions
|
||||
const mongoTransactions = data.transactions.map(transaction => ({
|
||||
...transaction,
|
||||
_id: transaction.id,
|
||||
id: undefined,
|
||||
date: new Date(transaction.date),
|
||||
endDate: transaction.endDate ? new Date(transaction.endDate) : null,
|
||||
createdAt: new Date(),
|
||||
updatedAt: new Date()
|
||||
}))
|
||||
|
||||
await transactionsCollection.insertMany(mongoTransactions)
|
||||
}
|
||||
|
||||
// Migrate balance
|
||||
if (data.balance !== undefined) {
|
||||
const balancesCollection = await getCollection('balances')
|
||||
|
||||
const balanceData = {
|
||||
type: 'current',
|
||||
currentBalance: data.balance,
|
||||
accountBalances: data.accountBalances || {
|
||||
manual: {
|
||||
rbc_cad: 0,
|
||||
td_cad: 0,
|
||||
millennium_eur: 0
|
||||
},
|
||||
wise: {
|
||||
jennie: [],
|
||||
henry: []
|
||||
}
|
||||
},
|
||||
updatedAt: new Date()
|
||||
}
|
||||
|
||||
await balancesCollection.replaceOne(
|
||||
{ type: 'current' },
|
||||
balanceData,
|
||||
{ upsert: true }
|
||||
)
|
||||
}
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: 'Data migrated successfully',
|
||||
transactionsCount: data.transactions?.length || 0,
|
||||
balance: data.balance || 0
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error migrating localStorage data:', error)
|
||||
throw createError({
|
||||
statusCode: 500,
|
||||
statusMessage: 'Failed to migrate data'
|
||||
})
|
||||
}
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue