Add database objects
This commit is contained in:
		
							parent
							
								
									f966e0564e
								
							
						
					
					
						commit
						3618cbbddb
					
				
					 3 changed files with 79 additions and 0 deletions
				
			
		
							
								
								
									
										14
									
								
								scripts/database/entry/activity.JS
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								scripts/database/entry/activity.JS
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | |||
| const Entry = require(`./object.JS`); | ||||
| 
 | ||||
| class Activity extends Entry { | ||||
|     username; | ||||
|     description; | ||||
|     duration; | ||||
|     date; | ||||
| 
 | ||||
|     constructor(PROPERTIES) { | ||||
|         super(PROPERTIES); | ||||
|     }; | ||||
| } | ||||
| 
 | ||||
| module.exports = Activity; | ||||
							
								
								
									
										10
									
								
								scripts/database/entry/object.JS
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								scripts/database/entry/object.JS
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | |||
| /* An object to represent an entry in the database. */ | ||||
| class Entry { | ||||
|     constructor(PROPERTIES) { | ||||
|         (PROPERTIES) ? Object.entries(PROPERTIES).forEach(([property, value]) => { | ||||
|             this[property] = value; | ||||
|         }) : false; | ||||
|     }; | ||||
| }; | ||||
| 
 | ||||
| module.exports = Entry; | ||||
							
								
								
									
										55
									
								
								scripts/database/entry/user.JS
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								scripts/database/entry/user.JS
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,55 @@ | |||
| const Entry = require(`./object`); | ||||
| const Hash = require(`../../utilities/hash`); | ||||
| 
 | ||||
| class User extends Entry { | ||||
|     // Default properties
 | ||||
|     name; | ||||
|     ID; | ||||
|     activated = false; | ||||
|     passcode; | ||||
|     #login = false; | ||||
| 
 | ||||
|     constructor(PROPERTIES) { | ||||
|         super(PROPERTIES); | ||||
|         this.authenticate(); | ||||
|     }; | ||||
| 
 | ||||
|     /* Authenticate the user  | ||||
|      | ||||
|     @param {STRING} INPUT the passcode passed | ||||
|     @return {BOOLEAN} the user authentication state | ||||
|     */ | ||||
|     authenticate(INPUT) { | ||||
|         // Reset the login state. 
 | ||||
|         if (this.#login) {this.#login = false;}; | ||||
| 
 | ||||
|         if ((this.passcode) ? (INPUT && this.passcode == INPUT) : true) { | ||||
|             this.#login = true; | ||||
|         } | ||||
|         return (this.#login); | ||||
|     } | ||||
| 
 | ||||
|     /*  | ||||
|     Generate a schema for MongoDB.  | ||||
| 
 | ||||
|     @return {OBJECT} the schema | ||||
|     */ | ||||
|     static generateTemplate() { | ||||
|         let SCHEMA = { | ||||
|             "name": {"type": String, "required": true, "unique": true, "dropDups": true}, | ||||
|             "ID": {"type": String, "required": true, "unique": true, "dropDups": true}, | ||||
|             "activated": {"type": Boolean}, | ||||
|             "passcode": {"type": String} | ||||
|         } | ||||
|         let TEST = new User(); | ||||
| 
 | ||||
|         // Verify that the schema is valid.
 | ||||
|         Object.keys(SCHEMA).forEach((KEY) => { | ||||
|             if (!Object.keys(TEST).includes(KEY)) {delete SCHEMA[KEY];}; | ||||
|         }); | ||||
| 
 | ||||
|         return (SCHEMA) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| module.exports = User; | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue