import OrderedObject from "./OrderedObject.js" export default class Tokens extends OrderedObject { add(token) { let id = `TOKEN-${token.uuid}` if(this.validate(id, token)) { try { super.add(id, token) } catch(e) { console.error(e) throw e } } else { throw new global.ServerError(400, "Invalid Member Data!"); } } get(uuid) { return super.get(`TOKEN-${uuid}`) } validate(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 } }