Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | 2x 2x 2x | import HttpError from 'http/error';
import StatusCode from 'http/enum/status-code';
import PageTemplate, { Breadcrumb, PageTemplateInput } from 'template/page';
interface Input extends PageTemplateInput {
readonly error: HttpError;
}
class ErrorPageTemplate extends PageTemplate<Input> {
protected getContentTitle(): string {
const status_code = this.getStatusCode();
const message = this.getErrorMessage();
return `${status_code}: ${message}`;
}
protected getBreadcrumbs(): Breadcrumb[] {
return [
{
label: 'Home',
url: '/'
},
{
label: 'Error'
}
];
}
protected getContentHtml(): string {
const description = this.getErrorDescription();
return `
<p>
${description}
</p>
`;
}
private getErrorDescription(): string {
const status_code = this.getStatusCode();
switch (status_code) {
case StatusCode.FILE_NOT_FOUND:
return 'The specified resource was not found on this server.';
case StatusCode.UNAUTHORIZED:
return 'You do not have permission to perform this request.';
case StatusCode.BAD_REQUEST:
return 'You tried to perform an invalid request.';
case StatusCode.SERVER_ERROR:
default:
return `
An unexpected problem occurred that prevented the request from
completing successfully.
`;
}
}
private getErrorMessage(): string {
const error = this.getError();
return error.message;
}
private getStatusCode(): StatusCode {
const error = this.getError();
return error.status_code;
}
private getError(): HttpError {
const input = this.getInput();
return input.error;
}
}
export default ErrorPageTemplate;
|