@loopback/repository
Version:
Define and implement a common set of interfaces for interacting with databases
41 lines (32 loc) • 1.14 kB
text/typescript
// Copyright IBM Corp. and LoopBack contributors 2018,2019. All Rights Reserved.
// Node module: @loopback/repository
// This file is licensed under the MIT License.
// License text available at https://opensource.org/licenses/MIT
import {Entity} from '../model';
export class InvalidBodyError<ID, Props extends object = {}> extends Error {
code: string;
entityName: string;
entityId: ID;
statusCode: number;
constructor(
entityOrName: typeof Entity | string,
entityId: ID,
extraProperties?: Props,
) {
const entityName =
typeof entityOrName === 'string'
? entityOrName
: entityOrName.modelName || entityOrName.name;
super('Data is required for the patch request');
Error.captureStackTrace(this, this.constructor);
this.code = 'INVALID_BODY_DEFINITION';
this.statusCode = 400;
this.entityName = entityName;
this.entityId = entityId;
Object.assign(this, extraProperties);
}
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function isInvalidBodyError(e: any): e is InvalidBodyError<any> {
return e instanceof InvalidBodyError;
}