@decaf-ts/core
Version:
Core persistence module for the decaf framework
27 lines • 4.37 kB
JavaScript
import { UnsupportedError } from "./../persistence/index.js";
/**
* @description Sets the created by field on a model during RAM create/update operations
* @summary Automatically populates a model field with the UUID from the context during create or update operations.
* This function is designed to be used as a handler for RAM operations to track entity creation.
* @template M - Type of the model being created/updated
* @template R - Type of the repository handling the model
* @template V - Type of the relations metadata
* @template F - Type of the RAM flags
* @template C - Type of the context
* @param {R} this - The repository instance
* @param {Context<F>} context - The operation context containing user identification
* @param {V} data - The relations metadata
* @param key - The property key to set with the UUID
* @param {M} model - The model instance being created/updated
* @return {Promise<void>} A promise that resolves when the field has been set
* @function createdByOnRamCreateUpdate
* @memberOf module:core
* @category Ram
*/
export async function createdByOnRamCreateUpdate(context, data, key, model) {
const uuid = context.get("UUID");
if (!uuid)
throw new UnsupportedError("This adapter does not support user identification");
model[key] = uuid;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFtL2hhbmRsZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQ0FBdUI7QUFFbEQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsMEJBQTBCLENBUTlDLE9BQW1CLEVBQ25CLElBQU8sRUFDUCxHQUFZLEVBQ1osS0FBUTtJQUVSLE1BQU0sSUFBSSxHQUFXLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsSUFBSSxDQUFDLElBQUk7UUFDUCxNQUFNLElBQUksZ0JBQWdCLENBQ3hCLG1EQUFtRCxDQUNwRCxDQUFDO0lBQ0osS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQWtCLENBQUM7QUFDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgUmVwbyB9IGZyb20gXCIuLi9yZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBSZWxhdGlvbnNNZXRhZGF0YSB9IGZyb20gXCIuLi9tb2RlbFwiO1xuaW1wb3J0IHsgUmFtRmxhZ3MgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgVW5zdXBwb3J0ZWRFcnJvciB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZVwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTZXRzIHRoZSBjcmVhdGVkIGJ5IGZpZWxkIG9uIGEgbW9kZWwgZHVyaW5nIFJBTSBjcmVhdGUvdXBkYXRlIG9wZXJhdGlvbnNcbiAqIEBzdW1tYXJ5IEF1dG9tYXRpY2FsbHkgcG9wdWxhdGVzIGEgbW9kZWwgZmllbGQgd2l0aCB0aGUgVVVJRCBmcm9tIHRoZSBjb250ZXh0IGR1cmluZyBjcmVhdGUgb3IgdXBkYXRlIG9wZXJhdGlvbnMuXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgYXMgYSBoYW5kbGVyIGZvciBSQU0gb3BlcmF0aW9ucyB0byB0cmFjayBlbnRpdHkgY3JlYXRpb24uXG4gKiBAdGVtcGxhdGUgTSAtIFR5cGUgb2YgdGhlIG1vZGVsIGJlaW5nIGNyZWF0ZWQvdXBkYXRlZFxuICogQHRlbXBsYXRlIFIgLSBUeXBlIG9mIHRoZSByZXBvc2l0b3J5IGhhbmRsaW5nIHRoZSBtb2RlbFxuICogQHRlbXBsYXRlIFYgLSBUeXBlIG9mIHRoZSByZWxhdGlvbnMgbWV0YWRhdGFcbiAqIEB0ZW1wbGF0ZSBGIC0gVHlwZSBvZiB0aGUgUkFNIGZsYWdzXG4gKiBAdGVtcGxhdGUgQyAtIFR5cGUgb2YgdGhlIGNvbnRleHRcbiAqIEBwYXJhbSB7Un0gdGhpcyAtIFRoZSByZXBvc2l0b3J5IGluc3RhbmNlXG4gKiBAcGFyYW0ge0NvbnRleHQ8Rj59IGNvbnRleHQgLSBUaGUgb3BlcmF0aW9uIGNvbnRleHQgY29udGFpbmluZyB1c2VyIGlkZW50aWZpY2F0aW9uXG4gKiBAcGFyYW0ge1Z9IGRhdGEgLSBUaGUgcmVsYXRpb25zIG1ldGFkYXRhXG4gKiBAcGFyYW0ga2V5IC0gVGhlIHByb3BlcnR5IGtleSB0byBzZXQgd2l0aCB0aGUgVVVJRFxuICogQHBhcmFtIHtNfSBtb2RlbCAtIFRoZSBtb2RlbCBpbnN0YW5jZSBiZWluZyBjcmVhdGVkL3VwZGF0ZWRcbiAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpZWxkIGhhcyBiZWVuIHNldFxuICogQGZ1bmN0aW9uIGNyZWF0ZWRCeU9uUmFtQ3JlYXRlVXBkYXRlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmNvcmVcbiAqIEBjYXRlZ29yeSBSYW1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZWRCeU9uUmFtQ3JlYXRlVXBkYXRlPFxuICBNIGV4dGVuZHMgTW9kZWwsXG4gIFIgZXh0ZW5kcyBSZXBvPE0sIEYsIEM+LFxuICBWIGV4dGVuZHMgUmVsYXRpb25zTWV0YWRhdGEsXG4gIEYgZXh0ZW5kcyBSYW1GbGFncyxcbiAgQyBleHRlbmRzIENvbnRleHQ8Rj4sXG4+KFxuICB0aGlzOiBSLFxuICBjb250ZXh0OiBDb250ZXh0PEY+LFxuICBkYXRhOiBWLFxuICBrZXk6IGtleW9mIE0sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgdXVpZDogc3RyaW5nID0gY29udGV4dC5nZXQoXCJVVUlEXCIpO1xuICBpZiAoIXV1aWQpXG4gICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXG4gICAgICBcIlRoaXMgYWRhcHRlciBkb2VzIG5vdCBzdXBwb3J0IHVzZXIgaWRlbnRpZmljYXRpb25cIlxuICAgICk7XG4gIG1vZGVsW2tleV0gPSB1dWlkIGFzIE1ba2V5b2YgTV07XG59XG4iXX0=