You've already forked AstralRinth
forked from didirus/AstralRinth
* refactor: start refactor of pyro servers module-based class * refactor: finish modules * refactor: start on type checking + matching api * refactor: finish pyro servers composable refactor * refactor: pyro -> modrinth * fix: import not refactored * fix: broken power action enums * fix: remove pyro mentions * fix: lint * refactor: fix option pages * fix: error renames * remove empty pyro-servers.ts file --------- Signed-off-by: IMB11 <hendersoncal117@gmail.com> Co-authored-by: Prospector <prospectordev@gmail.com>
48 lines
1.4 KiB
TypeScript
48 lines
1.4 KiB
TypeScript
import type { Allocation } from "@modrinth/utils";
|
|
import { useServersFetch } from "../servers-fetch.ts";
|
|
import { ServerModule } from "./base.ts";
|
|
|
|
export class NetworkModule extends ServerModule {
|
|
allocations: Allocation[] = [];
|
|
|
|
async fetch(): Promise<void> {
|
|
this.allocations = await useServersFetch<Allocation[]>(
|
|
`servers/${this.serverId}/allocations`,
|
|
{},
|
|
"network",
|
|
);
|
|
}
|
|
|
|
async reserveAllocation(name: string): Promise<Allocation> {
|
|
return await useServersFetch<Allocation>(`servers/${this.serverId}/allocations?name=${name}`, {
|
|
method: "POST",
|
|
});
|
|
}
|
|
|
|
async updateAllocation(port: number, name: string): Promise<void> {
|
|
await useServersFetch(`servers/${this.serverId}/allocations/${port}?name=${name}`, {
|
|
method: "PUT",
|
|
});
|
|
}
|
|
|
|
async deleteAllocation(port: number): Promise<void> {
|
|
await useServersFetch(`servers/${this.serverId}/allocations/${port}`, {
|
|
method: "DELETE",
|
|
});
|
|
}
|
|
|
|
async checkSubdomainAvailability(subdomain: string): Promise<boolean> {
|
|
const result = (await useServersFetch(`subdomains/${subdomain}/isavailable`)) as {
|
|
available: boolean;
|
|
};
|
|
return result.available;
|
|
}
|
|
|
|
async changeSubdomain(subdomain: string): Promise<void> {
|
|
await useServersFetch(`servers/${this.serverId}/subdomain`, {
|
|
method: "POST",
|
|
body: { subdomain },
|
|
});
|
|
}
|
|
}
|