// index.js const express = require('express'); const multer = require('multer'); const cors = require('cors'); const axios = require('axios'); const app = express(); const upload = multer({ storage: multer.memoryStorage() }); app.use(cors()); app.use(express.json()); app.get('/', (req, res) => { res.status(200).json({ status: 'success', data: { message: 'Forbindelse oprettet!' }, }); }); app.post('/upload', upload.single('image'), async (req, res) => { if (!req.file) { return res.status(400).json({ message: 'Ingen fil modtaget' }); } try { // Simuleret stofnavn const fabricName = 'Cork Green'; // Airtable-opslag const airtableApiKey = 'patpgJ4xbX8WFIpgP.5d7026864f7fb2a8188c9a9384e75f2f472117d03fea53b23dc9c0fa19a152f1'; const baseId = 'appeqwqBbIFzS0FI1'; const tableId = 'tblPdIJKscRfYl4Vl'; const viewId = 'viwNXWVSZyyXOEJRq'; const url = `https://api.airtable.com/v0/${baseId}/${tableId}?view=${viewId}&filterByFormula={Name}='${encodeURIComponent(fabricName)}'`; const response = await axios.get(url, { headers: { Authorization: `Bearer ${airtableApiKey}`, }, }); const record = response.data.records[0]; if (!record) { return res.status(404).json({ message: 'Stof ikke fundet i Airtable' }); } res.status(200).json({ message: 'Stof genkendt', fabric: fabricName, link: record.fields.Link || null, }); } catch (error) { console.error('Fejl ved opslag i Airtable:', error); res.status(500).json({ message: 'Serverfejl', error: error.message }); } }); // Cloud Run kræver en eksport exports.helloHttp = app;