From 94d90764b6e8ace85162e72f4a26e746fb3e3d6b Mon Sep 17 00:00:00 2001 From: Francisco Pessano Date: Wed, 29 Sep 2021 19:59:45 -0300 Subject: [PATCH] Added selector of projects --- src/components/ClockifyTasksDisplay.jsx | 66 ++++++++++++++++++++++--- 1 file changed, 60 insertions(+), 6 deletions(-) diff --git a/src/components/ClockifyTasksDisplay.jsx b/src/components/ClockifyTasksDisplay.jsx index 68d5c16..5296ce2 100644 --- a/src/components/ClockifyTasksDisplay.jsx +++ b/src/components/ClockifyTasksDisplay.jsx @@ -15,6 +15,9 @@ const ClockifyTasksDisplay = (props) => { const [workspaces, setWorkspaces] = useState([]) const [workspacesReady, setWorkspacesReady] = useState(false) + const [projects, setProjects] = useState([]) + const [projectsDone, setProjectsDone] = useState(false) + const getApiKey = async () => { try { @@ -41,7 +44,7 @@ const ClockifyTasksDisplay = (props) => { } } - const makeRequest = async (apiClockify) => { + const makeRequestWorkspaces = async (apiClockify) => { try { const request = { method: "GET", @@ -52,6 +55,8 @@ const ClockifyTasksDisplay = (props) => { } const response = await fetch(`https://api.clockify.me/api/v1/workspaces/`, request) const data = await response.json() + + setApiKey(apiClockify) return await data @@ -66,11 +71,10 @@ const ClockifyTasksDisplay = (props) => { console.log(apiKey) - const data = await makeRequest(key) + const data = await makeRequestWorkspaces(key) if (data.code !== 1000) { - setWorkspaces([]) - let workspacesCopy = await workspaces + let workspacesCopy = [] await data.forEach(workspace => { @@ -109,21 +113,71 @@ const ClockifyTasksDisplay = (props) => { }, [props, onAuthStateChanged, setUserUID, userUID]) + const makeRequestProjects = async (e) => { + + try { + const request = { + method: "GET", + headers: { + 'X-Api-Key': apiKey, + "content-type": "application/json" + } + } + const response = await fetch(`https://api.clockify.me/api/v1/workspaces/${e}/projects`, request) + const data = await response.json() + + console.log(data) + + setProjectsDone(true) + + return await data + + } catch (error) { + console.log(error) + } + } + + const defineProjects = async (e) => { + + const data = await makeRequestProjects(e) + + await setProjects(data) + + if (projects) { + + console.log(projects) + setProjectsDone(true) + } + + } return (
- {defineProjects(e.target.value)}}> { workspacesReady ? workspaces.map( (workspace) => { return - }) + }) : null } +
) }