fix: Document.findByPk() with and (#6208)

This commit is contained in:
Apoorv Mishra
2023-11-23 18:59:56 +05:30
committed by GitHub
parent 5c55b1367b
commit ea8ebc3b2a
2 changed files with 47 additions and 2 deletions

View File

@@ -11,6 +11,7 @@ import {
FindOptions,
ScopeOptions,
WhereOptions,
EmptyResultError,
} from "sequelize";
import {
ForeignKey,
@@ -58,6 +59,7 @@ export const DOCUMENT_VERSION = 2;
type AdditionalFindOptions = {
userId?: string;
includeState?: boolean;
rejectOnEmpty?: boolean | Error;
};
@DefaultScope(() => ({
@@ -513,22 +515,36 @@ class Document extends ParanoidModel {
]);
if (isUUID(id)) {
return scope.findOne({
const document = await scope.findOne({
where: {
id,
},
...rest,
rejectOnEmpty: false,
});
if (!document && rest.rejectOnEmpty) {
throw new EmptyResultError(`Document doesn't exist with id: ${id}`);
}
return document;
}
const match = id.match(SLUG_URL_REGEX);
if (match) {
return scope.findOne({
const document = await scope.findOne({
where: {
urlId: match[1],
},
...rest,
rejectOnEmpty: false,
});
if (!document && rest.rejectOnEmpty) {
throw new EmptyResultError(`Document doesn't exist with id: ${id}`);
}
return document;
}
return null;