UNPKG

@itwin/core-bentley

Version:

Bentley JavaScript core components

405 lines • 23.3 kB
"use strict"; /*--------------------------------------------------------------------------------------------- * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ /** @packageDocumentation * @module Errors */ Object.defineProperty(exports, "__esModule", { value: true }); exports.ErrorCategory = exports.SuccessCategory = exports.StatusCategory = void 0; const BentleyError_1 = require("./BentleyError"); const RepositoryStatus_1 = require("./internal/RepositoryStatus"); /** A group of related statuses for aggregate reporting purposes. * @alpha */ class StatusCategory { static handlers = new Set(); static for(error) { for (const handler of this.handlers) { const category = handler(error); if (category) { return category; } } const errorNumber = error.errorNumber; if (typeof errorNumber === "number") return lookupHttpStatusCategory(errorNumber); return new UnknownError(); } } exports.StatusCategory = StatusCategory; /*** * A success status. * @alpha */ class SuccessCategory extends StatusCategory { error = false; } exports.SuccessCategory = SuccessCategory; /** * An error status. * @alpha */ class ErrorCategory extends StatusCategory { error = true; } exports.ErrorCategory = ErrorCategory; var HTTP; (function (HTTP) { class OK extends SuccessCategory { name = "OK"; code = 200; } HTTP.OK = OK; class Accepted extends SuccessCategory { name = "Accepted"; code = 202; } HTTP.Accepted = Accepted; class NoContent extends SuccessCategory { name = "NoContent"; code = 204; } HTTP.NoContent = NoContent; class BadRequest extends ErrorCategory { name = "BadRequest"; code = 400; } HTTP.BadRequest = BadRequest; class Unauthorized extends ErrorCategory { name = "Unauthorized"; code = 401; } HTTP.Unauthorized = Unauthorized; class Forbidden extends ErrorCategory { name = "Forbidden"; code = 403; } HTTP.Forbidden = Forbidden; class NotFound extends ErrorCategory { name = "NotFound"; code = 404; } HTTP.NotFound = NotFound; class RequestTimeout extends ErrorCategory { name = "RequestTimeout"; code = 408; } HTTP.RequestTimeout = RequestTimeout; class Conflict extends ErrorCategory { name = "Conflict"; code = 409; } HTTP.Conflict = Conflict; class Gone extends ErrorCategory { name = "Gone"; code = 410; } HTTP.Gone = Gone; class PreconditionFailed extends ErrorCategory { name = "PreconditionFailed"; code = 412; } HTTP.PreconditionFailed = PreconditionFailed; class ExpectationFailed extends ErrorCategory { name = "ExpectationFailed"; code = 417; } HTTP.ExpectationFailed = ExpectationFailed; class MisdirectedRequest extends ErrorCategory { name = "MisdirectedRequest"; code = 421; } HTTP.MisdirectedRequest = MisdirectedRequest; class UnprocessableEntity extends ErrorCategory { name = "UnprocessableEntity"; code = 422; } HTTP.UnprocessableEntity = UnprocessableEntity; class UpgradeRequired extends ErrorCategory { name = "UpgradeRequired"; code = 426; } HTTP.UpgradeRequired = UpgradeRequired; class PreconditionRequired extends ErrorCategory { name = "PreconditionRequired"; code = 428; } HTTP.PreconditionRequired = PreconditionRequired; class TooManyRequests extends ErrorCategory { name = "TooManyRequests"; code = 429; } HTTP.TooManyRequests = TooManyRequests; class InternalServerError extends ErrorCategory { name = "InternalServerError"; code = 500; } HTTP.InternalServerError = InternalServerError; class NotImplemented extends ErrorCategory { name = "NotImplemented"; code = 501; } HTTP.NotImplemented = NotImplemented; })(HTTP || (HTTP = {})); class Success extends HTTP.OK { } class Pending extends HTTP.Accepted { } class NoContent extends HTTP.NoContent { } class NothingToDo extends HTTP.NoContent { } class BadRequest extends HTTP.BadRequest { } class Forbidden extends HTTP.Forbidden { } class PermissionsViolation extends HTTP.Forbidden { } class ReadOnly extends HTTP.Forbidden { } class NotFound extends HTTP.NotFound { } class NotEnabled extends HTTP.UnprocessableEntity { } class NotSupported extends HTTP.UnprocessableEntity { } class ValidationError extends HTTP.BadRequest { } class Timeout extends HTTP.RequestTimeout { } class Conflict extends HTTP.Conflict { } class Cancelled extends HTTP.Gone { } class ConstraintViolation extends HTTP.Forbidden { } class VersioningViolation extends HTTP.Forbidden { } class Corruption extends HTTP.InternalServerError { } class InvalidData extends HTTP.InternalServerError { } class OperationFailed extends HTTP.InternalServerError { } class StateViolation extends HTTP.InternalServerError { } class Locked extends HTTP.Conflict { } class NetworkError extends HTTP.InternalServerError { } class Throttled extends HTTP.TooManyRequests { } class FileSystemError extends HTTP.InternalServerError { } class InternalError extends HTTP.InternalServerError { } class UnknownError extends HTTP.InternalServerError { } class NotImplemented extends HTTP.NotImplemented { } class Aborted extends HTTP.BadRequest { } function lookupHttpStatusCategory(statusCode) { switch (statusCode) { case BentleyError_1.BentleyStatus.SUCCESS: return new Success(); case BentleyError_1.BentleyStatus.ERROR: return new UnknownError(); case BentleyError_1.IModelStatus.Success: return new Success(); case BentleyError_1.IModelStatus.AlreadyLoaded: return new StateViolation(); case BentleyError_1.IModelStatus.AlreadyOpen: return new StateViolation(); case BentleyError_1.IModelStatus.BadArg: return new ValidationError(); case BentleyError_1.IModelStatus.BadElement: return new ValidationError(); case BentleyError_1.IModelStatus.BadModel: return new ValidationError(); case BentleyError_1.IModelStatus.BadRequest: return new BadRequest(); case BentleyError_1.IModelStatus.BadSchema: return new ValidationError(); case BentleyError_1.IModelStatus.CannotUndo: return new OperationFailed(); case BentleyError_1.IModelStatus.CodeNotReserved: return new StateViolation(); case BentleyError_1.IModelStatus.DeletionProhibited: return new Forbidden(); case BentleyError_1.IModelStatus.DuplicateCode: return new Conflict(); case BentleyError_1.IModelStatus.DuplicateName: return new Conflict(); case BentleyError_1.IModelStatus.ElementBlockedChange: return new ConstraintViolation(); case BentleyError_1.IModelStatus.FileAlreadyExists: return new Conflict(); case BentleyError_1.IModelStatus.FileNotFound: return new NotFound(); case BentleyError_1.IModelStatus.FileNotLoaded: return new FileSystemError(); case BentleyError_1.IModelStatus.ForeignKeyConstraint: return new ConstraintViolation(); case BentleyError_1.IModelStatus.IdExists: return new Conflict(); case BentleyError_1.IModelStatus.InDynamicTransaction: return new StateViolation(); case BentleyError_1.IModelStatus.InvalidCategory: return new ValidationError(); case BentleyError_1.IModelStatus.InvalidCode: return new ValidationError(); case BentleyError_1.IModelStatus.InvalidCodeSpec: return new ValidationError(); case BentleyError_1.IModelStatus.InvalidId: return new ValidationError(); case BentleyError_1.IModelStatus.InvalidName: return new ValidationError(); case BentleyError_1.IModelStatus.InvalidParent: return new Conflict(); case BentleyError_1.IModelStatus.InvalidProfileVersion: return new InvalidData(); case BentleyError_1.IModelStatus.IsCreatingChangeSet: return new StateViolation(); case BentleyError_1.IModelStatus.LockNotHeld: return new Forbidden(); case BentleyError_1.IModelStatus.Mismatch2d3d: return new ValidationError(); case BentleyError_1.IModelStatus.MismatchGcs: return new ValidationError(); case BentleyError_1.IModelStatus.MissingDomain: return new ValidationError(); case BentleyError_1.IModelStatus.MissingHandler: return new ValidationError(); case BentleyError_1.IModelStatus.MissingId: return new ValidationError(); case BentleyError_1.IModelStatus.NoGeometry: return new NoContent(); case BentleyError_1.IModelStatus.NoMultiTxnOperation: return new StateViolation(); case BentleyError_1.IModelStatus.NotEnabled: return new NotEnabled(); case BentleyError_1.IModelStatus.NotFound: return new NotFound(); case BentleyError_1.IModelStatus.NotOpen: return new StateViolation(); case BentleyError_1.IModelStatus.NotOpenForWrite: return new Forbidden(); case BentleyError_1.IModelStatus.NotSameUnitBase: return new ValidationError(); case BentleyError_1.IModelStatus.NothingToRedo: return new NothingToDo(); case BentleyError_1.IModelStatus.NothingToUndo: return new NothingToDo(); case BentleyError_1.IModelStatus.ParentBlockedChange: return new Forbidden(); case BentleyError_1.IModelStatus.ReadError: return new FileSystemError(); case BentleyError_1.IModelStatus.ReadOnly: return new ReadOnly(); case BentleyError_1.IModelStatus.ReadOnlyDomain: return new ReadOnly(); case BentleyError_1.IModelStatus.RepositoryManagerError: return new NetworkError(); case BentleyError_1.IModelStatus.SQLiteError: return new InternalError(); case BentleyError_1.IModelStatus.TransactionActive: return new StateViolation(); case BentleyError_1.IModelStatus.UnitsMissing: return new ValidationError(); case BentleyError_1.IModelStatus.UnknownFormat: return new InvalidData(); case BentleyError_1.IModelStatus.UpgradeFailed: return new OperationFailed(); case BentleyError_1.IModelStatus.ValidationFailed: return new ValidationError(); case BentleyError_1.IModelStatus.VersionTooNew: return new VersioningViolation(); case BentleyError_1.IModelStatus.VersionTooOld: return new VersioningViolation(); case BentleyError_1.IModelStatus.ViewNotFound: return new NotFound(); case BentleyError_1.IModelStatus.WriteError: return new FileSystemError(); case BentleyError_1.IModelStatus.WrongClass: return new ValidationError(); case BentleyError_1.IModelStatus.WrongIModel: return new ValidationError(); case BentleyError_1.IModelStatus.WrongDomain: return new ValidationError(); case BentleyError_1.IModelStatus.WrongElement: return new ValidationError(); case BentleyError_1.IModelStatus.WrongHandler: return new ValidationError(); case BentleyError_1.IModelStatus.WrongModel: return new ValidationError(); case BentleyError_1.IModelStatus.ConstraintNotUnique: return new ConstraintViolation(); case BentleyError_1.IModelStatus.NoGeoLocation: return new ValidationError(); case BentleyError_1.IModelStatus.ServerTimeout: return new Timeout(); case BentleyError_1.IModelStatus.NoContent: return new NoContent(); case BentleyError_1.IModelStatus.NotRegistered: return new NotImplemented(); case BentleyError_1.IModelStatus.FunctionNotFound: return new NotImplemented(); case BentleyError_1.IModelStatus.NoActiveCommand: return new StateViolation(); case BentleyError_1.IModelStatus.Aborted: return new Aborted(); case BentleyError_1.BriefcaseStatus.CannotAcquire: return new OperationFailed(); case BentleyError_1.BriefcaseStatus.CannotDownload: return new OperationFailed(); case BentleyError_1.BriefcaseStatus.CannotUpload: return new OperationFailed(); case BentleyError_1.BriefcaseStatus.CannotCopy: return new OperationFailed(); case BentleyError_1.BriefcaseStatus.CannotDelete: return new OperationFailed(); case BentleyError_1.BriefcaseStatus.VersionNotFound: return new NotFound(); case BentleyError_1.BriefcaseStatus.CannotApplyChanges: return new OperationFailed(); case BentleyError_1.BriefcaseStatus.DownloadCancelled: return new Cancelled(); case BentleyError_1.BriefcaseStatus.ContainsDeletedChangeSets: return new ValidationError(); case BentleyError_1.RpcInterfaceStatus.Success: return new Success(); case BentleyError_1.RpcInterfaceStatus.IncompatibleVersion: return new VersioningViolation(); case BentleyError_1.ChangeSetStatus.Success: return new Success(); case BentleyError_1.ChangeSetStatus.ApplyError: return new OperationFailed(); case BentleyError_1.ChangeSetStatus.ChangeTrackingNotEnabled: return new NotEnabled(); case BentleyError_1.ChangeSetStatus.CorruptedChangeStream: return new Corruption(); case BentleyError_1.ChangeSetStatus.FileNotFound: return new NotFound(); case BentleyError_1.ChangeSetStatus.FileWriteError: return new FileSystemError(); case BentleyError_1.ChangeSetStatus.HasLocalChanges: return new StateViolation(); case BentleyError_1.ChangeSetStatus.HasUncommittedChanges: return new StateViolation(); case BentleyError_1.ChangeSetStatus.InvalidId: return new Corruption(); case BentleyError_1.ChangeSetStatus.InvalidVersion: return new Corruption(); case BentleyError_1.ChangeSetStatus.InDynamicTransaction: return new StateViolation(); case BentleyError_1.ChangeSetStatus.IsCreatingChangeSet: return new StateViolation(); case BentleyError_1.ChangeSetStatus.IsNotCreatingChangeSet: return new StateViolation(); case BentleyError_1.ChangeSetStatus.MergePropagationError: return new OperationFailed(); case BentleyError_1.ChangeSetStatus.NothingToMerge: return new NothingToDo(); case BentleyError_1.ChangeSetStatus.NoTransactions: return new OperationFailed(); case BentleyError_1.ChangeSetStatus.ParentMismatch: return new ValidationError(); case BentleyError_1.ChangeSetStatus.SQLiteError: return new InternalError(); case BentleyError_1.ChangeSetStatus.WrongDgnDb: return new ValidationError(); case BentleyError_1.ChangeSetStatus.CouldNotOpenDgnDb: return new OperationFailed(); case BentleyError_1.ChangeSetStatus.MergeSchemaChangesOnOpen: return new BadRequest(); case BentleyError_1.ChangeSetStatus.ReverseOrReinstateSchemaChanges: return new Conflict(); case BentleyError_1.ChangeSetStatus.ProcessSchemaChangesOnOpen: return new BadRequest(); case BentleyError_1.ChangeSetStatus.CannotMergeIntoReadonly: return new ValidationError(); case BentleyError_1.ChangeSetStatus.CannotMergeIntoMaster: return new ValidationError(); case BentleyError_1.ChangeSetStatus.CannotMergeIntoReversed: return new ValidationError(); case RepositoryStatus_1.RepositoryStatus.Success: return new Success(); case RepositoryStatus_1.RepositoryStatus.ServerUnavailable: return new NetworkError(); case RepositoryStatus_1.RepositoryStatus.LockAlreadyHeld: return new Conflict(); case RepositoryStatus_1.RepositoryStatus.SyncError: return new NetworkError(); case RepositoryStatus_1.RepositoryStatus.InvalidResponse: return new NetworkError(); case RepositoryStatus_1.RepositoryStatus.PendingTransactions: return new StateViolation(); case RepositoryStatus_1.RepositoryStatus.LockUsed: return new StateViolation(); case RepositoryStatus_1.RepositoryStatus.CannotCreateChangeSet: return new InternalError(); case RepositoryStatus_1.RepositoryStatus.InvalidRequest: return new NetworkError(); case RepositoryStatus_1.RepositoryStatus.ChangeSetRequired: return new StateViolation(); case RepositoryStatus_1.RepositoryStatus.CodeUnavailable: return new Conflict(); case RepositoryStatus_1.RepositoryStatus.CodeNotReserved: return new StateViolation(); case RepositoryStatus_1.RepositoryStatus.CodeUsed: return new StateViolation(); case RepositoryStatus_1.RepositoryStatus.LockNotHeld: return new Forbidden(); case RepositoryStatus_1.RepositoryStatus.RepositoryIsLocked: return new Locked(); case RepositoryStatus_1.RepositoryStatus.ChannelConstraintViolation: return new ConstraintViolation(); case BentleyError_1.HttpStatus.Success: return new Success(); case BentleyError_1.IModelHubStatus.Success: return new Success(); case BentleyError_1.IModelHubStatus.Unknown: return new UnknownError(); case BentleyError_1.IModelHubStatus.MissingRequiredProperties: return new ValidationError(); case BentleyError_1.IModelHubStatus.InvalidPropertiesValues: return new ValidationError(); case BentleyError_1.IModelHubStatus.UserDoesNotHavePermission: return new PermissionsViolation(); case BentleyError_1.IModelHubStatus.UserDoesNotHaveAccess: return new PermissionsViolation(); case BentleyError_1.IModelHubStatus.InvalidBriefcase: return new ValidationError(); case BentleyError_1.IModelHubStatus.BriefcaseDoesNotExist: return new NotFound(); case BentleyError_1.IModelHubStatus.BriefcaseDoesNotBelongToUser: return new PermissionsViolation(); case BentleyError_1.IModelHubStatus.AnotherUserPushing: return new StateViolation(); case BentleyError_1.IModelHubStatus.ChangeSetAlreadyExists: return new Conflict(); case BentleyError_1.IModelHubStatus.ChangeSetDoesNotExist: return new NotFound(); case BentleyError_1.IModelHubStatus.FileIsNotUploaded: return new StateViolation(); case BentleyError_1.IModelHubStatus.iModelIsNotInitialized: return new StateViolation(); case BentleyError_1.IModelHubStatus.ChangeSetPointsToBadSeed: return new InvalidData(); case BentleyError_1.IModelHubStatus.OperationFailed: return new OperationFailed(); case BentleyError_1.IModelHubStatus.PullIsRequired: return new StateViolation(); case BentleyError_1.IModelHubStatus.MaximumNumberOfBriefcasesPerUser: return new Throttled(); case BentleyError_1.IModelHubStatus.MaximumNumberOfBriefcasesPerUserPerMinute: return new Throttled(); case BentleyError_1.IModelHubStatus.DatabaseTemporarilyLocked: return new Locked(); case BentleyError_1.IModelHubStatus.iModelIsLocked: return new Locked(); case BentleyError_1.IModelHubStatus.CodesExist: return new Conflict(); case BentleyError_1.IModelHubStatus.LocksExist: return new Conflict(); case BentleyError_1.IModelHubStatus.iModelAlreadyExists: return new Conflict(); case BentleyError_1.IModelHubStatus.iModelDoesNotExist: return new NotFound(); case BentleyError_1.IModelHubStatus.FileDoesNotExist: return new NotFound(); case BentleyError_1.IModelHubStatus.FileAlreadyExists: return new Conflict(); case BentleyError_1.IModelHubStatus.LockDoesNotExist: return new NotFound(); case BentleyError_1.IModelHubStatus.LockOwnedByAnotherBriefcase: return new Conflict(); case BentleyError_1.IModelHubStatus.CodeStateInvalid: return new StateViolation(); case BentleyError_1.IModelHubStatus.CodeReservedByAnotherBriefcase: return new Conflict(); case BentleyError_1.IModelHubStatus.CodeDoesNotExist: return new NotFound(); case BentleyError_1.IModelHubStatus.EventTypeDoesNotExist: return new NotFound(); case BentleyError_1.IModelHubStatus.EventSubscriptionDoesNotExist: return new NotFound(); case BentleyError_1.IModelHubStatus.EventSubscriptionAlreadyExists: return new StateViolation(); case BentleyError_1.IModelHubStatus.ITwinIdIsNotSpecified: return new ValidationError(); case BentleyError_1.IModelHubStatus.FailedToGetITwinPermissions: return new OperationFailed(); case BentleyError_1.IModelHubStatus.FailedToGetITwinMembers: return new OperationFailed(); case BentleyError_1.IModelHubStatus.ChangeSetAlreadyHasVersion: return new Conflict(); case BentleyError_1.IModelHubStatus.VersionAlreadyExists: return new Conflict(); case BentleyError_1.IModelHubStatus.JobSchedulingFailed: return new InternalError(); case BentleyError_1.IModelHubStatus.ConflictsAggregate: return new Conflict(); case BentleyError_1.IModelHubStatus.FailedToGetITwinById: return new OperationFailed(); case BentleyError_1.IModelHubStatus.DatabaseOperationFailed: return new OperationFailed(); case BentleyError_1.IModelHubStatus.SeedFileInitializationFailed: return new OperationFailed(); case BentleyError_1.IModelHubStatus.FailedToGetAssetPermissions: return new OperationFailed(); case BentleyError_1.IModelHubStatus.FailedToGetAssetMembers: return new OperationFailed(); case BentleyError_1.IModelHubStatus.ITwinDoesNotExist: return new NotFound(); case BentleyError_1.IModelHubStatus.LockChunkDoesNotExist: return new NotFound(); case BentleyError_1.IModelHubStatus.CheckpointAlreadyExists: return new Conflict(); case BentleyError_1.IModelHubStatus.CheckpointDoesNotExist: return new NotFound(); case BentleyError_1.IModelHubStatus.UndefinedArgumentError: return new ValidationError(); case BentleyError_1.IModelHubStatus.InvalidArgumentError: return new ValidationError(); case BentleyError_1.IModelHubStatus.MissingDownloadUrlError: return new ValidationError(); case BentleyError_1.IModelHubStatus.NotSupportedInBrowser: return new NotSupported(); case BentleyError_1.IModelHubStatus.FileHandlerNotSet: return new NotImplemented(); case BentleyError_1.IModelHubStatus.FileNotFound: return new NotFound(); case BentleyError_1.IModelHubStatus.InitializationTimeout: return new Timeout(); case BentleyError_1.GeoServiceStatus.Success: return new Success(); case BentleyError_1.GeoServiceStatus.NoGeoLocation: return new ValidationError(); case BentleyError_1.GeoServiceStatus.OutOfUsefulRange: return new ValidationError(); case BentleyError_1.GeoServiceStatus.OutOfMathematicalDomain: return new ValidationError(); case BentleyError_1.GeoServiceStatus.NoDatumConverter: return new OperationFailed(); case BentleyError_1.GeoServiceStatus.VerticalDatumConvertError: return new OperationFailed(); case BentleyError_1.GeoServiceStatus.CSMapError: return new InternalError(); case BentleyError_1.GeoServiceStatus.Pending: return new Pending(); // eslint-disable-line @typescript-eslint/no-deprecated case BentleyError_1.RealityDataStatus.Success: return new Success(); case BentleyError_1.RealityDataStatus.InvalidData: return new InvalidData(); default: return new UnknownError(); } } //# sourceMappingURL=StatusCategory.js.map