Browse Source

Refine error handling

docker-size
Amio 5 years ago
parent
commit
a027565f9d
  1. 31
      libs/badgen-serve.ts

31
libs/badgen-serve.ts

@ -51,8 +51,9 @@ export function badgenServe (handlers: BadgenServeHandlers): Function {
return serveBadge(req, res, { params, query })
} catch (error) {
if (error instanceof BadgenError) {
console.log(`BGE${error.code} "${error.status}" ${req.url}`)
return serveBadge(req, res, {
code: 500,
code: error.code,
sMaxAge: 5,
params: {
subject: defaultLabel,
@ -62,34 +63,34 @@ export function badgenServe (handlers: BadgenServeHandlers): Function {
})
}
// Handle requests errors from `got`
if (error.statusCode) {
const errorInfo = `${error.url} ${error.statusMessage}`
console.error(`GOT:E${error.statusCode} ${req.url} ${errorInfo}`)
// Handle timeout for `got` requests
if (error.code === 'ETIMEDOUT') {
console.error(`E504 ${req.url}`)
// todo: send to google
return serveBadge(req, res, {
code: error.statusCode,
code: 504,
sMaxAge: 5,
params: {
subject: defaultLabel,
status: error.statusCode,
status: 'timeout',
color: 'grey'
}
})
}
// timeout for `got` requests
if (error.code === 'ETIMEDOUT') {
console.error(`E504 ${req.url}`)
// Handle requests errors from `got`
if (error.statusCode) {
const errorInfo = `${error.url} ${error.statusMessage}`
console.error(`APIE${error.statusCode} ${req.url} ${errorInfo}`)
// todo: send to google
return serveBadge(req, res, {
code: 504,
code: error.statusCode,
sMaxAge: 5,
params: {
subject: defaultLabel,
status: 'timeout',
status: error.statusCode,
color: 'grey'
}
})
@ -119,9 +120,9 @@ export function badgenServe (handlers: BadgenServeHandlers): Function {
}
export class BadgenError {
public status: string // badge param: status (required)
public color: string // badge param: color
public code: number // response code
public status: string // error badge param: status (required)
public color: string // error badge param: color
public code: number // status code for response
constructor ({ status, color = 'grey', code = 500 }) {
this.status = status

Loading…
Cancel
Save