Function bodies 59 total
UsersRepository.getUserById method · javascript · L28-L33 (6 LOC)src/server/repositories/UsersRepository.js
async getUserById(id) {
if (!id) {
throw new Error('User ID is required');
}
return await this.get(`/users/${id}`);
}UsersRepository.getUserPosts method · javascript · L40-L45 (6 LOC)src/server/repositories/UsersRepository.js
async getUserPosts(userId) {
if (!userId) {
throw new Error('User ID is required');
}
return await this.get(`/users/${userId}/posts`);
}UsersRepository.getUserAlbums method · javascript · L52-L57 (6 LOC)src/server/repositories/UsersRepository.js
async getUserAlbums(userId) {
if (!userId) {
throw new Error('User ID is required');
}
return await this.get(`/users/${userId}/albums`);
}UsersRepository.updateUser method · javascript · L74-L79 (6 LOC)src/server/repositories/UsersRepository.js
async updateUser(id, userData) {
if (!id) {
throw new Error('User ID is required');
}
return await this.put(`/users/${id}`, userData);
}UsersRepository.deleteUser method · javascript · L86-L91 (6 LOC)src/server/repositories/UsersRepository.js
async deleteUser(id) {
if (!id) {
throw new Error('User ID is required');
}
return await this.delete(`/users/${id}`);
}Router function · javascript · L14-L28 (15 LOC)src/server/router.jsx
export default function Router() {
return (
<Routes>
<Route path="/" element={<HomePage />} />
<Route path="/posts" element={<PostsPage />} />
<Route path="/posts/:id" element={<PostDetailPage />} />
<Route path="/users" element={<UsersPage />} />
<Route path="/users/:id" element={<UserProfilePage />} />
{/* Error pages for SSR error handling */}
<Route path="/404" element={<NotFound />} />
<Route path="/500" element={<ServerError />} />
<Route path="*" element={<NotFound />} />
</Routes>
);
}postsRoutes function · javascript · L6-L91 (86 LOC)src/server/routes/api/posts.js
export default async function postsRoutes(router) {
/**
* GET /api/posts
* Fetch paginated list of posts
* Query params:
* - page: Page number (default: 1)
* - limit: Posts per page (default: 10)
*/
router.get('/', async (req, res) => {
try {
const page = parseInt(req.query.page) || 1;
const limit = parseInt(req.query.limit) || 10;
const posts = await req.repositories.posts.getPosts(page, limit);
res.json(posts);
} catch (error) {
console.error('Error fetching posts:', error);
res.status(500).json({
error: 'Failed to fetch posts',
message: error.message,
});
}
});
/**
* GET /api/posts/:id
* Fetch a single post by ID
*/
router.get('/:id', async (req, res) => {
try {
const { id } = req.params;
if (!id || isNaN(id)) {
return res.status(400).json({
error: 'Invalid post ID',
message: 'Post ID must be a valid number',
});
Want fix-PRs on findings? Install Repobility's GitHub App · github.com/apps/repobility-bot
usersRoutes function · javascript · L6-L119 (114 LOC)src/server/routes/api/users.js
export default async function usersRoutes(router) {
/**
* GET /api/users
* Fetch all users
*/
router.get('/', async (req, res) => {
try {
const users = await req.repositories.users.getUsers();
res.json(users);
} catch (error) {
console.error('Error fetching users:', error);
res.status(500).json({
error: 'Failed to fetch users',
message: error.message,
});
}
});
/**
* GET /api/users/:id
* Fetch a single user by ID
*/
router.get('/:id', async (req, res) => {
try {
const { id } = req.params;
const { include_posts: includePosts = false } = req.query;
if (!id || isNaN(id)) {
return res.status(400).json({
error: 'Invalid user ID',
message: 'User ID must be a valid number',
});
}
const user = await req.repositories.users.getUserById(id);
if (!user || !user.id) {
return res.status(404).json({
error: 'User not founindex function · javascript · L12-L150 (139 LOC)src/server/routes/index.js
export default async function index(router) {
// Homepage - no data pre-fetching needed
router.get('/', async (req, res, next) => {
next();
});
// Posts list page - pre-fetch posts data
router.get('/posts', async (req, res, next) => {
try {
const page = parseInt(req.query.page) || 1;
const limit = parseInt(req.query.limit) || 10;
// Fetch posts data from repository
const posts = await req.repositories.posts.getPosts(page, limit);
// Merge with existing initialState, maintaining other data
const initialState = getInitialState(req);
req.initialState = {
...initialState,
posts: {
...initialState?.posts,
posts: {
data: posts,
currentPage: page,
totalPages: 10,
},
},
};
next();
} catch (error) {
console.error('Error pre-fetching posts:', error);
// Pass error to error handler for posts list failures
error.s‹ prevpage 2 / 2