budibase/examples/nextjs-api-sales/pages/api/sales.ts

46 lines
1.1 KiB
TypeScript
Raw Normal View History

import { getApp, findTable, makeCall } from "../../utilities"
2022-03-08 21:17:07 +01:00
async function getSales(req: any) {
2022-03-08 21:17:07 +01:00
const { page } = req.query
const { _id: appId } = await getApp()
2022-03-08 21:17:07 +01:00
const table = await findTable(appId, "sales")
return await makeCall("post", `tables/${table._id}/rows/search`, {
appId,
body: {
limit: 10,
sort: {
type: "string",
order: "descending",
2022-03-08 21:17:07 +01:00
column: "sale_id",
},
paginate: true,
bookmark: parseInt(page),
}
})
}
async function saveSale(req: any) {
const { _id: appId } = await getApp()
2022-03-08 21:17:07 +01:00
const table = await findTable(appId, "sales")
return await makeCall("post", `tables/${table._id}/rows`, {
body: req.body,
appId,
})
}
export default async function handler(req: any, res: any) {
let response: any = {}
2022-03-08 21:17:07 +01:00
try {
if (req.method === "POST") {
response = await saveSale(req)
} else if (req.method === "GET") {
response = await getSales(req)
} else {
res.status(404)
return
}
res.status(200).json(response)
} catch (err: any) {
res.status(400).send(err)
}
}