// @ts-check const grabSchemaFieldsFromData = require("./grabSchemaFieldsFromData"); const serverError = require("./serverError"); /** * # Add User Table to Database * * @param {object} [params] * @param {Object} [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; } };