From e75c3a523c669c52f99b6a138d18bad0bd95a554 Mon Sep 17 00:00:00 2001 From: Iain Sproat <68657+iainsproat@users.noreply.github.com> Date: Wed, 12 Feb 2025 10:34:14 +0000 Subject: [PATCH] chore(logging): adds a log line for notifications of file upload status change (#3964) --- packages/server/logging/logging.ts | 1 + .../server/modules/fileuploads/helpers/errors.ts | 8 ++++++++ .../fileuploads/services/resultListener.ts | 16 ++++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 packages/server/modules/fileuploads/helpers/errors.ts diff --git a/packages/server/logging/logging.ts b/packages/server/logging/logging.ts index 3878375d2..1ab0b98fa 100644 --- a/packages/server/logging/logging.ts +++ b/packages/server/logging/logging.ts @@ -32,6 +32,7 @@ export const automateLogger = extendLoggerComponent(logger, 'automate') export const subscriptionLogger = extendLoggerComponent(logger, 'subscription') export const healthCheckLogger = extendLoggerComponent(logger, 'healthcheck') export const testLogger = extendLoggerComponent(logger, 'test') +export const fileUploadsLogger = extendLoggerComponent(logger, 'file-uploads') export type Logger = typeof logger export { extendLoggerComponent, Observability } diff --git a/packages/server/modules/fileuploads/helpers/errors.ts b/packages/server/modules/fileuploads/helpers/errors.ts new file mode 100644 index 000000000..29895a767 --- /dev/null +++ b/packages/server/modules/fileuploads/helpers/errors.ts @@ -0,0 +1,8 @@ +import { BaseError } from '@/modules/shared/errors' + +//TODO this represents an internal server error and not a client/user error (e.g. error in a file content) +export class FileUploadInternalError extends BaseError { + static defaultMessage = 'A file upload error occurred.' + static code = 'FILE_UPLOAD_ERROR' + static statusCode = 500 +} diff --git a/packages/server/modules/fileuploads/services/resultListener.ts b/packages/server/modules/fileuploads/services/resultListener.ts index 8dfbad4a8..59756bf78 100644 --- a/packages/server/modules/fileuploads/services/resultListener.ts +++ b/packages/server/modules/fileuploads/services/resultListener.ts @@ -11,6 +11,9 @@ import { import { GetFileInfo } from '@/modules/fileuploads/domain/operations' import { GetStreamBranchByName } from '@/modules/core/domain/branches/operations' import { AddBranchCreatedActivity } from '@/modules/activitystream/domain/operations' +import { fileUploadsLogger as logger } from '@/logging/logging' +import { FileUploadConvertedStatus } from '@/modules/fileuploads/helpers/types' +import { FileUploadInternalError } from '@/modules/fileuploads/helpers/errors' type OnFileImportProcessedDeps = { getFileInfo: GetFileInfo @@ -45,6 +48,19 @@ export const onFileImportProcessedFactory = ]) if (!upload) return + if (upload.convertedStatus === FileUploadConvertedStatus.Error) { + //TODO in future differentiate between internal server errors and user errors + const err = new FileUploadInternalError( + upload.convertedMessage || 'Unknown error while uploading file.' + ) + logger.error( + { err, fileImportDetails: upload }, + 'Error while processing file upload.' + ) + } else { + logger.info({ fileImportDetails: upload }, 'File upload processed.') + } + if (isNewBranch) { await publish(FileImportSubscriptions.ProjectPendingModelsUpdated, { projectPendingModelsUpdated: {