Skip to content

Commit b778174

Browse files
committed
feat: start work on edit/create page
1 parent 1fd0bde commit b778174

File tree

6 files changed

+619
-198
lines changed

6 files changed

+619
-198
lines changed

apps/frontend/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,12 @@
4040
"@modrinth/ui": "workspace:*",
4141
"@modrinth/utils": "workspace:*",
4242
"@pinia/nuxt": "^0.5.1",
43+
"@types/three": "^0.172.0",
4344
"@vintl/vintl": "^4.4.1",
4445
"@vueuse/core": "^11.1.0",
4546
"ace-builds": "^1.36.2",
4647
"ansi-to-html": "^0.7.2",
48+
"cronstrue": "^2.61.0",
4749
"dayjs": "^1.11.7",
4850
"dompurify": "^3.1.7",
4951
"floating-vue": "^5.2.2",
@@ -58,7 +60,6 @@
5860
"qrcode.vue": "^3.4.0",
5961
"semver": "^7.5.4",
6062
"three": "^0.172.0",
61-
"@types/three": "^0.172.0",
6263
"vue-multiselect": "3.0.0-alpha.2",
6364
"vue-typed-virtual-list": "^1.0.10",
6465
"vue3-ace-editor": "^2.2.4",
Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,45 @@
1-
import type { ScheduledTask } from "@modrinth/utils";
1+
import type { Schedule, ServerSchedule } from "@modrinth/utils";
22
import { useServersFetch } from "../servers-fetch.ts";
33
import { ServerModule } from "./base.ts";
44

55
export class SchedulingModule extends ServerModule {
6-
tasks: ScheduledTask[] = [];
6+
tasks: ServerSchedule[] = [];
77

88
async fetch(): Promise<void> {
9-
// this.tasks = await useServersFetch<ScheduledTask[]>(
10-
// `servers/${this.serverId}/options/schedules`,
11-
// { version: 1 },
12-
// );
9+
const response = await useServersFetch<{ items: ServerSchedule[] }>(
10+
`servers/${this.serverId}/options/schedules`,
11+
{ version: 1 },
12+
);
13+
this.tasks = response.items;
1314
}
1415

15-
async deleteTask(task: ScheduledTask): Promise<void> {
16-
// await useServersFetch(`servers/${this.serverId}/options/schedules`, {
17-
// method: "DELETE",
18-
// body: { title: task.title },
19-
// version: 1,
20-
// });
21-
// this.tasks = this.tasks.filter((t) => t.title !== task.title);
16+
async deleteTask(task: ServerSchedule): Promise<void> {
17+
await useServersFetch(`servers/${this.serverId}/options/schedules/${task.id}`, {
18+
method: "DELETE",
19+
version: 1,
20+
});
21+
this.tasks = this.tasks.filter((t) => t.id !== task.id);
2222
}
2323

24-
async createTask(task: ScheduledTask): Promise<number> {
25-
// await useServersFetch(`servers/${this.serverId}/options/schedules`, {
26-
// method: "POST",
27-
// body: task,
28-
// version: 1,
29-
// });
30-
// this.tasks.push(task);
31-
// return this.tasks.length;
24+
async createTask(task: Schedule): Promise<number> {
25+
const response = await useServersFetch<{ id: number }>(
26+
`servers/${this.serverId}/options/schedules`,
27+
{
28+
method: "POST",
29+
body: task,
30+
version: 1,
31+
},
32+
);
33+
await this.fetch();
34+
return response.id;
3235
}
3336

34-
async editTask(taskTitle: string, updatedTask: Partial<ScheduledTask>): Promise<void> {
35-
// await useServersFetch(`servers/${this.serverId}/options/schedules`, {
36-
// method: "PATCH",
37-
// body: { title: taskTitle, ...updatedTask },
38-
// version: 1,
39-
// });
40-
// const index = this.tasks.findIndex((t) => t.title === taskTitle);
41-
// if (index !== -1) {
42-
// this.tasks[index] = { ...this.tasks[index], ...updatedTask };
43-
// }
37+
async editTask(taskId: number, updatedTask: Partial<Schedule>): Promise<void> {
38+
await useServersFetch(`servers/${this.serverId}/options/schedules/${taskId}`, {
39+
method: "PATCH",
40+
body: updatedTask,
41+
version: 1,
42+
});
43+
await this.fetch();
4444
}
4545
}

0 commit comments

Comments
 (0)