Skip to content

Commit

Permalink
Merge pull request #4 from fleetbase/dev-v0.0.5
Browse files Browse the repository at this point in the history
composer.json always to return 200
  • Loading branch information
roncodes authored Jul 19, 2024
2 parents 7527f97 + e7f3738 commit ec00cfc
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 11 deletions.
12 changes: 8 additions & 4 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ class ComposerMiddleware {
// Extract bearer token from Authorization header
const authHeader = req.headers.authorization;
if (!authHeader || !authHeader.startsWith('Bearer ')) {
return res.status(401).json({ error: 'Unauthorized' });
// return res.status(401).json({ error: 'Unauthorized' });
return res.json({ packages: {} });
}
const token = authHeader.slice(7);
// Authenticate with the API using the bearer token
Expand All @@ -38,11 +39,13 @@ class ComposerMiddleware {
catch (authError) {
if (axios_1.default.isAxiosError(authError) && authError.response) {
this.logger.error({ error: authError.response.data }, 'Authentication failed: @{error}');
return res.status(authError.response.status ?? 401).json(authError.response.data);
// return res.status(authError.response.status ?? 401).json(authError.response.data);
return res.json({ packages: {} });
}
else if (authError instanceof Error) {
this.logger.error({ error: authError.message }, 'Authentication failed: @{error}');
return res.status(500).json({ error: 'Internal Server Error' });
// return res.status(500).json({ error: 'Internal Server Error' });
return res.json({ packages: {} });
}
}
// Extract the list of unauthorized packages from the API response
Expand All @@ -52,7 +55,8 @@ class ComposerMiddleware {
// Ensure allPackages.packages is an object
if (typeof allPackages.packages !== 'object') {
this.logger.error({ error: 'Invalid package format' }, 'Error fetching composer.json files');
return res.status(500).send('Internal Server Error');
// return res.status(500).send('Internal Server Error');
return res.json({ packages: {} });
}
// Filter out unauthorized packages
const filteredPackages = Object.keys(allPackages.packages)
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@fleetbase/verdaccio-composer-middleware",
"version": "0.0.4",
"version": "0.0.5",
"description": "Middleware to handle composer dependency request.",
"keywords": [
"verdaccio",
Expand Down
12 changes: 8 additions & 4 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ export default class ComposerMiddleware implements IPluginMiddleware<ComposerMid
// Extract bearer token from Authorization header
const authHeader = req.headers.authorization;
if (!authHeader || !authHeader.startsWith('Bearer ')) {
return res.status(401).json({ error: 'Unauthorized' });
// return res.status(401).json({ error: 'Unauthorized' });
return res.json({ packages: {} });
}
const token = authHeader.slice(7);

Expand All @@ -40,10 +41,12 @@ export default class ComposerMiddleware implements IPluginMiddleware<ComposerMid
} catch (authError: unknown) {
if (axios.isAxiosError(authError) && authError.response) {
this.logger.error({ error: authError.response.data }, 'Authentication failed: @{error}');
return res.status(authError.response.status ?? 401).json(authError.response.data);
// return res.status(authError.response.status ?? 401).json(authError.response.data);
return res.json({ packages: {} });
} else if (authError instanceof Error) {
this.logger.error({ error: authError.message }, 'Authentication failed: @{error}');
return res.status(500).json({ error: 'Internal Server Error' });
// return res.status(500).json({ error: 'Internal Server Error' });
return res.json({ packages: {} });
}
}

Expand All @@ -56,7 +59,8 @@ export default class ComposerMiddleware implements IPluginMiddleware<ComposerMid
// Ensure allPackages.packages is an object
if (typeof allPackages.packages !== 'object') {
this.logger.error({ error: 'Invalid package format' }, 'Error fetching composer.json files');
return res.status(500).send('Internal Server Error');
// return res.status(500).send('Internal Server Error');
return res.json({ packages: {} });
}

// Filter out unauthorized packages
Expand Down

0 comments on commit ec00cfc

Please sign in to comment.