Skip to content

Commit 981c989

Browse files
committed
fix: Minor fixes
� Conflicts: � packages/uma/src/routes/Ticket.ts
1 parent b1c68df commit 981c989

5 files changed

Lines changed: 19 additions & 28 deletions

File tree

packages/uma/src/errors/NeedInfoError.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,8 @@ export class NeedInfoError extends ForbiddenHttpError {
3131
this.ticket = ticket;
3232
this.additionalParams = additionalParams;
3333
}
34+
35+
public static isInstance(error: unknown): error is NeedInfoError {
36+
return ForbiddenHttpError.isInstance(error) && typeof (error as NeedInfoError).ticket === 'string';
37+
}
3438
}

packages/uma/src/routes/ResourceRegistration.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {
33
createErrorMessage,
44
getLoggerFor,
55
KeyValueStorage,
6-
MethodNotAllowedHttpError,
6+
MethodNotAllowedHttpError, NotFoundHttpError,
77
UnauthorizedHttpError
88
} from '@solid/community-server';
99
import { randomUUID } from 'node:crypto';
@@ -55,7 +55,7 @@ export class ResourceRegistrationRequestHandler extends HttpHandler {
5555
reType(body, ResourceDescription);
5656
} catch (e) {
5757
this.logger.warn(`Syntax error: ${createErrorMessage(e)}, ${body}`);
58-
throw new BadRequestHttpError(`Request has bad syntax${e instanceof Error ? ': ' + e.message : ''}`)
58+
throw new BadRequestHttpError(`Request has bad syntax: ${createErrorMessage(e)}`);
5959
}
6060

6161
const resource = randomUUID();
@@ -75,8 +75,8 @@ export class ResourceRegistrationRequestHandler extends HttpHandler {
7575
private async handleDelete({ parameters }: HttpHandlerRequest): Promise<HttpHandlerResponse<any>> {
7676
if (typeof parameters?.id !== 'string') throw new Error('URI for DELETE operation should include an id.');
7777

78-
if (!await this.resourceStore.has(parameters.id)) {
79-
throw new Error('Registration to be deleted does not exist (id unknown).');
78+
if (!await this.resourceStore.delete(parameters.id)) {
79+
throw new NotFoundHttpError('Registration to be deleted does not exist (id unknown).');
8080
}
8181

8282
this.logger.info(`Deleted resource ${parameters.id}.`);

packages/uma/src/routes/Ticket.ts

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import {
22
BadRequestHttpError,
33
createErrorMessage,
44
getLoggerFor,
5-
HttpErrorClass,
65
KeyValueStorage,
76
UnauthorizedHttpError
87
} from '@solid/community-server';
@@ -34,17 +33,11 @@ export class TicketRequestHandler extends HttpHandler {
3433
this.logger.info(`Received permission registration request.`);
3534
if (!await verifyRequest(request)) throw new UnauthorizedHttpError();
3635

37-
if (!request.body || !Array.isArray(request.body)) {
38-
this.error(BadRequestHttpError, 'Request body must be a JSON array.');
39-
}
40-
4136
try {
4237
reType(request.body, array(Permission));
4338
} catch (e) {
44-
this.logger.debug(`Syntax error: ${createErrorMessage(e)}, ${request.body}`);
45-
e instanceof Error
46-
? this.error(BadRequestHttpError, 'Request has bad syntax: ' + e.message)
47-
: this.error(BadRequestHttpError, 'Request has bad syntax');
39+
this.logger.warn(`Syntax error: ${createErrorMessage(e)}, ${request.body}`);
40+
throw new BadRequestHttpError(`Request has bad syntax: ${createErrorMessage(e)}`);
4841
}
4942

5043
const ticket = await this.ticketingStrategy.initializeTicket(request.body);
@@ -60,15 +53,4 @@ export class TicketRequestHandler extends HttpHandler {
6053
body: { ticket: id },
6154
};
6255
}
63-
64-
/**
65-
* Logs and throws an error
66-
*
67-
* @param {HttpErrorClass} constructor - the error constructor
68-
* @param {string} message - the error message
69-
*/
70-
private error(constructor: HttpErrorClass, message: string): never {
71-
this.logger.warn(message);
72-
throw new constructor(message);
73-
}
7456
}

packages/uma/src/routes/Token.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ export class TokenRequestHandler extends HttpHandler {
4141
body: tokenResponse
4242
};
4343
} catch (e) {
44-
if (ForbiddenHttpError.isInstance(e)) return ({
44+
if (NeedInfoError.isInstance(e)) return ({
4545
status: 403,
4646
body: {
47-
ticket: (e as NeedInfoError).ticket,
48-
...(e as NeedInfoError).additionalParams
47+
ticket: e.ticket,
48+
...e.additionalParams
4949
}
5050
});
5151
throw e; // TODO: distinguish other errors

packages/uma/src/util/http/server/NodeHttpRequestResponseHandler.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,12 @@ export class NodeHttpRequestResponseHandler extends NodeHttpStreamsHandler {
6868

6969
const context: HttpHandlerContext<Buffer> = { request: httpHandlerRequest };
7070

71-
this.logger.info(`Domestic request: ${JSON.stringify({ eventType: 'domestic_request', context })}`);
71+
this.logger.info(`Domestic request: ${JSON.stringify({ eventType: 'domestic_request', context: {
72+
request: {
73+
...context.request,
74+
...context.request.body && { body: context.request.body.toString() }
75+
}
76+
} })}`);
7277

7378
let response = await this.httpHandler.handleSafe(context);
7479

0 commit comments

Comments
 (0)