dev: populate db with random data
This commit is contained in:
parent
bc7a08bcea
commit
d64db4d316
1 changed files with 50 additions and 0 deletions
|
|
@ -4,6 +4,7 @@ import * as SQLite from "expo-sqlite";
|
||||||
import uuid from "react-native-uuid";
|
import uuid from "react-native-uuid";
|
||||||
|
|
||||||
import { Query } from "expo-sqlite";
|
import { Query } from "expo-sqlite";
|
||||||
|
import { SimpleDate } from "../util/SimpleDate";
|
||||||
|
|
||||||
const db = SQLite.openDatabase("interactive_systeme.db");
|
const db = SQLite.openDatabase("interactive_systeme.db");
|
||||||
|
|
||||||
|
|
@ -87,6 +88,9 @@ export const deleteExpense = async (guid: string) => {
|
||||||
export const executeQuery = async (query: string) => {
|
export const executeQuery = async (query: string) => {
|
||||||
const sqliteQuary: Query[] = [{sql: query, args: []}];
|
const sqliteQuary: Query[] = [{sql: query, args: []}];
|
||||||
const result = await db.execAsync(sqliteQuary, true);
|
const result = await db.execAsync(sqliteQuary, true);
|
||||||
|
if("error" in result[0]){
|
||||||
|
throw result[0].error
|
||||||
|
}
|
||||||
return result;
|
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 = () => {
|
export const deleteDatabase = () => {
|
||||||
closeDatabase().then(() => {
|
closeDatabase().then(() => {
|
||||||
try {
|
try {
|
||||||
|
|
@ -122,3 +138,37 @@ const closeDatabase = async () => {
|
||||||
throw error;
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Reference in a new issue