Skip to content

Commit

Permalink
added animal dashboard
Browse files Browse the repository at this point in the history
  • Loading branch information
t0nkisa committed Jan 16, 2024
1 parent 55f2075 commit 12cc123
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 9 deletions.
8 changes: 8 additions & 0 deletions controllers/usersViaSupabase.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { getUsersData, getUserIdData, getAnimalsByUserId, handleUser, getFriendsForUser, getEventsOfUser, getEvent } from "../adapters/supabaseAdapter.js";
import { getAuthDataFrom, getDashboardInfo, getDataFrom, getDataWithFunction } from "../dbHelper.js";
export async function getUsers(req, res) {
try {
const data = await getUsersData();
Expand Down Expand Up @@ -78,3 +79,10 @@ export async function getUserEvents(req, res) {
}
}

export async function getUserDashboard(req, res) {
getDashboardInfo(req, res, "get_user_dashboard", "given_id", req.params.id);
}

export async function getAnimalDashboard(req, res) {
getDashboardInfo(req, res, "get_animal_dashboard", "given_id", req.params.id);
}
18 changes: 16 additions & 2 deletions dbHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ const supabase = createClient(
process.env.SUPABASE_KEY
);

const serviceSupabase = createClient(
process.env.SUPABASE_URL,
process.env.SERVICE_KEY
)

export async function getCurrentSession(req) {
const cookies = req.headers.cookie;
if (cookies == null) return { code: 1, error: "cookies error"};
Expand Down Expand Up @@ -126,12 +131,12 @@ async function deleteData(supabaseInstance, tableName, column, condition) {
return await supabaseInstance.from(tableName).delete().eq(column, condition);
}

async function getDataWithFunction(req, res, functionName, key = null, value = null) {
export async function getDataWithFunction(req, res, functionName, key = null, value = null) {
const {data, error} = await callSupabaseRPC(supabase, functionName, key, value);
sendToClient(res, await data, await error);
}

async function getAuthDataWithFunction(req, res, functionName, key = null, value = null) {
export async function getAuthDataWithFunction(req, res, functionName, key = null, value = null) {
const session = await getCurrentSession(req);
if (session['code'] == 1) res.send(`error in session: ${session['error']}`);
else {
Expand All @@ -151,3 +156,12 @@ async function callSupabaseRPC(supabase, functionName, key, value) {
})
}
}

export async function getDashboardInfo(req, res, functionName, key = null, value = null) {
const session = await getCurrentSession(req);
if (session['code'] == 1) res.send(`error in session: ${session['error']}`);
else {
const {data, error} = await callSupabaseRPC(serviceSupabase, functionName, key, value);
sendToClient(res, await data, await error, true)
}
}
14 changes: 14 additions & 0 deletions routes/dashboard.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import express, { Router } from 'express';
import cors from 'cors';
import { getUsers, getUserId, getUserAnimals, postAuthDetails, getFriends, getUserEvents, getUserDashboard, getAnimalDashboard } from '../controllers/usersViaSupabase.js';

const router = express.Router();



router.get('/:id', cors(), getUserDashboard);
router.get('/:id/animals', cors(), getAnimalDashboard);
router.get('/:id/friends', cors(), getFriends)
router.get('/:id/events', cors(), getUserEvents);

export default router;
12 changes: 6 additions & 6 deletions routes/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ router.options('/users', (req, res, next) => {
}
});

router.get('/users', cors(), getUsers);
router.get('/users/:number', cors(), getUserId);
router.get('/users/:userId/animals', cors(), getUserAnimals);
router.get('/users/:userId/friends', cors(), getFriends)
router.get('/users/:userId/events', cors(), getUserEvents);
router.post('/users', cors(), postAuthDetails);
router.get('/', cors(), getUsers);
router.get('/:number', cors(), getUserId);
router.get('/:userId/animals', cors(), getUserAnimals);
router.get('/:userId/friends', cors(), getFriends)
router.get('/:userId/events', cors(), getUserEvents);
router.post('/', cors(), postAuthDetails);

export default router;
4 changes: 3 additions & 1 deletion start.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@ import express from 'express';
import * as dotenv from 'dotenv';
dotenv.config({ path: 'variables.env' });
import indexRouter from './routes/index.js';
import authRouter from './routes/dashboard.js';
import { ErrorHandler } from './middleware/errorHandler.js';

const app = express();

app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use('/', indexRouter);
app.use('/users/auth', indexRouter);
app.use('/users/dashboards', authRouter);

app.use((req, res, next) => {
try {
Expand Down

0 comments on commit 12cc123

Please sign in to comment.