From 285e3f75998688f964a37b1e9382fe8dc0771ddb Mon Sep 17 00:00:00 2001 From: t0nkisa Date: Wed, 10 Jan 2024 13:00:25 +0100 Subject: [PATCH] setting auth session for query --- adapters/supabaseAdapter.js | 28 +++++++++++++++++++++++--- controllers/eventsViaSupabase.js | 34 ++++++++++++++++++++++++++++++-- routes/index.js | 2 ++ 3 files changed, 59 insertions(+), 5 deletions(-) diff --git a/adapters/supabaseAdapter.js b/adapters/supabaseAdapter.js index f11f00a..b36b2b0 100755 --- a/adapters/supabaseAdapter.js +++ b/adapters/supabaseAdapter.js @@ -7,13 +7,24 @@ const supabase = createClient( process.env.SUPABASE_KEY ); -export async function getEventsData() { - const { data, error } = await supabase.from('events').select(); +export async function getEventsData(access_token, refresh_token) { + const {sessionData, sessionError} = supabase.auth.setSession({ + access_token, + refresh_token, + }) + if (sessionError) { + console.error('session error', sessionError); + throw sessionError; + } + const { + data: { user }, + } = await supabase.auth.getUser(); + const { data, error } = await supabase.from('new_events').select(); if (error) { console.error('query error', error); throw error; } - return data; + return {data, user}; } export async function getEventIdData(eventId){ @@ -29,5 +40,16 @@ export async function getEventIdData(eventId){ throw error; } + return data; +} + +export async function postEvent(supabase) { + const { data, error } = await supabase.from('new_events').insert({ + + }).select(); + if (error) { + console.error('query error', error); + throw error; + } return data; } \ No newline at end of file diff --git a/controllers/eventsViaSupabase.js b/controllers/eventsViaSupabase.js index 2514ad6..6a6984c 100755 --- a/controllers/eventsViaSupabase.js +++ b/controllers/eventsViaSupabase.js @@ -1,8 +1,15 @@ -import { getEventsData, getEventIdData } from "../adapters/supabaseAdapter.js"; +import { getEventsData, getEventIdData, postEvent } from "../adapters/supabaseAdapter.js"; +import { createClient } from '@supabase/supabase-js'; export async function getEvents(req, res) { try { - const data = await getEventsData(); + const cookies = req.headers.cookie; + const access_token = cookies.split('; ')[0].split('=')[1]; + const refresh_token = cookies.split('; ')[1].split('=')[1]; + const data = await getEventsData(access_token, refresh_token); + console.log(data); + res.set("Access-Control-Allow-Credentials", "true"); + res.set("Access-Control-Allow-Origin", "http://localhost:5173"); res.status(200).json(data); } catch (err) { res.send(`error in viaSupabase: ${err}`); @@ -18,3 +25,26 @@ export async function getEventId(req, res) { res.status(500).send(error.message); } }; + +export async function postNewEvent(req, res) { + try { + const supabase = createClient( + process.env.SUPABASE_URL, + process.env.SUPABASE_KEY, + { + global: { + headers: { "set-cookies": req.headers.cookie }, + }, + } + ); + const { + data: { user }, + } = await supabase.auth.getUser(); + + const newEvent = await postEvent(supabase); + res.status(200).json(newEvent); + } catch (error) { + res.status(500).send(error.message); + } + +} \ No newline at end of file diff --git a/routes/index.js b/routes/index.js index 318718f..6b6be81 100755 --- a/routes/index.js +++ b/routes/index.js @@ -13,6 +13,8 @@ router.options('/events', (req, res, next) => { res.header({ allow: 'GET, POST, OPTIONS', 'Content-type': 'application/json', + 'Access-Control-Allow-Credentials': "true", + "Access-Control-Allow-Origin": "http://localhost:5173", Data: Date.now(), 'Content-length': 0, });