Files
payload/packages/db-mongodb/src/updateVersion.ts
2023-07-31 15:28:11 -04:00

36 lines
1001 B
TypeScript

import type { UpdateVersion } from 'payload/dist/database/types';
import type { PayloadRequest } from 'payload/dist/express/types';
import type { MongooseAdapter } from '.';
import { withSession } from './withSession';
export const updateVersion: UpdateVersion = async function updateVersion(
this: MongooseAdapter,
{ collectionSlug, where, locale, versionData, req = {} as PayloadRequest },
) {
const VersionModel = this.versions[collectionSlug];
const options = {
...withSession(this, req.transactionID),
new: true,
lean: true,
};
const query = await VersionModel.buildQuery({
payload: this.payload,
locale,
where,
});
const doc = await VersionModel.findOneAndUpdate(query, versionData, options);
const result = JSON.parse(JSON.stringify(doc));
const verificationToken = doc._verificationToken;
// custom id type reset
result.id = result._id;
if (verificationToken) {
result._verificationToken = verificationToken;
}
return result;
};