From c76b18346ae17601deb1ccfdc1c409a6c5409bde Mon Sep 17 00:00:00 2001 From: Saimon8420 Date: Sat, 1 Mar 2025 13:13:47 +0600 Subject: [PATCH 1/3] all requirement updated, and integrated with dev version of canvas --- .env | 5 ++++- src/api/design/design.controller.ts | 18 ++++++++++++++++++ src/api/design/design.route.ts | 24 ++++++++++++++++++++++++ src/api/index.ts | 4 +++- src/api/project/project.controller.ts | 7 ++++--- src/api/project/project.route.ts | 4 +++- src/app.ts | 1 + src/config/env.ts | 1 + 8 files changed, 58 insertions(+), 6 deletions(-) create mode 100644 src/api/design/design.controller.ts create mode 100644 src/api/design/design.route.ts diff --git a/.env b/.env index 0bee116..96618b9 100644 --- a/.env +++ b/.env @@ -1,5 +1,5 @@ SERVER_URL=http://localhost -SERVER_PORT=3000 +SERVER_PORT=3001 DATABASE_URL=postgres://postgres:saimon%40567@localhost:5432/planpost_canvas @@ -14,6 +14,9 @@ JWT_ACCESS_TOKEN_SECRET=planpostai%^$_%43%65576canvas%%$$ JWT_REFRESH_TOKEN_SECRET=planpostai!@43223_canvas$%^$349332$$ +# developer canvas server url +CANVAS_SERVER_URL_DEV=http://localhost:3000/api + PEXELS_URL=https://api.pexels.com/v1 PEXELS_ACCESS_KEY=6PK7hLvOuG6nFsmC8c9EV0P8hGkyHeIhYpiRxhkEfh2ePK0GhiQypBhI diff --git a/src/api/design/design.controller.ts b/src/api/design/design.controller.ts new file mode 100644 index 0000000..5ae6a76 --- /dev/null +++ b/src/api/design/design.controller.ts @@ -0,0 +1,18 @@ +import { ENV } from "../../config/env"; + +export const getAllDesign = async (token: string) => { + try { + const response = await fetch(`${ENV.CANVAS_SERVER_URL_DEV}/design`, { + method: "GET", + headers: { + Authorization: `Bearer ${token}`, + "Content-Type": "application/json", + } + }); + const data = await response.json(); + return data; + } catch (error: any) { + console.log(error); + return { status: 500, message: error.message, token }; + } +} \ No newline at end of file diff --git a/src/api/design/design.route.ts b/src/api/design/design.route.ts new file mode 100644 index 0000000..5db638c --- /dev/null +++ b/src/api/design/design.route.ts @@ -0,0 +1,24 @@ +import Elysia from "elysia"; +import { verifyAuth } from "../../middlewares/auth.middlewares"; +import { getAllDesign } from "./design.controller"; + +export const designRoute = new Elysia({ + prefix: "/design", + tags: ["Design"], + detail: { + description: "Routes for managing designs", + } +}).derive(async ({ cookie }) => { + const authData = await verifyAuth(cookie); + return { authData }; // Inject into context +}) + +designRoute.get("/", async ({ authData }) => { + if (authData.status !== 200) + return authData; + else { + const token = authData.token; + const response = await getAllDesign(token); + return response; + } +}) \ No newline at end of file diff --git a/src/api/index.ts b/src/api/index.ts index 5a7444f..0c161f9 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -4,6 +4,7 @@ import { uploadRoutes } from "./upload/upload.route"; import { authRoute } from "./auth/auth.route"; import { downloadRoute } from "./downloadCount/download.count.route"; import { photoLibraryRoutes } from "./photoLibrary/photo.library.route"; +import { designRoute } from "./design/design.route"; export const api = new Elysia({ prefix: "/api", @@ -17,4 +18,5 @@ api.use(authRoute); api.use(projectRoutes); api.use(uploadRoutes); api.use(downloadRoute); -api.use(photoLibraryRoutes); \ No newline at end of file +api.use(photoLibraryRoutes); +api.use(designRoute); \ No newline at end of file diff --git a/src/api/project/project.controller.ts b/src/api/project/project.controller.ts index 8b3cd6c..838471b 100644 --- a/src/api/project/project.controller.ts +++ b/src/api/project/project.controller.ts @@ -86,10 +86,10 @@ export const createProject = async (userId: string, token: string) => { } }; -export const updateProject = async (id: string, body: any, token: string) => { +export const updateProject = async (id: string, body: any, token: string, user_id: string) => { try { // 1. Validate if project exists - const existingProject = await db.select().from(projects).where(eq(projects.id, id)).limit(1); + const existingProject = await db.select().from(projects).where(eq(projects.id, id)); if (existingProject.length === 0) { return { status: 404, message: "Project not found", token }; } @@ -101,7 +101,8 @@ export const updateProject = async (id: string, body: any, token: string) => { object, name, description, - preview_url + preview_url, + userId: user_id, }).where(eq(projects.id, id)).returning({ id: projects.id, object: projects.object, diff --git a/src/api/project/project.route.ts b/src/api/project/project.route.ts index 69f7f72..1f13f84 100644 --- a/src/api/project/project.route.ts +++ b/src/api/project/project.route.ts @@ -54,7 +54,9 @@ projectRoutes.put("/update/:project_id", async ({ body, params: { project_id }, return authData; else { const token = authData.token; - const response = await updateProject(project_id, body, token); + const user_id = authData?.userId; + // sending user_id to the controller to update the project with the user_id, when user tried to design a existing project from the design project panel + const response = await updateProject(project_id, body, token, user_id as string); return response; } }, { diff --git a/src/app.ts b/src/app.ts index fda8f87..aed811f 100644 --- a/src/app.ts +++ b/src/app.ts @@ -7,6 +7,7 @@ import { api } from "./api"; const allowedOrigins = [ "http://localhost:5175", + "http://localhost:5174", "http://localhost:5173", "https://dashboard.planpostai.com", "https://canvas.planpostai.com", diff --git a/src/config/env.ts b/src/config/env.ts index a1888e1..1e0ce2a 100644 --- a/src/config/env.ts +++ b/src/config/env.ts @@ -3,6 +3,7 @@ import 'dotenv/config' export const ENV = { SERVER_URL: process.env.SERVER_URL, SERVER_PORT: process.env.SERVER_PORT || 5000, + CANVAS_SERVER_URL_DEV: process.env.CANVAS_SERVER_URL_DEV, DATABASE_URL: process.env.DATABASE_URL, MINIO_ACCESS_KEY: process.env.MINIO_ACCESS_KEY, MINIO_SECRET_KEY: process.env.MINIO_SECRET_KEY, From 363edc548a65b959072dbf69f32b3b72b5007896 Mon Sep 17 00:00:00 2001 From: Saimon8420 Date: Sat, 1 Mar 2025 13:15:32 +0600 Subject: [PATCH 2/3] all requirement updated, and integrated with dev version of canvas --- env.example | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 env.example diff --git a/env.example b/env.example new file mode 100644 index 0000000..ae2e459 --- /dev/null +++ b/env.example @@ -0,0 +1,21 @@ +SERVER_URL= +SERVER_PORT= + +DATABASE_URL= + +MINIO_ACCESS_KEY= +MINIO_SECRET_KEY= +MINIO_ENDPOINT= +MINIO_PORT= + +CLERK_SECRET_KEY= + +JWT_ACCESS_TOKEN_SECRET= + +JWT_REFRESH_TOKEN_SECRET= + +# developer canvas server url +CANVAS_SERVER_URL_DEV= + +PEXELS_URL= +PEXELS_ACCESS_KEY= \ No newline at end of file From b071602b7b49cc1181e66c9b1fba0968dbfd0467 Mon Sep 17 00:00:00 2001 From: l_kabir Date: Sat, 1 Mar 2025 07:16:35 +0000 Subject: [PATCH 3/3] Delete .env --- .env | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 .env diff --git a/.env b/.env deleted file mode 100644 index 96618b9..0000000 --- a/.env +++ /dev/null @@ -1,22 +0,0 @@ -SERVER_URL=http://localhost -SERVER_PORT=3001 - -DATABASE_URL=postgres://postgres:saimon%40567@localhost:5432/planpost_canvas - -MINIO_ACCESS_KEY=rEiuiqB8JCSmWt7AswOM -MINIO_SECRET_KEY=en3ut7Zp71uAfGrhvMkH6Pk7ZM1qZb9mFxj7KzD5 -MINIO_ENDPOINT=localhost -MINIO_PORT=9000 - -CLERK_SECRET_KEY=sk_test_X4OZbPdnr9ZxlccH8eaA7Ou0oQvQ9FpQ0mq0KuwLUz - -JWT_ACCESS_TOKEN_SECRET=planpostai%^$_%43%65576canvas%%$$ - -JWT_REFRESH_TOKEN_SECRET=planpostai!@43223_canvas$%^$349332$$ - -# developer canvas server url -CANVAS_SERVER_URL_DEV=http://localhost:3000/api - -PEXELS_URL=https://api.pexels.com/v1 -PEXELS_ACCESS_KEY=6PK7hLvOuG6nFsmC8c9EV0P8hGkyHeIhYpiRxhkEfh2ePK0GhiQypBhI -