You've already forked pages
forked from didirus/AstralRinth
* refactor: migrate to common eslint+prettier configs * fix: prettier frontend * feat: config changes * fix: lint issues * fix: lint * fix: type imports * fix: cyclical import issue * fix: lockfile * fix: missing dep * fix: switch to tabs * fix: continue switch to tabs * fix: rustfmt parity * fix: moderation lint issue * fix: lint issues * fix: ui intl * fix: lint issues * Revert "fix: rustfmt parity" This reverts commit cb99d2376c321d813d4b7fc7e2a213bb30a54711. * feat: revert last rs
49 lines
1.3 KiB
TypeScript
49 lines
1.3 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 },
|
|
})
|
|
}
|
|
}
|