datasquirel/package-shared/functions/backend/grabNewUsersTableSchema.js

55 lines
1.7 KiB
JavaScript
Raw Permalink Normal View History

2024-12-08 08:58:57 +00:00
// @ts-check
const grabSchemaFieldsFromData = require("./grabSchemaFieldsFromData");
const serverError = require("./serverError");
/**
* # Add User Table to Database
*
* @param {object} [params]
* @param {Object<string,any>} [params.payload] - fields to add to the table
*
* @returns {import("../../types").DSQL_TableSchemaType | null} new user auth object payload
*/
module.exports = function grabNewUsersTableSchema(params) {
try {
/** @type {import("../../types").DSQL_TableSchemaType} */
const userPreset = require("../../data/presets/users.json");
/** @type {import("../../types").DSQL_FieldSchemaType[]} */
const defaultFields = require("../../data/defaultFields.json");
const supplementalFields = params?.payload
? grabSchemaFieldsFromData({
data: params?.payload,
excludeData: defaultFields,
excludeFields: userPreset.fields,
})
: [];
console.log("supplementalFields", supplementalFields);
const allFields = [...userPreset.fields, ...supplementalFields];
console.log("allFields", allFields);
const finalFields = [
...defaultFields.slice(0, 2),
...allFields,
...defaultFields.slice(2),
];
userPreset.fields = [...finalFields];
return userPreset;
} catch (/** @type {any} */ error) {
console.log(`grabNewUsersTableSchema.js ERROR: ${error.message}`);
serverError({
component: "grabNewUsersTableSchema",
message: error.message,
});
return null;
}
};