1
0
Fork 0
mirror of synced 2024-09-03 19:21:11 +12:00
budibase/packages/builder/src/database/ModelDataTable/api.js

42 lines
1.6 KiB
JavaScript
Raw Normal View History

2020-03-13 03:23:29 +13:00
import api from "../../builderStore/api";
2020-03-22 09:39:37 +13:00
import { getNewRecord, getNewInstance } from "../../common/core"
export async function createDatabase(appname, instanceName) {
const CREATE_DATABASE_URL = `/_builder/instance/_master/0/api/record`
const database = getNewInstance(appname, instanceName);
const response = await api.post(CREATE_DATABASE_URL, database);
return await response.json()
}
2020-03-13 03:23:29 +13:00
export async function deleteRecord(record, { appname, instanceId }) {
const DELETE_RECORDS_URL = `/_builder/instance/${appname}/${instanceId}/api/record${record.key}`
const response = await api.delete(DELETE_RECORDS_URL);
return response;
2020-03-13 03:23:29 +13:00
}
export async function saveRecord(record, { appname, instanceId }) {
let recordBase = { ...record }
// brand new record
if (record.collectionName) {
const collectionKey = `/${record.collectionName}`
recordBase = getNewRecord(recordBase, collectionKey)
// overwrite the new record template values
for (let key in recordBase) {
if (record[key]) recordBase[key] = record[key]
}
}
const SAVE_RECORDS_URL = `/_builder/instance/${appname}/${instanceId}/api/record/`
const response = await api.post(SAVE_RECORDS_URL, recordBase)
return await response.json()
2020-03-13 03:23:29 +13:00
}
export async function fetchDataForView(viewName, { appname, instanceId }) {
const FETCH_RECORDS_URL = `/_builder/instance/${appname}/${instanceId}/api/listRecords/${viewName}`;
2020-03-13 03:23:29 +13:00
// TODO: Error handling
const response = await api.get(FETCH_RECORDS_URL);
return await response.json();
2020-03-13 03:23:29 +13:00
}