Skip to content

Commit

Permalink
Merge pull request #9 from HangoutSafari/main-simon-friends
Browse files Browse the repository at this point in the history
Main simon friends
  • Loading branch information
Simon-Manasse authored Dec 22, 2023
2 parents 662afe2 + 9c36c33 commit d1c6f8f
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 4 deletions.
16 changes: 15 additions & 1 deletion adapters/supabaseAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,19 @@ export async function getAnimalsByUserId(userId) {
return data;
}


export async function getFriendsForUser(userId) {
const { data, error } = await supabase.from('users') .select('friends').eq('id',userId).single();
if (error) {
return {friends:null}
throw error;
}

return data;
}



export async function handleUser(userData) {
const {username, email, password} = userData;
// userNotInDb(supabase, username);
Expand All @@ -52,4 +65,5 @@ export async function handleUser(userData) {

};

export { supabase };
export { supabase };

27 changes: 25 additions & 2 deletions controllers/usersViaSupabase.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { getUsersData, getUserIdData, getAnimalsByUserId, handleUser } from "../adapters/supabaseAdapter.js";

import { getUsersData, getUserIdData, getAnimalsByUserId, handleUser, getFriendsForUser } from "../adapters/supabaseAdapter.js";
export async function getUsers(req, res) {
try {
const data = await getUsersData();
Expand Down Expand Up @@ -28,6 +29,27 @@ export async function getUserAnimals(req, res) {
}
}


export async function getFriends(req, res) {
try {
const userId = parseInt(req.params.userId);
const friendsData = await getFriendsForUser(userId);
let detailedFriends = {'id':null}
if(friendsData.friends != null){

const friendKeys = Object.keys(friendsData.friends);

detailedFriends = await Promise.all(
friendKeys.map(async (friendKey) => await getUserIdData(friendKey))
);
}

res.json(detailedFriends);
} catch (error) {
res.status(500).send(error.message);
}
}

export async function postAuthDetails(req, res) {
const userData = req.body;
try{
Expand All @@ -37,4 +59,5 @@ export async function postAuthDetails(req, res) {
catch (err) {
res.status(500).send(err.message);
}
};
};

5 changes: 4 additions & 1 deletion routes/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import express, { Router } from 'express';
import cors from 'cors';
import { getUsers, getUserId, getUserAnimals, postAuthDetails } from '../controllers/usersViaSupabase.js';
import { getUsers, getUserId, getUserAnimals, postAuthDetails, getFriends } from '../controllers/usersViaSupabase.js';


const router = express.Router();

Expand All @@ -26,6 +27,8 @@ 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.post('/users', cors(), postAuthDetails);


export default router;

0 comments on commit d1c6f8f

Please sign in to comment.