| 
									
										
										
										
											2021-10-23 16:42:20 -08:00
										 |  |  | import { AdminAboutAPI } from "./admin/admin-about"; | 
					
						
							|  |  |  | import { AdminTaskAPI } from "./admin/admin-tasks"; | 
					
						
							| 
									
										
										
										
											2021-11-23 18:57:24 -09:00
										 |  |  | import { AdminUsersApi } from "./admin/admin-users"; | 
					
						
							| 
									
										
										
										
											2021-11-25 14:17:02 -09:00
										 |  |  | import { AdminGroupsApi } from "./admin/admin-groups"; | 
					
						
							| 
									
										
										
										
											2021-10-23 16:42:20 -08:00
										 |  |  | import { ApiRequestInstance } from "~/types/api"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export class AdminAPI { | 
					
						
							|  |  |  |   private static instance: AdminAPI; | 
					
						
							|  |  |  |   public about: AdminAboutAPI; | 
					
						
							|  |  |  |   public serverTasks: AdminTaskAPI; | 
					
						
							| 
									
										
										
										
											2021-11-23 18:57:24 -09:00
										 |  |  |   public users: AdminUsersApi; | 
					
						
							| 
									
										
										
										
											2021-11-25 14:17:02 -09:00
										 |  |  |   public groups: AdminGroupsApi; | 
					
						
							| 
									
										
										
										
											2021-10-23 16:42:20 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   constructor(requests: ApiRequestInstance) { | 
					
						
							|  |  |  |     if (AdminAPI.instance instanceof AdminAPI) { | 
					
						
							|  |  |  |       return AdminAPI.instance; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     this.about = new AdminAboutAPI(requests); | 
					
						
							|  |  |  |     this.serverTasks = new AdminTaskAPI(requests); | 
					
						
							| 
									
										
										
										
											2021-11-23 18:57:24 -09:00
										 |  |  |     this.users = new AdminUsersApi(requests); | 
					
						
							| 
									
										
										
										
											2021-11-25 14:17:02 -09:00
										 |  |  |     this.groups = new AdminGroupsApi(requests); | 
					
						
							| 
									
										
										
										
											2021-10-23 16:42:20 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Object.freeze(this); | 
					
						
							|  |  |  |     AdminAPI.instance = this; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |