ui(admin): implement basic server editing

This commit is contained in:
Matthew Penner 2021-09-12 22:15:45 -06:00
parent d0a78ec067
commit 6362731d55
No known key found for this signature in database
GPG key ID: 030E4AB751DC756F
11 changed files with 220 additions and 90 deletions

View file

@ -43,6 +43,8 @@ export interface Server {
environment: Map<string, string>;
}
oomKiller: boolean;
createdAt: Date;
updatedAt: Date;
@ -90,6 +92,8 @@ 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

@ -1,11 +1,36 @@
import http from '@/api/http';
import { Server, rawDataToServer } from '@/api/admin/servers/getServers';
export default (id: number, server: Partial<Server>, include: string[] = []): Promise<Server> => {
export interface Values {
externalId: string;
name: string;
ownerId: number;
oomKiller: boolean;
memory: number;
swap: number;
disk: number;
io: number;
cpu: number;
threads: string;
databases: number;
allocations: number;
backups: number;
}
export default (id: number, server: Partial<Values>, include: string[] = []): Promise<Server> => {
const data = {};
Object.keys(server).forEach((key) => {
const key2 = key.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`);
// @ts-ignore
data[key2] = server[key];
});
console.log(data);
return new Promise((resolve, reject) => {
http.patch(`/api/application/servers/${id}`, {
...server,
}, { params: { include: include.join(',') } })
http.patch(`/api/application/servers/${id}`, data, { params: { include: include.join(',') } })
.then(({ data }) => resolve(rawDataToServer(data)))
.catch(reject);
});