ui(admin): server editing improvements

This commit is contained in:
Matthew Penner 2021-09-15 11:09:54 -06:00
parent 23a160b9e1
commit 6df2368264
No known key found for this signature in database
GPG key ID: 030E4AB751DC756F
9 changed files with 153 additions and 90 deletions

View file

@ -1,4 +1,36 @@
import http, { FractalResponseData } from '@/api/http';
import { Nest } from '@/api/admin/nests/getNests';
import { rawDataToServer, Server } from '@/api/admin/servers/getServers';
import http, { FractalResponseData, FractalResponseList } from '@/api/http';
export interface EggVariable {
id: number;
eggId: number;
name: string;
description: string;
envVariable: string;
defaultValue: string;
userViewable: boolean;
userEditable: boolean;
rules: string;
required: boolean;
createdAt: Date;
updatedAt: Date;
}
const rawDataToEggVariable = ({ attributes }: FractalResponseData): EggVariable => ({
id: attributes.id,
eggId: attributes.egg_id,
name: attributes.name,
description: attributes.description,
envVariable: attributes.env_variable,
defaultValue: attributes.default_value,
userViewable: attributes.user_viewable,
userEditable: attributes.user_editable,
rules: attributes.rules,
required: attributes.required,
createdAt: new Date(attributes.created_at),
updatedAt: new Date(attributes.updated_at),
});
export interface Egg {
id: number;
@ -22,6 +54,12 @@ export interface Egg {
scriptInstall: string | null;
createdAt: Date;
updatedAt: Date;
relations: {
nest?: Nest;
servers?: Server[];
variables?: EggVariable[];
};
}
export const rawDataToEgg = ({ attributes }: FractalResponseData): Egg => ({
@ -46,11 +84,17 @@ export const rawDataToEgg = ({ attributes }: FractalResponseData): Egg => ({
scriptInstall: attributes.script?.install,
createdAt: new Date(attributes.created_at),
updatedAt: new Date(attributes.updated_at),
relations: {
nest: undefined,
servers: ((attributes.relationships?.servers as FractalResponseList | undefined)?.data || []).map(rawDataToServer),
variables: ((attributes.relationships?.variables as FractalResponseList | undefined)?.data || []).map(rawDataToEggVariable),
},
});
export default (id: number): Promise<Egg> => {
export default (id: number, include: string[] = []): Promise<Egg> => {
return new Promise((resolve, reject) => {
http.get(`/api/application/eggs/${id}`)
http.get(`/api/application/eggs/${id}`, { params: { include: include.join(',') } })
.then(({ data }) => resolve(rawDataToEgg(data)))
.catch(reject);
});

View file

@ -22,6 +22,7 @@ export interface Server {
io: number;
cpu: number;
threads: string | null;
oomDisabled: boolean;
}
featureLimits: {
@ -43,8 +44,6 @@ export interface Server {
environment: Map<string, string>;
}
oomKiller: boolean;
createdAt: Date;
updatedAt: Date;
@ -71,6 +70,7 @@ export const rawDataToServer = ({ attributes }: FractalResponseData): Server =>
io: attributes.limits.io,
cpu: attributes.limits.cpu,
threads: attributes.limits.threads,
oomDisabled: attributes.limits.oom_disabled,
},
featureLimits: {
@ -92,8 +92,6 @@ export const rawDataToServer = ({ attributes }: FractalResponseData): Server =>
environment: attributes.container.environment,
},
oomKiller: attributes.oom_killer,
createdAt: new Date(attributes.created_at),
updatedAt: new Date(attributes.updated_at),

View file

@ -5,7 +5,6 @@ export interface Values {
externalId: string;
name: string;
ownerId: number;
oomKiller: boolean;
memory: number;
swap: number;
@ -13,6 +12,7 @@ export interface Values {
io: number;
cpu: number;
threads: string;
oomDisabled: boolean;
databases: number;
allocations: number;