1
0
Fork 0
mirror of synced 2024-10-05 20:44:47 +13:00

Adding Oracle connection checking.

This commit is contained in:
mike12345567 2023-05-16 19:04:46 +01:00
parent 70b809e4f7
commit 832f8b3aa8

View file

@ -8,6 +8,7 @@ import {
Table, Table,
DatasourcePlus, DatasourcePlus,
DatasourceFeature, DatasourceFeature,
ConnectionInfo,
} from "@budibase/types" } from "@budibase/types"
import { import {
buildExternalTableId, buildExternalTableId,
@ -21,7 +22,7 @@ import { FieldTypes } from "../constants"
import { import {
BindParameters, BindParameters,
Connection, Connection,
ConnectionAttributes, ConnectionAttributes, DBError,
ExecuteOptions, ExecuteOptions,
Result, Result,
} from "oracledb" } from "oracledb"
@ -49,7 +50,7 @@ const SCHEMA: Integration = {
type: "Relational", type: "Relational",
description: description:
"Oracle Database is an object-relational database management system developed by Oracle Corporation", "Oracle Database is an object-relational database management system developed by Oracle Corporation",
features: [], features: [DatasourceFeature.CONNECTION_CHECKING],
datasource: { datasource: {
host: { host: {
type: DatasourceFieldType.STRING, type: DatasourceFieldType.STRING,
@ -322,6 +323,29 @@ class OracleIntegration extends Sql implements DatasourcePlus {
this.schemaErrors = final.errors this.schemaErrors = final.errors
} }
async testConnection() {
const response: ConnectionInfo = {
connected: false,
}
let connection
try {
connection = await this.getConnection()
} catch (err: any) {
response.connected = false
response.error = err.message
} finally {
if (connection) {
try {
await connection.close()
} catch (err: any) {
response.connected = false
response.error = err.message
}
}
}
return response
}
private async internalQuery<T>(query: SqlQuery): Promise<Result<T>> { private async internalQuery<T>(query: SqlQuery): Promise<Result<T>> {
let connection let connection
try { try {