Skip to content

Commit

Permalink
Set up db connection as Nitro plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
rudokemper committed Oct 14, 2024
1 parent 383782e commit 6c030f7
Show file tree
Hide file tree
Showing 10 changed files with 86 additions and 338 deletions.
4 changes: 4 additions & 0 deletions nuxt.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ export default defineNuxtConfig({

devtools: { enabled: true },

nitro: {
plugins: ["@/server/index.ts"],
},

modules: [
"gc-shared-resources",
"nuxt-auth-utils",
Expand Down
48 changes: 1 addition & 47 deletions server/api/[table]/alerts.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { defineEventHandler, sendError, H3Event } from "h3";
import { setupDatabaseConnection } from "../../database/dbConnection";
import { configDb, db } from "@/server/index";
import { fetchConfig, fetchData } from "../../database/dbOperations";
import {
prepareAlertData,
Expand All @@ -23,59 +23,13 @@ export default defineEventHandler(async (event: H3Event) => {

const {
public: { allowedFileExtensions },
configDatabase,
database,
dbHost,
dbUser,
dbPassword,
dbPort,
dbSsl,
isSqlite,
sqliteDbPath,
// eslint-disable-next-line no-undef
} = useRuntimeConfig() as unknown as {
public: { allowedFileExtensions: AllowedFileExtensions };
configDatabase: string;
isSqlite: boolean;
sqliteDbPath: string;
database: string;
dbHost: string;
dbUser: string;
dbPassword: string;
dbPort: string;
dbSsl: boolean;
};

const configDb = await setupDatabaseConnection(
/* isConfigDb */ true,
isSqlite,
sqliteDbPath,
configDatabase,
database,
dbHost,
dbUser,
dbPassword,
dbPort,
dbSsl,
);

if (!configDb) {
throw new Error("Failed to connect to configDb");
}

const db = await setupDatabaseConnection(
/* isConfigDb */ false,
isSqlite,
sqliteDbPath,
database,
database,
dbHost,
dbUser,
dbPassword,
dbPort,
dbSsl,
);

try {
const viewsConfig = await fetchConfig(configDb, isSqlite);
const { mainData, metadata } = (await fetchData(db, table, isSqlite)) as {
Expand Down
48 changes: 1 addition & 47 deletions server/api/[table]/data.ts
Original file line number Diff line number Diff line change
@@ -1,63 +1,17 @@
import { defineEventHandler, sendError, H3Event } from "h3";
import { setupDatabaseConnection } from "../../database/dbConnection";
import { db } from "@/server/index";
import { fetchData } from "../../database/dbOperations";

export default defineEventHandler(async (event: H3Event) => {
const { table } = event.context.params as { table: string };

const {
configDatabase,
database,
dbHost,
dbUser,
dbPassword,
dbPort,
dbSsl,
isSqlite,
sqliteDbPath,
// eslint-disable-next-line no-undef
} = useRuntimeConfig() as unknown as {
configDatabase: string;
database: string;
dbHost: string;
dbUser: string;
dbPassword: string;
dbPort: string;
dbSsl: boolean;
isSqlite: boolean;
sqliteDbPath: string;
};

const configDb = await setupDatabaseConnection(
/* isConfigDb */ true,
isSqlite,
sqliteDbPath,
configDatabase,
database,
dbHost,
dbUser,
dbPassword,
dbPort,
dbSsl,
);

if (!configDb) {
throw new Error("Failed to connect to configDb");
}

const db = await setupDatabaseConnection(
/* isConfigDb */ false,
isSqlite,
sqliteDbPath,
database,
database,
dbHost,
dbUser,
dbPassword,
dbPort,
dbSsl,
);

try {
const { mainData, columnsData } = await fetchData(db, table, isSqlite);
return { data: mainData, columns: columnsData };
Expand Down
48 changes: 1 addition & 47 deletions server/api/[table]/gallery.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { defineEventHandler, sendError, H3Event } from "h3";
import { setupDatabaseConnection } from "../../database/dbConnection";
import { configDb, db } from "@/server/index";
import { fetchConfig, fetchData } from "../../database/dbOperations";
import { transformSurveyData } from "../../dataProcessing/transformData";
import {
Expand All @@ -18,59 +18,13 @@ export default defineEventHandler(async (event: H3Event) => {

const {
public: { allowedFileExtensions },
configDatabase,
database,
dbHost,
dbUser,
dbPassword,
dbPort,
dbSsl,
isSqlite,
sqliteDbPath,
// eslint-disable-next-line no-undef
} = useRuntimeConfig() as unknown as {
public: { allowedFileExtensions: AllowedFileExtensions };
configDatabase: string;
database: string;
dbHost: string;
dbUser: string;
dbPassword: string;
dbPort: string;
dbSsl: boolean;
isSqlite: boolean;
sqliteDbPath: string;
};

const configDb = await setupDatabaseConnection(
/* isConfigDb */ true,
isSqlite,
sqliteDbPath,
configDatabase,
database,
dbHost,
dbUser,
dbPassword,
dbPort,
dbSsl,
);

if (!configDb) {
throw new Error("Failed to connect to configDb");
}

const db = await setupDatabaseConnection(
/* isConfigDb */ false,
isSqlite,
sqliteDbPath,
database,
database,
dbHost,
dbUser,
dbPassword,
dbPort,
dbSsl,
);

try {
const viewsConfig = await fetchConfig(configDb, isSqlite);
const { mainData, columnsData } = await fetchData(db, table, isSqlite);
Expand Down
48 changes: 1 addition & 47 deletions server/api/[table]/map.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { defineEventHandler, sendError, H3Event } from "h3";
import { setupDatabaseConnection } from "../../database/dbConnection";
import { configDb, db } from "@/server/index";
import { fetchConfig, fetchData } from "../../database/dbOperations";
import {
prepareMapData,
Expand All @@ -21,59 +21,13 @@ export default defineEventHandler(async (event: H3Event) => {

const {
public: { allowedFileExtensions },
configDatabase,
database,
dbHost,
dbUser,
dbPassword,
dbPort,
dbSsl,
isSqlite,
sqliteDbPath,
// eslint-disable-next-line no-undef
} = useRuntimeConfig() as unknown as {
public: { allowedFileExtensions: AllowedFileExtensions };
configDatabase: string;
database: string;
dbHost: string;
dbUser: string;
dbPassword: string;
dbPort: string;
dbSsl: boolean;
isSqlite: boolean;
sqliteDbPath: string;
};

const configDb = await setupDatabaseConnection(
/* isConfigDb */ true,
isSqlite,
sqliteDbPath,
configDatabase,
database,
dbHost,
dbUser,
dbPassword,
dbPort,
dbSsl,
);

if (!configDb) {
throw new Error("Failed to connect to configDb");
}

const db = await setupDatabaseConnection(
/* isConfigDb */ false,
isSqlite,
sqliteDbPath,
database,
database,
dbHost,
dbUser,
dbPassword,
dbPort,
dbSsl,
);

try {
const viewsConfig = await fetchConfig(configDb, isSqlite);
const { mainData, columnsData } = await fetchData(db, table, isSqlite);
Expand Down
35 changes: 1 addition & 34 deletions server/api/config/delete_table/[table].post.ts
Original file line number Diff line number Diff line change
@@ -1,48 +1,15 @@
import { defineEventHandler, sendError, H3Event } from "h3";
import { setupDatabaseConnection } from "../../../database/dbConnection";
import { configDb } from "@/server/index";
import { removeTableFromConfig } from "../../../database/dbOperations";

export default defineEventHandler(async (event: H3Event) => {
const {
configDatabase,
database,
dbHost,
dbUser,
dbPassword,
dbPort,
dbSsl,
isSqlite,
sqliteDbPath,
// eslint-disable-next-line no-undef
} = useRuntimeConfig() as unknown as {
configDatabase: string;
database: string;
dbHost: string;
dbUser: string;
dbPassword: string;
dbPort: string;
dbSsl: boolean;
isSqlite: boolean;
sqliteDbPath: string;
};

const configDb = await setupDatabaseConnection(
/* isConfigDb */ true,
isSqlite,
sqliteDbPath,
configDatabase,
database,
dbHost,
dbUser,
dbPassword,
dbPort,
dbSsl,
);

if (!configDb) {
throw new Error("Failed to connect to configDb");
}

const table = event.context?.params?.table as string;

try {
Expand Down
50 changes: 2 additions & 48 deletions server/api/config/index.get.ts
Original file line number Diff line number Diff line change
@@ -1,62 +1,16 @@
import { defineEventHandler, sendError, H3Event } from "h3";
import { setupDatabaseConnection } from "../../database/dbConnection";
import { fetchConfig } from "../../database/dbOperations";
import { configDb, db } from "@/server/index";
import { fetchConfig } from "@/server/database/dbOperations";
import { getFilteredTableNames } from "./utils";

export default defineEventHandler(async (event: H3Event) => {
const {
configDatabase,
database,
dbHost,
dbUser,
dbPassword,
dbPort,
dbSsl,
isSqlite,
sqliteDbPath,
// eslint-disable-next-line no-undef
} = useRuntimeConfig() as unknown as {
configDatabase: string;
database: string;
dbHost: string;
dbUser: string;
dbPassword: string;
dbPort: string;
dbSsl: boolean;
isSqlite: boolean;
sqliteDbPath: string;
};

const configDb = await setupDatabaseConnection(
/* isConfigDb */ true,
isSqlite,
sqliteDbPath,
configDatabase,
database,
dbHost,
dbUser,
dbPassword,
dbPort,
dbSsl,
);

if (!configDb) {
throw new Error("Failed to connect to configDb");
}

const db = await setupDatabaseConnection(
/* isConfigDb */ false,
isSqlite,
sqliteDbPath,
database,
database,
dbHost,
dbUser,
dbPassword,
dbPort,
dbSsl,
);

try {
const viewsConfig = await fetchConfig(configDb, isSqlite);
const tableNames = await getFilteredTableNames(db, isSqlite);
Expand Down
Loading

0 comments on commit 6c030f7

Please sign in to comment.