feat: API wrapper for timestamps
This commit is contained in:
		
							parent
							
								
									a9d67eb0bf
								
							
						
					
					
						commit
						cfdda0402f
					
				
					 1 changed files with 45 additions and 0 deletions
				
			
		
							
								
								
									
										45
									
								
								scripts/timestampAPI.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								scripts/timestampAPI.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,45 @@ | |||
| var TimeProcessor = require('./timeprocessor').TimeProcessor; | ||||
| const Messaging = require('./messaging').Messaging; | ||||
| 
 | ||||
| class TimestampAPI { | ||||
|   /*  | ||||
|     Custom paths used for the API.  | ||||
|   */ | ||||
|   #paths = { | ||||
|     "conversion": "/:date" | ||||
|   }   | ||||
|    | ||||
|   /* | ||||
|     Create the time stamp with direct access to the Express instance.  | ||||
| 
 | ||||
|     @param {Express} instance - The Express instance | ||||
|   */ | ||||
|   constructor(instance) { | ||||
|     this[`instance`] = instance; | ||||
| 
 | ||||
|     // your first API endpoint... 
 | ||||
|     instance.get("/api/hello", function (req, res) { | ||||
|       res.json({greeting: 'hello API'}); | ||||
|     }); | ||||
| 
 | ||||
|     this.conversion(); | ||||
|   } | ||||
| 
 | ||||
|   /* | ||||
|     Handle conversion requests.  | ||||
|   */ | ||||
|   conversion() { | ||||
|     [`/api`, `/api${this.#paths["conversion"]}`].forEach((PATH) => { | ||||
|       [`get`, `post`].forEach((METHOD) => { | ||||
|         this[`instance`][METHOD](PATH, (REQUEST, RESPONSE) => { | ||||
|           try { | ||||
|             let RESPONSE_DATA = TimeProcessor.convert((Object.keys(REQUEST.params).length ? REQUEST.params.date : false) ? REQUEST.params.date : (new Date()).toUTCString()); | ||||
|             RESPONSE.json(RESPONSE_DATA); | ||||
|           } catch(ERROR) {Messaging.exception(RESPONSE, ERROR)} | ||||
|         }) | ||||
|       }) | ||||
|     }) | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| module.exports = {TimestampAPI} | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue