[Add User] Revamped db

This commit is contained in:
metacryst
2025-11-21 00:04:11 -06:00
parent 30faf12b20
commit 525642d04e
10 changed files with 269 additions and 81 deletions

43
server/db/model/Member.js Normal file
View File

@@ -0,0 +1,43 @@
export default function Member(id, node) {
let idTraits = {
firstWord: "MEMBER",
length: 2
}
let fields = [
"firstName",
"lastName",
"email",
"password"
]
let checkID = () => {
let split = id.split("-")
return (
split.length === idTraits.length
&& split[0] === idTraits.firstWord
&& !isNaN(Number(split[1]))
)
}
let idres = checkID()
if(!idres) {
return false
}
let checkFields = () => {
for(let i = 0; i < fields.length; i++) {
if(!node[fields[i]]) {
throw new Error(`Member ${node.email} is missing trait ${fields[i]}`)
return false
} else {
return true
}
}
}
let fieldres = checkFields()
if(!fieldres) {
return false
}
return true
}

33
server/db/model/Title.js Normal file
View File

@@ -0,0 +1,33 @@
export default function Title(id, node) {
let checkID = () => {
let split = id.split("-")
return (
split.length === 2
&& split[0] === "HY"
&& !isNaN(Number(split[1]))
)
}
let idres = checkID()
if(!idres) {
return false
}
let checkFields = () => {
let fields = [
"fullName",
]
for(let i = 0; i < fields.length; i++) {
if(!node[fields[i]]) {
throw new Error(`Title ${id} is missing trait ${fields[i]}`)
return false
}
}
return true
}
let fieldres = checkFields()
if(!fieldres) {
return false
}
return true
}

39
server/db/model/Token.js Normal file
View File

@@ -0,0 +1,39 @@
export default function Token(id, node) {
let idTraits = {
firstWord: "TOKEN"
}
let fields = [
"index",
"url",
"used"
]
let checkID = () => {
let split = id.split("-")
return (
split[0] === idTraits.firstWord
)
}
let idres = checkID()
if(!idres) {
return false
}
let checkFields = () => {
for(let i = 0; i < fields.length; i++) {
if(!node[fields[i]]) {
throw new Error(`Token ${node.email} is missing trait ${fields[i]}`)
return false
} else {
return true
}
}
}
let fieldres = checkFields()
if(!fieldres) {
return false
}
return true
}

View File

@@ -1,14 +0,0 @@
export default function User(node) {
let traits = [
"firstName",
"lastName",
"email",
"password"
]
for(let i = 0; i < traits.length; i++) {
if(!node[traits[i]]) {
if (traits[i] == "lastName") { continue; } // Ignores optional Last Name
throw new Error(`User ${node.email} is missing trait ${traits[i]}`)
}
}
}