2022-07-03 01:50:01 +00:00
|
|
|
import {enablePromise, openDatabase} from 'react-native-sqlite-storage';
|
|
|
|
|
|
|
|
enablePromise(true);
|
|
|
|
export const getDb = () => openDatabase({name: 'massive.db'});
|
|
|
|
|
2022-07-06 05:40:53 +00:00
|
|
|
const createSets = `
|
2022-07-03 01:50:01 +00:00
|
|
|
CREATE TABLE IF NOT EXISTS sets (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
name TEXT NOT NULL,
|
|
|
|
reps INTEGER NOT NULL,
|
|
|
|
weight INTEGER NOT NULL,
|
|
|
|
created TEXT NOT NULL,
|
|
|
|
unit TEXT DEFAULT 'kg'
|
|
|
|
);
|
|
|
|
`;
|
|
|
|
|
2022-07-06 05:40:53 +00:00
|
|
|
const createPlans = `
|
|
|
|
CREATE TABLE IF NOT EXISTS plans (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
days TEXT NOT NULL,
|
|
|
|
workouts TEXT NOT NULL
|
|
|
|
);
|
|
|
|
`;
|
|
|
|
|
|
|
|
export const setupSchema = () =>
|
|
|
|
getDb().then(db => {
|
|
|
|
db.executeSql(createSets);
|
|
|
|
db.executeSql(createPlans);
|
|
|
|
});
|
|
|
|
|
|
|
|
const selectPlans = `
|
|
|
|
SELECT * from plans
|
|
|
|
WHERE days LIKE ? OR workouts LIKE ?
|
|
|
|
`;
|
|
|
|
export const getPlans = ({search}: {search: string}) =>
|
|
|
|
getDb().then(db =>
|
|
|
|
db.executeSql(selectPlans, [`%${search}%`, `%${search}%`]),
|
|
|
|
);
|
2022-07-06 04:27:36 +00:00
|
|
|
|
2022-07-06 05:40:53 +00:00
|
|
|
const selectSets = `
|
2022-07-06 04:27:36 +00:00
|
|
|
SELECT * from sets
|
|
|
|
WHERE name LIKE ?
|
|
|
|
ORDER BY created DESC
|
|
|
|
LIMIT ? OFFSET ?
|
|
|
|
`;
|
|
|
|
|
|
|
|
export const getSets = ({
|
|
|
|
search,
|
|
|
|
limit,
|
|
|
|
offset,
|
|
|
|
}: {
|
|
|
|
search: string;
|
|
|
|
limit: number;
|
|
|
|
offset: number;
|
2022-07-06 05:40:53 +00:00
|
|
|
}) =>
|
|
|
|
getDb().then(db => db.executeSql(selectSets, [`%${search}%`, limit, offset]));
|