From b7b7cc2c111e9db6851b344b80119d18f9c498d0 Mon Sep 17 00:00:00 2001 From: CampbellDocherty Date: Thu, 28 May 2020 12:09:33 +0100 Subject: [PATCH] Alter db query for get project by Id Relates #11 Co-authored-by: Hannah Gooding --- wip-app/src/pages/ProjectPage/ProjectPage.js | 23 ++++++++++++++++++++ wip-app/src/utils/get-fetch.js | 11 +++++++++- wip-rest-api/src/model/projects-model.js | 5 ++++- 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/wip-app/src/pages/ProjectPage/ProjectPage.js b/wip-app/src/pages/ProjectPage/ProjectPage.js index e69de29..6733585 100644 --- a/wip-app/src/pages/ProjectPage/ProjectPage.js +++ b/wip-app/src/pages/ProjectPage/ProjectPage.js @@ -0,0 +1,23 @@ +import React from "react"; +import { projectPage } from "../../utils/get-fetch"; + +const ProjectPage = () => { + const [projectData, setProjectData] = React.useState([]); + + React.useEffect(() => { + projectPage().then(setProjectData); + }, []); + + const { + id, + user_id, + project_name, + project_description, + project_status, + } = projectData; + // SELECT (SELECT username FROM users WHERE projects.user_id=users.id), project_name, project_description, project_status, steps.step_name, steps.step_link, steps.date, feedback_text, feedback_tag, feedback.date + // FROM projects JOIN users ON projects.user_id=users.id JOIN steps ON projects.id=steps.project_id JOIN feedback ON steps.id=feedback.step_id + // WHERE projects.id = 1; +}; + +export default ProjectPage; diff --git a/wip-app/src/utils/get-fetch.js b/wip-app/src/utils/get-fetch.js index a78b3c8..dac4f3c 100644 --- a/wip-app/src/utils/get-fetch.js +++ b/wip-app/src/utils/get-fetch.js @@ -55,4 +55,13 @@ function getUserPageProjects() { return getFetch(options); } -export { feedPage, getUser, explorePage, getUserPageProjects }; +function projectPage(projectid) { + const projectid = 1; + const options = { + endpoint: `project/${projectid}`, + errorMessage: "Project page error", + }; + return getFetch(options); +} + +export { feedPage, getUser, explorePage, getUserPageProjects, projectPage }; diff --git a/wip-rest-api/src/model/projects-model.js b/wip-rest-api/src/model/projects-model.js index f945974..dddbb1d 100644 --- a/wip-rest-api/src/model/projects-model.js +++ b/wip-rest-api/src/model/projects-model.js @@ -2,7 +2,10 @@ const db = require("../database/connection.js"); function getProjectFromDb(projectId) { return db - .query("SELECT * FROM projects WHERE id=($1)", [projectId]) + .query( + "SELECT (SELECT username FROM users WHERE projects.user_id=users.id), project_name, project_description, project_status, steps.id, steps.step_name, steps.step_link, steps.date FROM projects JOIN steps ON projects.id=steps.project_id WHERE projects.id=($1);", + [projectId] + ) .then((project) => project.rows[0]); }