80 lines
2.6 KiB
TypeScript
80 lines
2.6 KiB
TypeScript
import { FlowExecCtx } from "@/core/flow.execution.context";
|
|
import { ERROR_CODES, type Err } from "@pkg/result";
|
|
import { getError } from "@pkg/logger";
|
|
|
|
export const linkErrors = {
|
|
dbError: (fctx: FlowExecCtx, detail: string): Err =>
|
|
getError({
|
|
flowId: fctx.flowId,
|
|
code: ERROR_CODES.DATABASE_ERROR,
|
|
message: "Database operation failed",
|
|
description: "Please try again later",
|
|
detail,
|
|
}),
|
|
|
|
linkNotFound: (fctx: FlowExecCtx, identifier: string | number): Err =>
|
|
getError({
|
|
flowId: fctx.flowId,
|
|
code: ERROR_CODES.NOT_FOUND,
|
|
message: "Link not found",
|
|
description: "The requested link does not exist",
|
|
detail: `No link found for: ${identifier}`,
|
|
}),
|
|
|
|
listFailed: (fctx: FlowExecCtx, detail: string): Err =>
|
|
getError({
|
|
flowId: fctx.flowId,
|
|
code: ERROR_CODES.DATABASE_ERROR,
|
|
message: "Failed to list links",
|
|
description: "Try again later",
|
|
detail,
|
|
}),
|
|
|
|
createFailed: (fctx: FlowExecCtx, detail: string): Err =>
|
|
getError({
|
|
flowId: fctx.flowId,
|
|
code: ERROR_CODES.DATABASE_ERROR,
|
|
message: "Failed to create link",
|
|
description: "Try again later",
|
|
detail,
|
|
}),
|
|
|
|
updateFailed: (fctx: FlowExecCtx, detail: string): Err =>
|
|
getError({
|
|
flowId: fctx.flowId,
|
|
code: ERROR_CODES.DATABASE_ERROR,
|
|
message: "Failed to update link",
|
|
description: "Try again later",
|
|
detail,
|
|
}),
|
|
|
|
deleteFailed: (fctx: FlowExecCtx, detail: string): Err =>
|
|
getError({
|
|
flowId: fctx.flowId,
|
|
code: ERROR_CODES.DATABASE_ERROR,
|
|
message: "Failed to delete link",
|
|
description: "Try again later",
|
|
detail,
|
|
}),
|
|
|
|
linkNotActive: (fctx: FlowExecCtx, token: string): Err =>
|
|
getError({
|
|
flowId: fctx.flowId,
|
|
code: ERROR_CODES.NOT_ALLOWED,
|
|
message: "Link is not active",
|
|
description: "This link has been revoked, expired, or deactivated",
|
|
detail: `Link with token ${token} is not in an active state`,
|
|
actionable: true,
|
|
}),
|
|
|
|
linkExpired: (fctx: FlowExecCtx, token: string): Err =>
|
|
getError({
|
|
flowId: fctx.flowId,
|
|
code: ERROR_CODES.NOT_ALLOWED,
|
|
message: "Link has expired",
|
|
description: "This link is no longer valid",
|
|
detail: `Link with token ${token} has passed its expiry date`,
|
|
actionable: true,
|
|
}),
|
|
};
|