Skip to content

Commit 010e8b9

Browse files
committed
feat: add backups list method
1 parent 0ca0c25 commit 010e8b9

File tree

4 files changed

+34
-18
lines changed

4 files changed

+34
-18
lines changed

.changeset/hungry-planes-heal.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@squarecloud/api": minor
3+
---
4+
5+
New `Application#backups#list` method for listing snapshots

src/managers/application/backup.ts

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,39 @@
11
import { type Application, SquareCloudAPIError } from "@/index";
22
import { Routes } from "@/lib/routes";
3-
import type { RESTPostAPIApplicationBackupResult } from "@squarecloud/api-types/v2";
3+
import type {
4+
APIApplicationBackup,
5+
RESTPostAPIApplicationBackupResult,
6+
} from "@squarecloud/api-types/v2";
47

58
export class ApplicationBackupManager {
69
constructor(public readonly application: Application) {}
710

8-
/** @returns The generated backup URL */
9-
async create(): Promise<RESTPostAPIApplicationBackupResult> {
11+
async list(): Promise<APIApplicationBackup[]> {
1012
const data = await this.application.client.api.request(
11-
Routes.apps.generateBackup(this.application.id),
12-
{ method: "POST" },
13+
Routes.apps.backups(this.application.id),
1314
);
1415

15-
const backup = data.response;
16+
const backups = data.response;
1617

1718
this.application.client.emit(
18-
"backupUpdate",
19+
"backupsUpdate",
1920
this.application,
20-
this.application.cache.backup,
21-
backup,
21+
this.application.cache.backups,
22+
backups,
23+
);
24+
this.application.cache.set("backups", backups);
25+
26+
return backups;
27+
}
28+
29+
/** @returns The generated backup URL */
30+
async create(): Promise<RESTPostAPIApplicationBackupResult> {
31+
const data = await this.application.client.api.request(
32+
Routes.apps.generateBackup(this.application.id),
33+
{ method: "POST" },
2234
);
23-
this.application.cache.set("backup", backup);
2435

25-
return backup;
36+
return data.response;
2637
}
2738

2839
/** @returns The generated backup buffer */

src/managers/application/cache.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import type { ApplicationStatus } from "@/structures";
2-
import type { RESTPostAPIApplicationBackupResult } from "@squarecloud/api-types/v2";
2+
import type { APIApplicationBackup } from "@squarecloud/api-types/v2";
33

4-
export type ApplicationCacheKey = "status" | "backup" | "logs";
4+
export type ApplicationCacheKey = "status" | "backups" | "logs";
55

66
export class ApplicationCacheManager {
77
readonly status?: ApplicationStatus;
8-
readonly backup?: RESTPostAPIApplicationBackupResult;
8+
readonly backups?: APIApplicationBackup[];
99
readonly logs?: string;
1010

1111
set<T extends ApplicationCacheKey>(

src/types/client.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import EventEmitter from "events";
2-
import type { RESTPostAPIApplicationBackupResult } from "@squarecloud/api-types/v2";
2+
import type { APIApplicationBackup } from "@squarecloud/api-types/v2";
33
import type { Application, ApplicationStatus, User } from "..";
44

55
export class TypedEventEmitter<TEvents extends Record<string, any>> {
@@ -33,10 +33,10 @@ export interface ClientEvents {
3333
before: string | undefined,
3434
after: string,
3535
];
36-
backupUpdate: [
36+
backupsUpdate: [
3737
application: Application,
38-
before: RESTPostAPIApplicationBackupResult | undefined,
39-
after: RESTPostAPIApplicationBackupResult,
38+
before: APIApplicationBackup[] | undefined,
39+
after: APIApplicationBackup[],
4040
];
4141
statusUpdate: [
4242
application: Application,

0 commit comments

Comments
 (0)