34
35/**
36 * Store a chat message in the database
37 */
38export async function storeChatMessage(
130 }
131
132 console.log(`Weather forecast updated in the database.`);
133 return summary;
134}
125 }
126
127 console.log(`Calendar events imported into the database.`);
128 return events;
129 } catch (error) {
8
9/**
10 * Retrieves previously generated fun facts from the memories database
11 * @returns Array of previous fun facts
12 */
47
48/**
49 * Inserts a fun fact into the memories database
50 * @param date Date for the fun fact in ISO format
51 * @param factText The fun fact text
208```
209โโโ backend/
210โ โโโ database/
211โ โ โโโ migrations.ts # Schema definitions
212โ โ โโโ queries.ts # DB query functions
270- Handle API calls properly with proper error catching
271
272### Database Patterns
273- Run migrations on startup or comment out for performance
274- Change table names when modifying schemas rather than altering
18
19### GET /admin
20Simple admin interface for viewing the cache database. Displays:
21- Total number of cached entries
22- List of all cached plants with their full JSON data
196- Built with Hono framework
197- Uses OpenAI GPT-4o-mini model
198- SQLite database for caching with automatic table creation
199- Includes input validation and error handling
200- Returns structured JSON responses
11 clearCache,
12 type PlantInfo
13} from "./database/cache.ts";
14
15const app = new Hono();
38 example: "/plant/rose",
39 testPage: "/test - Simple testing interface",
40 adminPage: "/admin - Cache database admin interface",
41 cache: {
42 totalCachedPlants: stats.totalEntries,
58});
59
60// Admin page to view cache database
61app.get("/admin", async (c) => {
62 const html = await readFile("/admin.html", import.meta.url);
177});
178
179// Test database endpoint
180app.get("/test-db", async (c) => {
181 try {
182 console.log("Testing database connection...");
183
184 // Test basic SQLite functionality
199
200 return c.json({
201 message: "Database test successful",
202 testResult,
203 selectResult
204 });
205 } catch (error) {
206 console.error("Database test failed:", error);
207 return c.json({
208 error: "Database test failed",
209 details: error instanceof Error ? error.message : "Unknown error"
210 }, 500);
9<body class="bg-gray-50 p-4">
10 <div class="max-w-4xl mx-auto">
11 <h1 class="text-2xl font-bold mb-4">Cache Database</h1>
12 <a href="/" class="text-blue-600 hover:underline mb-4 inline-block">โ Back to API</a>
13
1// Script to set up the telegram_chats table in SQLite
2// Run this script manually to create the database table
3
4export default async function setupTelegramChatDb() {
26 console.log("telegram_chats table created successfully.");
27
28 return "Telegram chat database table created successfully.";
29 } catch (error) {
30 console.error("Error setting up telegram_chats table:", error);
385// ];
386
387// Insert memories into the database
388async function insertDemoMemories() {
389 try {
426 await insertDemoMemories();
427
428 console.log("Demo database successfully populated!");
429 return "Demo database successfully populated!";
430 } catch (error) {
431 console.error("Error populating demo database:", error);
432 throw error;
433 }