mirror of
https://github.com/System-End/site.git
synced 2026-04-19 16:28:21 +00:00
70 lines
2.2 KiB
JavaScript
70 lines
2.2 KiB
JavaScript
import AirtablePlus from "airtable-plus"
|
|
|
|
const flavorText = async () => {
|
|
const airtable = new AirtablePlus({
|
|
apiKey: process.env.AIRTABLE_API_KEY,
|
|
baseID: "app3ODCEuTL5iGjb3",
|
|
tableName: "Flavor Text"
|
|
})
|
|
|
|
const records = airtable.read()
|
|
return records
|
|
}
|
|
|
|
const inventoryParts = async () => {
|
|
const airtable = new AirtablePlus({
|
|
apiKey: process.env.AIRTABLE_API_KEY,
|
|
baseID: "app3ODCEuTL5iGjb3",
|
|
tableName: "Inventory"
|
|
})
|
|
|
|
const records = await airtable.read()
|
|
return records
|
|
}
|
|
|
|
export default async function handler(req, res) {
|
|
const data = {}
|
|
await Promise.all([
|
|
inventoryParts().then(d => data.inventory = d),
|
|
flavorText().then(d => data.flavor = d),
|
|
])
|
|
|
|
const inventoryResults = data.inventory.filter(record => record.fields["Enabled"]).map(record => {
|
|
return {
|
|
name: record.fields['Name'],
|
|
smallName: record.fields['Name Small Text'],
|
|
hours: record.fields['Hours'],
|
|
imageURL: record.fields['Image URL'],
|
|
formURL: record.fields['Order Form URL'],
|
|
description: record.fields['Description'],
|
|
flavorText: record?.fields['Flavor text']?.map(recordID => {
|
|
const flavorRecord = data.flavor.find(f => f.id === recordID)
|
|
const result = {
|
|
message: flavorRecord.fields["Message"],
|
|
character: flavorRecord.fields["Character"],
|
|
imageURL: flavorRecord.fields["Image URL"]
|
|
}
|
|
if (flavorRecord.fields["Shopkeepers"]) {
|
|
result.characterURL = flavorRecord.fields["Image Link (from Shopkeepers)"][0]
|
|
result.character = flavorRecord.fields["Character (from Shopkeepers)"][0]
|
|
}
|
|
return result
|
|
})
|
|
}
|
|
})
|
|
|
|
const selfClicks = {}
|
|
data.flavor.filter(f => f.fields['Self Click']).forEach(record => {
|
|
const char = record.fields["Character (from Shopkeepers)"][0]
|
|
const charURL = record.fields["Image Link (from Shopkeepers)"][0]
|
|
const charMsg = record.fields["Message"]
|
|
selfClicks[char] = selfClicks[char] || []
|
|
selfClicks[char].push({
|
|
message: charMsg,
|
|
characterURL: charURL,
|
|
character: char
|
|
})
|
|
})
|
|
|
|
res.status(200).json({inventory: inventoryResults, selfClicks})
|
|
}
|