From d64db4d3167c564bab3cf9a38297a99128b1be4a Mon Sep 17 00:00:00 2001 From: Jakob Stornig Date: Wed, 20 Dec 2023 22:52:57 +0100 Subject: [PATCH] dev: populate db with random data --- services/database.ts | 50 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/services/database.ts b/services/database.ts index 386ee09..ec1528b 100644 --- a/services/database.ts +++ b/services/database.ts @@ -4,6 +4,7 @@ import * as SQLite from "expo-sqlite"; import uuid from "react-native-uuid"; import { Query } from "expo-sqlite"; +import { SimpleDate } from "../util/SimpleDate"; const db = SQLite.openDatabase("interactive_systeme.db"); @@ -87,6 +88,9 @@ export const deleteExpense = async (guid: string) => { export const executeQuery = async (query: string) => { const sqliteQuary: Query[] = [{sql: query, args: []}]; const result = await db.execAsync(sqliteQuary, true); + if("error" in result[0]){ + throw result[0].error + } return result; } @@ -101,6 +105,18 @@ export const deleteExpenses = async () => { } } +export const deleteCategories = async () => { + try { + await db.transactionAsync(async (tx: SQLite.SQLTransactionAsync) => { + await tx.executeSqlAsync("DELETE FROM category;"); + }); + console.log("deleteCategories") + } catch(error) { + console.log("Error deleting category: ", error); + throw error; + } +} + export const deleteDatabase = () => { closeDatabase().then(() => { try { @@ -122,3 +138,37 @@ const closeDatabase = async () => { throw error; } } + + +export const DEV_populateDatabase = async () => { + try { + await deleteCategories(); + await deleteExpenses() + + const colors = ["red", "blue", "green", "purple", "yellow"] + + for(let i=0; i < 5; i++){ + let random = Math.floor(Math.random() * colors.length); + await addCategory(`Category ${i}`, colors[random], "budget") + } + const result = await executeQuery("SELECT * from category") + let categories: {[column: string]: any}[]; + if("rows" in result[0]){ + categories = result[0]["rows"] + }else{ + throw new Error("WHATHEFUCK") + } + console.log(categories) + + let date = new Date() + for(let i = 0; i < 15; i++){ + let random = Math.floor(Math.random() * categories.length); + let randomDay = Math.floor(Math.random() * 20) + date.setDate(randomDay) + let string = new SimpleDate(date).toISOString() + await addExpense(`Expense ${i}`, categories[random].guid, string, 15) + } + } catch(e){ + console.error(e) + } +}