|
|
|
import { Api } from './api';
|
|
|
|
import { Connection, TestRequest, ConnectionPoolType, SocketResult } from './crud.typings';
|
|
|
|
import { requestGet, requestDelete, requestPost, requestPut } from './crud.service';
|
|
|
|
import { editStatusEvent } from '@constants/env';
|
|
|
|
|
|
|
|
export class DecisionApi implements Api {
|
|
|
|
isDec = true;
|
|
|
|
|
|
|
|
getConnectionlist(): Promise<{data: Connection[]}> {
|
|
|
|
return requestGet('list');
|
|
|
|
}
|
|
|
|
|
|
|
|
deleteConnection(connectionName: string): Promise<{data: string}> {
|
|
|
|
return requestDelete('', {
|
|
|
|
connectionName,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
addConnection(data: Connection): Promise<{data: string}> {
|
|
|
|
const form = {
|
|
|
|
...data,
|
|
|
|
connectionId: data.connectionName,
|
|
|
|
connectionData : JSON.stringify(data.connectionData),
|
|
|
|
};
|
|
|
|
|
|
|
|
return requestPost('', form);
|
|
|
|
}
|
|
|
|
|
|
|
|
updateConnection(data: Connection): Promise<{data: string}> {
|
|
|
|
const form = {
|
|
|
|
...data,
|
|
|
|
connectionData : JSON.stringify(data.connectionData),
|
|
|
|
};
|
|
|
|
|
|
|
|
return requestPut('', form);
|
|
|
|
}
|
|
|
|
|
|
|
|
testConnection(data: Connection): Promise<TestRequest> {
|
|
|
|
const form = {
|
|
|
|
...data,
|
|
|
|
connectionId: data.connectionName,
|
|
|
|
connectionData : JSON.stringify(data.connectionData),
|
|
|
|
};
|
|
|
|
|
|
|
|
return requestPost('test', form);
|
|
|
|
}
|
|
|
|
|
|
|
|
getConnectionPool(name: string): Promise<{data: ConnectionPoolType}> {
|
|
|
|
return requestGet(`pool/info?connectionName=${name}`);
|
|
|
|
}
|
|
|
|
|
|
|
|
getConnectionStatus(name: string): Promise<SocketResult> {
|
|
|
|
return this.sendEditStatusEvent(name, editStatusEvent.OPEN);
|
|
|
|
}
|
|
|
|
|
|
|
|
shutdownConnectionStatus(name: string): Promise<SocketResult> {
|
|
|
|
return this.sendEditStatusEvent(name, editStatusEvent.SHUTDOWN);
|
|
|
|
}
|
|
|
|
|
|
|
|
private sendEditStatusEvent(name: string, type: string): Promise<SocketResult> {
|
|
|
|
return new Promise(resolve => {
|
|
|
|
if (Dec && Dec.socket.connected) {
|
|
|
|
Dec.socket.emit(type, name, (re: any) => {
|
|
|
|
resolve(re);
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
resolve({ data: 'success' });
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|