Fix all the bugs (it wörks now)
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
import { types } from "@aas-core-works/aas-core3.0-typescript";
|
||||
import type AASInterfaceServer from "./server";
|
||||
import type { Request } from "types/requests";
|
||||
import type { Request } from "./types/requests";
|
||||
import type InterfaceConnectionObject from "interfaceConnectionObject";
|
||||
import AIMCMapper from "./parser/AIMCMapper";
|
||||
import AIDParser from "./parser/AIDParser";
|
||||
import { EndpointMetadata } from "types/aidConf";
|
||||
|
||||
type AASRegistration = {
|
||||
aas: types.Environment,
|
||||
@@ -55,7 +56,7 @@ export default class MultiMessageBroker {
|
||||
registration.serverInstances = registration.serverInterfaces.map(serverInterface => {
|
||||
try {
|
||||
// @ts-ignore
|
||||
const server = new serverInterface.serverInterface<typeof serverInterface.config>(serverInterface.config, registration.aas, registration.mappingConfiguration, (req: Request) => this.onInterfaceRequest(req, registration));
|
||||
const server = new serverInterface.serverInterface<typeof serverInterface.config>(serverInterface.config, registration.aas, (req: Request) => this.onInterfaceRequest(req, registration));
|
||||
server.prepare();
|
||||
return server;
|
||||
} catch (e) {
|
||||
@@ -68,13 +69,23 @@ export default class MultiMessageBroker {
|
||||
if (!interfaceDescription) continue;
|
||||
|
||||
const endpoints = Object.values(interfaceDescription).flatMap(idEntries => idEntries.map(entry => entry.EndPointMetadata));
|
||||
const uniqueProtocols = [...new Set(endpoints.map(endpoint => new URL(endpoint.base).protocol))];
|
||||
const uniqueProtocols: Record<string, EndpointMetadata[]> = {};
|
||||
|
||||
endpoints.forEach(endpoint => {
|
||||
const pUrl = new URL(endpoint.base);
|
||||
if (!uniqueProtocols[pUrl.protocol]) uniqueProtocols[pUrl.protocol] = [endpoint];
|
||||
else uniqueProtocols[pUrl.protocol].push(endpoint);
|
||||
});
|
||||
|
||||
for (const protocol of uniqueProtocols) {
|
||||
const connectorProto = this.interfaceConnections.find(connection => connection.interfaceConnection.prototype.uriProtocol.includes(protocol))
|
||||
for (const [protocol, endpoints] of Object.entries(uniqueProtocols)) {
|
||||
const connectorProto = this.interfaceConnections.find(connection => {
|
||||
const protos = typeof connection.interfaceConnection.uriProtocol === "string" ? [connection.interfaceConnection.uriProtocol] : connection.interfaceConnection.uriProtocol;
|
||||
return protos.map(proto => proto.endsWith(":") ? proto : proto + ":").includes(protocol.endsWith(":") ? protocol : protocol + ":");
|
||||
});
|
||||
if (connectorProto === undefined) continue;
|
||||
|
||||
// @ts-ignore
|
||||
registration.connectorInterfaces.push(new connectorProto.interfaceConnection(connectorProto.config, registration.mappingConfiguration, (response: any) => this.onConnectorEvent(response)));
|
||||
for (const ep of endpoints) registration.connectorInterfaces.push(new connectorProto.interfaceConnection(connectorProto.config, ep, registration.mappingConfiguration, (response: any) => this.onConnectorEvent(response)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,6 +96,7 @@ export default class MultiMessageBroker {
|
||||
if (!this.prepared) this.prepare();
|
||||
|
||||
for (const registration of this.aasRegistrations) {
|
||||
registration.connectorInterfaces.forEach(connector => connector.connect());
|
||||
registration.serverInstances?.forEach(server => server?.run());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user