postMoney.api.js 3.39 KB
Newer Older
Soo Hyun Kim's avatar
Soo Hyun Kim committed
1
import { DEBUG, enablePromise } from 'react-native-sqlite-storage';
Soo Hyun Kim's avatar
Soo Hyun Kim committed
2
import getDb from './moneyDB'
Soo Hyun Kim's avatar
Soo Hyun Kim committed
3
4
5
6
7
8
9
10
11

DEBUG(true);
enablePromise(true);

const insertMoney = async (moneyData) => {
    const db = await getDb();
    return new Promise((resolve, reject) => {
        db.transaction((tx) => {
            console.log("데이터 삽입하기");
12
            tx.executeSql('INSERT INTO Money (type_id, date, contents, price, assets_id, category_id, subcategory_id) VALUES (?,?,?,?,?,?,?);',
Soo Hyun Kim's avatar
Soo Hyun Kim committed
13
14
15
16
17
18
19
                moneyData,
                (error) => console.log(error))
            resolve('데이터 삽입 완료');
        })
    })
};

20
const selectCategories = async (type_id) => {
Soo Hyun Kim's avatar
Soo Hyun Kim committed
21
22
23
24
    const db = await getDb();
    return new Promise((resolve, reject) => {
        db.transaction(async (tx) => {
            console.log("카테고리 부르기");
25
            const [txn, results] = await tx.executeSql(`SELECT * FROM categories WHERE type_id=${type_id}`);
Soo Hyun Kim's avatar
Soo Hyun Kim committed
26
27
            console.log('item length', results.rows.length);
            const temp = [];
28
29
            temp.push({id: 1, value:'기타'});
            for (let i = 0; i < 3*(Math.ceil((results.rows.length+1)/3))-1; i++) {
30
31
32
33
34
35
36
                if (i<results.rows.length){
                    const tempId = results.rows.item(i).category_id;
                    const tempName = results.rows.item(i).category_name;
                    temp.push({ id: tempId, value: tempName });
                } else {
                    temp.push({ id: 0, value: '' });
                }
Soo Hyun Kim's avatar
Soo Hyun Kim committed
37
38
39
40
41
42
43
            }
            console.log(temp)
            resolve(temp);
        })
    })
}

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
const selectSubCategories = async () => {
    const db = await getDb();
    return new Promise((resolve, reject) => {
        db.transaction(async (tx) => {
            console.log("서브 카테고리 부르기");
            const [txn, results] = await tx.executeSql('SELECT * FROM subcategories');
            console.log('item length', results.rows.length);
            const temp = [];
            for (let i = 0; i < results.rows.length; i++) {
                const tempId = results.rows.item(i).subcategory_id;
                const tempName = results.rows.item(i).subcategory_name;
                const tempCatId = results.rows.item(i).category_id;
                temp.push({ id: tempId, value: tempName, foreign_id: tempCatId });
            }
            console.log(temp)
            resolve(temp);
        })
    })
}

Soo Hyun Kim's avatar
Soo Hyun Kim committed
64
65
66
67
68
69
70
71
const selectAssetsType = async () => {
    const db = await getDb();
    return new Promise((resolve, reject) => {
        db.transaction(async (tx) => {
            console.log("자산 유형 부르기");
            const [txn, results] = await tx.executeSql('SELECT * FROM assets_type');
            console.log('item length', results.rows.length);
            const temp = [];
72
            for (let i = 0; i < 3*(Math.ceil((results.rows.length)/3)); i++) {
73
74
75
76
77
78
79
                if (i<results.rows.length){
                    const tempId = results.rows.item(i).assets_id;
                    const tempName = results.rows.item(i).assets_name;
                    temp.push({ id: tempId, value: tempName });
                } else {
                    temp.push({ id: 0, value: '' });
                }
Soo Hyun Kim's avatar
Soo Hyun Kim committed
80
81
82
83
84
85
86
87
88
89
90
            }
            console.log(temp)
            resolve(temp);
        })
    })
}


const moneyApi = {
    insertMoney,
    selectCategories,
91
    selectSubCategories,
Soo Hyun Kim's avatar
Soo Hyun Kim committed
92
93
94
95
    selectAssetsType,
}

export default moneyApi;