pass errors

This commit is contained in:
counterweight 2025-03-05 16:23:36 +01:00
parent 47b2821f90
commit 2f93e65862
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
2 changed files with 18 additions and 14 deletions

View file

@ -7,6 +7,7 @@ function buildDependencies() {
dependencies.middlewares = middlewares; dependencies.middlewares = middlewares;
const services = require('./services'); const services = require('./services');
const errors = require('./errors');
const WebRoutesProvider = require('./routes/webRoutes'); const WebRoutesProvider = require('./routes/webRoutes');
const webRoutesProvider = new WebRoutesProvider({ const webRoutesProvider = new WebRoutesProvider({
@ -17,7 +18,11 @@ function buildDependencies() {
dependencies.webRoutes = webRoutesProvider.provide(); dependencies.webRoutes = webRoutesProvider.provide();
const ApiRoutesProvider = require('./routes/apiRoutes'); const ApiRoutesProvider = require('./routes/apiRoutes');
const apiRoutesProvider = new ApiRoutesProvider({ middlewares, services }); const apiRoutesProvider = new ApiRoutesProvider({
middlewares,
services,
errors,
});
dependencies.apiRoutes = apiRoutesProvider.provide(); dependencies.apiRoutes = apiRoutesProvider.provide();
return dependencies; return dependencies;
} }

View file

@ -1,13 +1,12 @@
const express = require('express'); const express = require('express');
const errors = require('../errors');
const router = express.Router(); const router = express.Router();
class ApiRoutesProvider { class ApiRoutesProvider {
constructor({ middlewares, services }) { constructor({ middlewares, services, errors }) {
this.middlewares = middlewares; this.middlewares = middlewares;
this.services = services; this.services = services;
this.errors = errors;
} }
provide() { provide() {
@ -19,14 +18,14 @@ class ApiRoutesProvider {
signUpChallenge = signUpChallenge =
await this.services.invitesService.createSignUpChallenge(inviteUuid); await this.services.invitesService.createSignUpChallenge(inviteUuid);
} catch (error) { } catch (error) {
if (error instanceof errors.NotFoundError) { if (error instanceof this.services.NotFoundError) {
return res.status(404).json({ return res.status(404).json({
success: false, success: false,
message: 'Could not find invite with that id.', message: 'Could not find invite with that id.',
}); });
} }
if (error instanceof errors.AlreadyUsedError) { if (error instanceof this.errors.AlreadyUsedError) {
return res.status(410).json({ return res.status(410).json({
success: false, success: false,
message: 'That invite has already been used.', message: 'That invite has already been used.',
@ -66,19 +65,19 @@ class ApiRoutesProvider {
completedSignUpChallenge = completedSignUpChallenge =
await this.services.invitesService.verifySignUpChallenge(signedEvent); await this.services.invitesService.verifySignUpChallenge(signedEvent);
} catch (error) { } catch (error) {
if (error instanceof errors.ExpiredError) { if (error instanceof this.errors.ExpiredError) {
return res.status(410).json({ return res.status(410).json({
success: false, success: false,
message: 'The challenge has expired, request a new one.', message: 'The challenge has expired, request a new one.',
}); });
} }
if (error instanceof errors.AlreadyUsedError) { if (error instanceof this.errors.AlreadyUsedError) {
return res.status(410).json({ return res.status(410).json({
success: false, success: false,
message: 'The challenge has been used, request a new one.', message: 'The challenge has been used, request a new one.',
}); });
} }
if (error instanceof errors.InvalidSignatureError) { if (error instanceof this.errors.InvalidSignatureError) {
return res.status(400).json({ return res.status(400).json({
success: false, success: false,
message: 'The challenge signature is not valid.', message: 'The challenge signature is not valid.',
@ -135,25 +134,25 @@ class ApiRoutesProvider {
} catch (error) { } catch (error) {
console.log('helo5'); console.log('helo5');
console.log(error); console.log(error);
if (error instanceof errors.ExpiredError) { if (error instanceof this.errors.ExpiredError) {
return res.status(410).json({ return res.status(410).json({
success: false, success: false,
message: 'The challenge has expired, request a new one.', message: 'The challenge has expired, request a new one.',
}); });
} }
if (error instanceof errors.AlreadyUsedError) { if (error instanceof this.errors.AlreadyUsedError) {
return res.status(410).json({ return res.status(410).json({
success: false, success: false,
message: 'The challenge has been used, request a new one.', message: 'The challenge has been used, request a new one.',
}); });
} }
if (error instanceof errors.InvalidSignatureError) { if (error instanceof this.errors.InvalidSignatureError) {
return res.status(400).json({ return res.status(400).json({
success: false, success: false,
message: 'The challenge signature is not valid.', message: 'The challenge signature is not valid.',
}); });
} }
if (error instanceof errors.ForbiddenError) { if (error instanceof this.errors.ForbiddenError) {
console.log('helo?1'); console.log('helo?1');
return res.status(403).json({ return res.status(403).json({
success: false, success: false,
@ -254,7 +253,7 @@ class ApiRoutesProvider {
try { try {
await this.services.offerService.deleteOffer(offerUuid); await this.services.offerService.deleteOffer(offerUuid);
} catch (error) { } catch (error) {
if (error instanceof errors.NotFoundError) { if (error instanceof this.errors.NotFoundError) {
return res.status(404).json({ return res.status(404).json({
success: false, success: false,
message: 'Offer not found for the given public key.', message: 'Offer not found for the given public key.',