| 
									
										
										
										
											2022-10-22 11:51:07 -08:00
										 |  |  | import { BaseAPI } from "../base/base-clients"; | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  | import type { AllBackups } from "~/lib/api/types/admin"; | 
					
						
							|  |  |  | import type { ErrorResponse, FileTokenResponse, SuccessResponse } from "~/lib/api/types/response"; | 
					
						
							| 
									
										
										
										
											2022-03-13 15:42:22 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | const prefix = "/api"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const routes = { | 
					
						
							|  |  |  |   base: `${prefix}/admin/backups`, | 
					
						
							|  |  |  |   item: (name: string) => `${prefix}/admin/backups/${name}`, | 
					
						
							|  |  |  |   restore: (name: string) => `${prefix}/admin/backups/${name}/restore`, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export class AdminBackupsApi extends BaseAPI { | 
					
						
							|  |  |  |   async getAll() { | 
					
						
							|  |  |  |     return await this.requests.get<AllBackups>(routes.base); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   async create() { | 
					
						
							|  |  |  |     return await this.requests.post<SuccessResponse | ErrorResponse>(routes.base, {}); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   async get(fileName: string) { | 
					
						
							|  |  |  |     return await this.requests.get<FileTokenResponse>(routes.item(fileName)); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   async delete(fileName: string) { | 
					
						
							|  |  |  |     return await this.requests.delete<SuccessResponse | ErrorResponse>(routes.item(fileName)); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   async restore(fileName: string) { | 
					
						
							|  |  |  |     return await this.requests.post<SuccessResponse | ErrorResponse>(routes.restore(fileName), {}); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |