aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/routes/methods.remote.ts
blob: d6fd90834331383ad904a8a6df6e2346286e5fb9 (plain) (blame)
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
import { db } from "$lib/server/db";
import { SyncSessionTable } from "$lib/server/db/schema";
import { command, query } from "$app/server";
import sb1 from "$lib/server/sb1";
import actual from "$lib/server/actual";
import { ImportForm } from "$lib/shared";

const init_auth_session = command(async () => {
    return await sb1.auth.init_auth_session()
})

const clear_auth_session = query(async () => {
    await db.delete(SyncSessionTable)
})

const do_import = command(ImportForm, async (form) => {
    for (const mapping of form.mappings) {
        const transactions = await sb1.data.get_transactions(mapping.sb1Id)
        if (!transactions?.length) continue
        console.log(await actual.budget.import_transactions(mapping.actualId, transactions, form.dryRun))
    }
})

const init_sb1 = command(async () => {
    return await sb1.init()
})

const init_actual = command(async () => {
    return await actual.init()
})

export {
    init_auth_session,
    do_import,
    init_actual,
    init_sb1,
    clear_auth_session
}