diff --git a/devvit.json b/devvit.json index a5fc78a..8e4b895 100644 --- a/devvit.json +++ b/devvit.json @@ -9,5 +9,8 @@ }, "server": { "entry": "dist/server/index.cjs" + }, + "triggers": { + "onAppInstall": "/internal/post-create" } -} +} \ No newline at end of file diff --git a/package.json b/package.json index 719564d..b7f24e6 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "deploy": "npm run build:client && npm run build:server && devvit upload", "dev": "concurrently -p \"[{name}]\" -n \"CLIENT,SERVER,DEVVIT\" -c \"blue,green,magenta\" \"npm run dev:client\" \"npm run dev:server\" \"npm run dev:devvit\" --restart-tries 2", "dev:client": "cd src/client && vite build --watch", - "dev:devvit": "devvit playtest YOUR_SUBREDDIT_NAME", + "dev:devvit": "devvit playtest", "dev:server": "cd src/server && vite build --watch", "login": "devvit login", "type-check": "tsc --build" @@ -18,6 +18,7 @@ "dependencies": { "@devvit/client": "0.11.18", "@devvit/public-api": "0.11.18", + "@devvit/reddit": "^0.11.18", "@devvit/redis": "0.11.18", "@devvit/server": "0.11.18", "devvit": "latest", diff --git a/src/server/index.ts b/src/server/index.ts index d171e10..a140cbc 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -6,6 +6,8 @@ import { } from "../shared/types/api"; import { createServer, context, getServerPort } from "@devvit/server"; import { redis } from "@devvit/redis"; +import { reddit } from "@devvit/reddit"; +import { Devvit } from "@devvit/public-api"; const app = express(); @@ -92,6 +94,41 @@ router.post< }); }); + +router.post("/internal/post-create", async (_req, res): Promise => { + const { subredditName } = context; + if (!subredditName) { + res.status(400).json({ + status: "error", + message: "subredditName is required", + }); + return; + } + reddit.submitPost({ + runAs: 'USER', + userGeneratedContent: { + text: 'Hello there! This is a test post from the Test HW-1 app.', + }, + subredditName: subredditName, + title: 'Test Post from Test HW-1', + preview: Devvit.createElement("blocks", { + height: "tall", + children: [ + Devvit.createElement("vstack", { + height: "100%", + width: "100%", + backgroundColor: "#ffbf0b", + }), + ], + }), + }); + + res.json({ + status: "success", + message: `Post created in subreddit ${subredditName}`, + }); +}); + // Use router middleware app.use(router);