34 lines
1,023 B
TypeScript
34 lines
1,023 B
TypeScript
import Docker from 'dockerode'
|
|
import ApiSecret from '../../private/portainer_api_secret.json'
|
|
import { DockerInfo } from '../../interfaces/DockerStatus';
|
|
import { ServiceLocation } from '../../interfaces/CardTypes';
|
|
|
|
export default async function ContainersAPI(req: any, res: any) {
|
|
const token = JSON.parse(JSON.stringify(ApiSecret.token));
|
|
|
|
try {
|
|
const res1 = await fetch('https://portainer.neshweb.net/api/endpoints/2/docker/containers/json', {
|
|
method: "GET",
|
|
headers: {"X-API-Key": token}
|
|
});
|
|
|
|
const unparsed = await res1.json();
|
|
let list: DockerInfo[] = [];
|
|
|
|
unparsed.forEach((entry: any) => {
|
|
let newEntry = {} as DockerInfo;
|
|
|
|
newEntry.name = entry.Names[0].substring(1);
|
|
newEntry.status = entry.State;
|
|
newEntry.id = entry.Id;
|
|
newEntry.location = ServiceLocation.tower_0;
|
|
list.push(newEntry);
|
|
});
|
|
|
|
res.status(200).json(list);
|
|
}
|
|
catch (error) {
|
|
console.log(error);
|
|
res.status(500).json({ error: 'Error reading data' });
|
|
}
|
|
} |